diff --git a/assets/acquia-spec.json b/assets/acquia-spec.json index 42ddbb6a..130756cd 100644 --- a/assets/acquia-spec.json +++ b/assets/acquia-spec.json @@ -3,7 +3,7 @@ "info": { "title": "Acquia Cloud API Documentation", "x-logo": { - "url": "assets/cloud-platform.svg", + "url": "https://cloudapi-docs.acquia.com/cloud-platform.svg", "backgroundColor": "#FFFFFF", "altText": "Acquia Cloud" }, @@ -83,6 +83,10 @@ "name": "Subscriptions", "x-displayName": "Subscriptions" }, + { + "name": "Trials", + "x-displayName": "Trials" + }, { "name": "Codebases", "x-displayName": "Codebases" @@ -14961,6 +14965,125 @@ } } }, + "/environments/{environmentId}/databases/{databaseName}/backups/{backupId}/actions/download": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "get": { + "tags": [ + "Environments" + ], + "summary": "Downloads the database backup file.", + "description": "Downloads the database backup file.", + "operationId": "getEnvironmentsDatabaseDownloadBackup", + "x-cli-name": "environments:database-backup-download", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_environment-id" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_database-name" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_backup-id" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_file" + } + }, + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_file-download" + }, + "example": { + "url": "http://example.com/backup.gz", + "expires_at": "2020-06-16T15:15:05+00:00", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/12-482e4650-1b74-44db-8d4e-e86a3b1ed908/databases/sitedatabase/backups/4423492/actions/download" + }, + "parent": { + "href": "https://cloud.acquia.com/api/environments/12-482e4650-1b74-44db-8d4e-e86a3b1ed908/databases/sitedatabase/backups/4423492/actions" + }, + "notification": { + "href": "https://cloud.acquia.com/api/notifications/8a1c8503-0dae-4b08-a917-d2f01f4971ca" + } + } + } + }, + "text/html": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_file-download" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Insufficient permissions": { + "value": { + "error": "forbidden", + "message": "You do not have permission to download this backup." + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Environment not found": { + "value": { + "error": "not_found", + "message": "The environment you are trying to access does not exist, or you do not have permission to access it." + } + }, + "Database not found": { + "value": { + "error": "not_found", + "message": "The database backup you are trying to access does not exist, or you do not have permission to access it." + } + }, + "Do not exist on non-hosted applications": { + "value": { + "error": "not_found", + "message": "Databases backups do not exist on non-hosted applications." + } + }, + "Do not exist on Node.js applications": { + "value": { + "error": "not_available", + "message": "Databases backups do not exist on Node.js applications" + } + } + } + } + } + } + } + } + }, "/environments/{environmentId}/databases/{databaseName}/backups/{backupId}/actions/restore": { "servers": [ { @@ -35847,7 +35970,7 @@ } } }, - "/teams": { + "/account/trial": { "servers": [ { "url": "https://cloud.acquia.com/api", @@ -35855,30 +35978,13 @@ } ], "get": { + "summary": "Get authenticated user's trial account", + "operationId": "findTrial", + "description": "Retrieve the current authenticated user's trial account. Each user may have one active trial.", "tags": [ - "Teams and Permissions" - ], - "summary": "Return teams the current user has access to.", - "description": "Returns a list of teams the current user has access to.\n\nFilterable fields:\n* `name`\n\nSortable fields:\n* `name`\n", - "operationId": "getTeams", - "x-cli-name": "tps:teams-list", - "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_filter" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_limit" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_offset" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_range" - } + "Trials" ], + "x-cli-name": "account:find-trial", "security": [ { "Acquia_Cloud_API_Documentation_OAuth2": [] @@ -35886,149 +35992,76 @@ ], "responses": { "200": { - "description": "OK", + "description": "User's trial account", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_teams" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial" }, - "example": { - "total": 2, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/teams" - } - }, - "_embedded": { - "items": [ - { - "uuid": "abcd1234-82b5-11e3-9170-12313920a02c", - "name": "Team Name 1", - "created_at": "2013-10-28T14:16:07-0700", - "updated_at": "2015-02-19T08:53:10-0800", - "organization": { - "uuid": "2375e327-3fff-11e3-9170-12313920a02c", - "name": "Sample Organization" + "examples": { + "Trial completed": { + "value": { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "site_name": "mytrialsite", + "status": "completed", + "created_at": "2026-08-27T14:30:00Z", + "updated_at": "2026-08-27T15:45:00Z", + "percent_complete": 100, + "region": "us-east-1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/trials/a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c" - } - } - }, - { - "uuid": "1234abcd-82b5-11e3-9170-12313920a02c", - "name": "Team Name 2", - "created_at": "2014-05-27T11:55:39-0700", - "updated_at": "2015-01-30T05:49:16-0800", - "organization": { - "uuid": "2375e327-3fff-11e3-9170-12313920a02c", - "name": "Sample Organization" + "site": { + "href": "https://ppd2005c06prod.prod.acquia-sites.com" }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/teams/9ca6ecc0-e5d0-11e3-9eb3-22000b04072f" - } + "admin": { + "href": "https://ppd2005c06prod.prod.acquia-sites.com/user/login?token=abc123def456" + }, + "subscription": { + "href": "https://cloud.acquia.com/api/subscriptions/c3d4e5f6-a7b8-9012-cdef-123456789012" + }, + "organization": { + "href": "https://cloud.acquia.com/api/organizations/b2c3d4e5-f6a7-8901-bcde-f12345678901" } } - ] + } } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/hal+json": { "schema": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "No permission": { + "Missing credentials": { "value": { - "error": "forbidden", - "message": "You do not have permission to view teams." + "error": "unauthorized", + "message": "Invalid or missing authentication credentials." } } } } } - } - } - } - }, - "/teams/{teamUuid}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api", - "description": "Cloud API" - } - ], - "get": { - "tags": [ - "Teams and Permissions" - ], - "summary": "Return details about a specific team.", - "description": "Return details about a specific team.", - "operationId": "getTeam", - "x-cli-name": "tps:team-find", - "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - } - ], - "security": [ - { - "Acquia_Cloud_API_Documentation_OAuth2": [] - } - ], - "responses": { - "200": { - "description": "OK", + }, + "403": { + "description": "Forbidden", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, - "example": { - "uuid": "2c9ea556-4016-11e3-9170-12313920a02c", - "name": "Sample Team", - "created_at": "2013-10-28T14:16:07-0700", - "updated_at": "2015-02-19T08:53:10-0800", - "organization": { - "uuid": "2375e327-3fff-11e3-9170-12313920a02c", - "name": "Sample Organization" - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c" - }, - "members": { - "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c/members" - }, - "applications": { - "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c/applications" - }, - "invites": { - "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c/invites" - }, - "parent": { - "href": "https://cloud.acquia.com/api/teams" + "examples": { + "Insufficient permissions": { + "value": { + "error": "forbidden", + "message": "You do not have permission to view trial accounts." } - }, - "_embedded": { - "organization": [ - { - "uuid": "2375e327-3fff-11e3-9170-12313920a02c", - "name": "Sample Organization", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/organizations/2375e327-3fff-11e3-9170-12313920a02c" - } - } - } - ] } } } @@ -36042,10 +36075,28 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Role not found": { + "Trial not found": { "value": { "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to access it." + "message": "This user does not have an active trial account." + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Server error": { + "value": { + "error": "internal_server_error", + "message": "An unexpected error occurred while retrieving the trial account." } } } @@ -36053,230 +36104,180 @@ } } } - }, - "put": { + } + }, + "/trials": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "post": { + "summary": "Create a new trial account", + "operationId": "createTrial", + "description": "Create a new trial account for the authenticated user. Each user can have only one active trial at a time.", "tags": [ - "Teams and Permissions" + "Trials" ], - "summary": "Change the name of a team.", - "description": "Change the name of a team.", - "operationId": "putTeamsName", - "x-cli-name": "tps:team-update", + "x-cli-name": "trials:create", "security": [ { "Acquia_Cloud_API_Documentation_OAuth2": [] } ], - "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - } - ], "requestBody": { "required": true, "content": { "application/hal+json": { "schema": { "type": "object", + "required": [ + "site_name", + "site_template_id", + "region" + ], "properties": { - "name": { + "site_name": { "type": "string", - "description": "The new name of the team.", "minLength": 1, - "maxLength": 255 - } - } - }, - "example": { - "name": "My new team name" - } - }, - "application/x-www-form-urlencoded": { - "schema": { - "type": "object", - "properties": { - "name": { + "maxLength": 60, + "pattern": "^[a-z][a-z0-9]*$", + "description": "User-entered site name. Must be lowercase, alphanumeric (a-z, 0-9), cannot start with a digit, max 60 characters.\n", + "example": "mytrialsite" + }, + "site_template_id": { "type": "string", - "description": "The new name of the team.", - "minLength": 1, - "maxLength": 255 + "description": "Drupal template identifier for provisioning", + "example": "haven" + }, + "region": { + "type": "string", + "description": "Cloud region for the trial", + "example": "us-east-1" } } - }, - "example": { - "name": "My new team name" } } } }, "responses": { - "200": { - "description": "OK", + "202": { + "description": "Trial creation initiated", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message-with-links" }, "examples": { - "Team renamed": { + "Trial created": { "value": { - "message": "Team renamed." + "message": "Trial account created. Provisioning is in progress.", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/trials/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } } } } } } }, - "404": { - "description": "Not Found", + "400": { + "description": "Bad Request", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_validation-error" }, "examples": { - "Role not found": { + "Missing parameter": { "value": { - "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to rename it." + "error": "validation_failed", + "message": { + "site_name": "Missing required parameter(s): site_name" + } + } + }, + "Invalid region": { + "value": { + "error": "validation_failed", + "message": { + "region": "The specified region is not currently supported for trials." + } } } } } } - } - } - }, - "delete": { - "tags": [ - "Teams and Permissions" - ], - "summary": "Deletes a specific team by its UUID.", - "description": "Deletes a specific team by its UUID.", - "operationId": "deleteTeam", - "x-cli-name": "tps:team-delete", - "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - } - ], - "security": [ - { - "Acquia_Cloud_API_Documentation_OAuth2": [] - } - ], - "responses": { - "200": { - "description": "OK", + }, + "401": { + "description": "Unauthorized", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Removed team": { + "Missing credentials": { "value": { - "message": "Removed team." + "error": "unauthorized", + "message": "Invalid or missing authentication credentials." } } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/hal+json": { "schema": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Team not found": { + "Insufficient permissions": { "value": { - "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to remove it." + "error": "forbidden", + "message": "You do not have permission to create trial accounts." } } } } } - } - } - } - }, - "/teams/{teamUuid}/actions/leave": { - "servers": [ - { - "url": "https://cloud.acquia.com/api", - "description": "Cloud API" - } - ], - "post": { - "tags": [ - "Teams and Permissions" - ], - "summary": "Removes the current user from a team.", - "description": "Removes the current user from a team.", - "operationId": "postLeaveTeam", - "x-cli-name": "tps:user-leave", - "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - } - ], - "security": [ - { - "Acquia_Cloud_API_Documentation_OAuth2": [] - } - ], - "responses": { - "200": { - "description": "OK", + }, + "409": { + "description": "Conflict", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Left team": { + "Active trial exists": { "value": { - "message": "You have left the team." + "error": "conflict", + "message": "User already has an active trial account." } } } } } }, - "404": { - "description": "Not Found", + "500": { + "description": "Internal Server Error", "content": { "application/hal+json": { "schema": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Not found": { - "value": { - "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to access it." - } - }, - "Invalid team": { - "value": { - "error": "not_found", - "message": "Invalid team supplied. No action performed." - } - }, - "Invalid user": { - "value": { - "error": "not_found", - "message": "Invalid user supplied. No action performed." - } - }, - "User not on team": { + "Server error": { "value": { - "error": "not_found", - "message": "The user is not a member of this team." + "error": "internal_server_error", + "message": "An unexpected error occurred while creating the trial account." } } } @@ -36286,7 +36287,7 @@ } } }, - "/teams/{teamUuid}/applications": { + "/trials-templates": { "servers": [ { "url": "https://cloud.acquia.com/api", @@ -36294,139 +36295,178 @@ } ], "get": { + "summary": "List available Drupal templates", + "operationId": "listTrialTemplates", + "description": "Retrieve a paginated list of supported Drupal templates available for trial provisioning.", "tags": [ - "Teams and Permissions" + "Trials" ], - "summary": "Returns a list of applications this team has access to.", - "description": "Returns a list of applications this team has access to.\n\nFilterable fields:\n* `name`\n\nSortable fields:\n* `name`\n", - "operationId": "getTeamApplications", - "x-cli-name": "tps:team-application-list", "parameters": [ { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_limit" }, { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_filter" + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_offset" }, { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_limit" - }, + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" + } + ], + "x-cli-name": "trials:list-templates", + "security": [ { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_offset" + "Acquia_Cloud_API_Documentation_OAuth2": [] } ], "responses": { "200": { - "description": "OK", + "description": "List of available templates", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team-applications" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_drupal-templates-collection" }, - "example": { - "total": 2, - "pagination": { - "total": 2, - "limit": 10, - "offset": 0 - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications" - }, - "sort": { - "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications{?sort}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications{?filter}", - "templated": true - }, - "limit": { - "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications{?limit}", - "templated": true - }, - "parent": { - "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5" - } - }, - "_embedded": { - "items": [ - { - "id": 241643, - "uuid": "50cf9819-6f99-4ef2-be10-1a85dc354ca1", - "name": "Sample application 1", - "hosting": { - "type": "acp", - "id": "devcloud:devcloud2" + "examples": { + "Templates list": { + "value": { + "total": 15, + "pagination": { + "total": 15, + "limit": 10, + "offset": 0 + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/trials-templates?limit=10&offset=0" }, - "subscription": { - "uuid": "fc04cc3e-8d91-4fb4-a8dd-15dc81df7458", - "name": "Sample subscription" + "sort": { + "href": "https://cloud.acquia.com/api/trials-templates{?sort}", + "templated": true }, - "organization": { - "uuid": "434aac3d-bb5f-44d1-bea4-398addbf5a04", - "name": "Sample organization" + "limit": { + "href": "https://cloud.acquia.com/api/trials-templates{?limit}", + "templated": true }, - "flags": { - "remote_admin": true + "offset": { + "href": "https://cloud.acquia.com/api/trials-templates{?offset}", + "templated": true }, - "status": "normal", - "type": "drupal", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/applications/50cf9819-6f99-4ef2-be10-1a85dc354ca1" - } + "parent": { + "href": "https://cloud.acquia.com/api/" } }, - { - "id": 954291, - "uuid": "a47ac10b-58cc-4372-a567-0e02b2c3d471", - "name": "Sample application 2", - "hosting": { - "type": "free", - "id": "devcloud:devcloud2" - }, - "subscription": { - "uuid": "fc04cc3e-8d91-4fb4-a8dd-15dc81df7458", - "name": "Sample subscription" - }, - "organization": { - "uuid": "434aac3d-bb5f-44d1-bea4-398addbf5a04", - "name": "Sample organization" - }, - "flags": { - "remote_admin": false - }, - "status": "provisioning", - "type": "drupal", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/teams/a47ac10b-58cc-4372-a567-0e02b2c3d471/applications" + "_embedded": { + "items": [ + { + "id": "haven", + "name": "Haven", + "description": "A warm, inviting template pre-configured with essential tools for storytelling and community engagement. Ideal for small-to-medium non-profits and community organizations.", + "details_url": "https://www.drupal.org/project/haven", + "image_url": "https://trials-ui-prod.prod.cicd.acquia.io/assets/images/templates/template-haven.png", + "tags": [ + "Blog & Editorial", + "Nonprofit & Community", + "Wellness" + ], + "features": [ + "Donation add-ons", + "Project and people profiles", + "Blog/editorial workflows", + "Newsletter signups" + ] + }, + { + "id": "impact", + "name": "Impact", + "description": "A comprehensive solution for organizations to showcase their work and engage stakeholders. Built for agencies, consultancies, and enterprises.", + "details_url": "https://www.drupal.org/project/impact", + "image_url": "https://trials-ui-prod.prod.cicd.acquia.io/assets/images/templates/template-impact.png", + "tags": [ + "Enterprise", + "Agency", + "Services" + ], + "features": [ + "Portfolio showcase", + "Case study management", + "Client testimonials", + "Service offerings catalog" + ] + }, + { + "id": "umami", + "name": "Umami", + "description": "A fully-featured demo and template for food and beverage websites. Includes recipe collections, restaurant management, and event coordination.", + "details_url": "https://www.drupal.org/project/umami_demo", + "image_url": "https://trials-ui-prod.prod.cicd.acquia.io/assets/images/templates/template-umami.png", + "tags": [ + "Food & Beverage", + "E-commerce", + "Events" + ], + "features": [ + "Recipe management", + "Food photography gallery", + "Restaurant reservation system", + "Event scheduling" + ] } - } + ] } - ] + } } } } } }, - "404": { - "description": "Not Found", + "401": { + "description": "Unauthorized", "content": { "application/hal+json": { "schema": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Not found": { + "Missing credentials": { "value": { - "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to access it." + "error": "unauthorized", + "message": "Invalid or missing authentication credentials." + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Insufficient permissions": { + "value": { + "error": "forbidden", + "message": "You do not have permission to list trial templates." + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Server error": { + "value": { + "error": "internal_server_error", + "message": "An unexpected error occurred while retrieving the templates list." } } } @@ -36434,65 +36474,174 @@ } } } - }, - "post": { + } + }, + "/trials-regions": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "get": { + "summary": "List supported AWS regions for trial provisioning", + "operationId": "listTrialRegions", + "description": "Get a list of AWS regions where trials can be provisioned. This is a system-wide reference endpoint that provides available region options for trial creation.", "tags": [ - "Teams and Permissions" + "Trials" ], - "summary": "Adds an application to this team.", - "description": "Adds an application to this team.", - "operationId": "postTeamAddApplication", - "x-cli-name": "tps:team-application-add", "parameters": [ { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_limit" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_offset" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" } ], - "requestBody": { - "required": true, - "content": { - "application/hal+json": { - "schema": { - "type": "object", - "required": [ - "uuid" - ], - "properties": { - "uuid": { - "type": "string", - "description": "The uuid of the application to add to this team.", - "format": "uuid", - "minLength": 36, - "maxLength": 36 + "x-cli-name": "trials:list-regions", + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "responses": { + "200": { + "description": "List of supported regions for trial provisioning", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial-regions-collection" + }, + "examples": { + "Regions list": { + "value": { + "total": 3, + "pagination": { + "total": 3, + "limit": 10, + "offset": 0 + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/trials-regions?limit=10&offset=0" + }, + "sort": { + "href": "https://cloud.acquia.com/api/trials-regions{?sort}", + "templated": true + }, + "limit": { + "href": "https://cloud.acquia.com/api/trials-regions{?limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/trials-regions{?offset}", + "templated": true + }, + "parent": { + "href": "https://cloud.acquia.com/api/" + } + }, + "_embedded": { + "items": [ + { + "id": "us-east-1", + "name": "US East (N. Virginia)" + }, + { + "id": "us-west-2", + "name": "US West (Oregon)" + }, + { + "id": "eu-west-1", + "name": "EU (Ireland)" + } + ] + } + } } } - }, - "example": { - "uuid": "a47ac10b-58cc-4372-a567-0e02b2c3d470" } - }, - "application/x-www-form-urlencoded": { - "schema": { - "type": "object", - "required": [ - "uuid" - ], - "properties": { - "uuid": { - "type": "string", - "description": "The uuid of the application to add to this team.", - "format": "uuid", - "minLength": 36, - "maxLength": 36 + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Missing credentials": { + "value": { + "error": "unauthorized", + "message": "Invalid or missing authentication credentials." + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Insufficient permissions": { + "value": { + "error": "forbidden", + "message": "You do not have permission to list trial regions." + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Server error": { + "value": { + "error": "internal_server_error", + "message": "An unexpected error occurred while retrieving the regions list." + } } } - }, - "example": { - "uuid": "a47ac10b-58cc-4372-a567-0e02b2c3d470" } } } - }, + } + } + }, + "/trials/{trialId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "get": { + "summary": "Get trial account by ID", + "operationId": "findTrialById", + "description": "Retrieve a specific trial account by its ID.", + "tags": [ + "Trials" + ], + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_trial-id" + } + ], "security": [ { "Acquia_Cloud_API_Documentation_OAuth2": [] @@ -36500,16 +36649,57 @@ ], "responses": { "200": { - "description": "OK", + "description": "Trial account details", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial" }, "examples": { - "Added application": { + "Trial found": { "value": { - "message": "Added application to team." + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "site_name": "mytrialsite", + "status": "completed", + "created_at": "2026-08-27T14:30:00Z", + "updated_at": "2026-08-27T15:45:00Z", + "percent_complete": 100, + "region": "us-east-1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/trials/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "site": { + "href": "https://ppd2005c06prod.prod.acquia-sites.com" + }, + "admin": { + "href": "https://ppd2005c06prod.prod.acquia-sites.com/user/login?token=abc123def456" + }, + "subscription": { + "href": "https://cloud.acquia.com/api/subscriptions/c3d4e5f6-a7b8-9012-cdef-123456789012" + }, + "organization": { + "href": "https://cloud.acquia.com/api/organizations/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + } + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Missing credentials": { + "value": { + "error": "unauthorized", + "message": "Invalid or missing authentication credentials." } } } @@ -36524,10 +36714,10 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Not found": { + "Insufficient permissions": { "value": { "error": "forbidden", - "message": "The application you are trying to access does not exist, or you do not have permission to access it." + "message": "You do not have permission to view trial accounts." } } } @@ -36542,34 +36732,28 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Not found": { - "value": { - "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to access it." - } - }, - "Application mismatch": { + "Trial not found": { "value": { "error": "not_found", - "message": "The application must belong to the same organization as this team." + "message": "The trial account with the specified ID does not exist." } } } } } }, - "409": { - "description": "Conflict", + "500": { + "description": "Internal Server Error", "content": { "application/hal+json": { "schema": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Application already on team": { + "Server error": { "value": { - "error": "conflict", - "message": "The application is already on this team." + "error": "internal_server_error", + "message": "An unexpected error occurred while retrieving the trial account." } } } @@ -36579,46 +36763,66 @@ } } }, - "/teams/{teamUuid}/applications/{applicationUuid}": { + "/trials/{trialId}/actions/retry": { "servers": [ { "url": "https://cloud.acquia.com/api", "description": "Cloud API" } ], - "delete": { + "post": { + "summary": "Retry a failed trial", + "operationId": "retryTrial", + "description": "Retry provisioning for a trial that has failed. This action will reinitiate the provisioning process for the trial.", "tags": [ - "Teams and Permissions" + "Trials" ], - "summary": "Removes the application from this team.", - "description": "Removes the application from this team. Team members will immediately lose access to this application.", - "operationId": "deleteTeamsRemoveApplication", - "x-cli-name": "tps:team-application-remove", "parameters": [ { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_application-uuid" + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_trial-id" } ], + "x-cli-name": "trials:retry", "security": [ { "Acquia_Cloud_API_Documentation_OAuth2": [] } ], "responses": { - "200": { - "description": "OK", + "202": { + "description": "Trial retry initiated", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message-with-links" }, "examples": { - "Removed application": { + "Trial retry initiated": { "value": { - "message": "Removed application from team." + "message": "Trial retry initiated. Provisioning is in progress.", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/trials/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Missing credentials": { + "value": { + "error": "unauthorized", + "message": "Invalid or missing authentication credentials." } } } @@ -36633,10 +36837,10 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Not found": { + "Insufficient permissions": { "value": { "error": "forbidden", - "message": "The application you are trying to access does not exist, or you do not have permission to access it." + "message": "You do not have permission to retry this trial." } } } @@ -36651,16 +36855,46 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Team not found": { + "Trial not found": { "value": { "error": "not_found", - "message": "The team you are trying to access does not exist, or you do not have permission to access it." + "message": "The trial account with the specified ID does not exist." } - }, - "Application mismatch": { + } + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Invalid state for retry": { "value": { - "error": "not_found", - "message": "The application is not associated with this team." + "error": "conflict", + "message": "Cannot retry a trial that is not in a failed state." + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Server error": { + "value": { + "error": "internal_server_error", + "message": "An unexpected error occurred while retrying the trial." } } } @@ -36670,7 +36904,7 @@ } } }, - "/teams/{teamUuid}/invites": { + "/teams": { "servers": [ { "url": "https://cloud.acquia.com/api", @@ -36681,14 +36915,11 @@ "tags": [ "Teams and Permissions" ], - "summary": "Returns a list of invitations to this team.", - "description": "Returns a list of invitations to this team.\n\nFilterable fields:\n* `mail`\n* `token`\n* `author`\n\nSortable fields:\n* `mail`\n* `token`\n* `author`\n", - "operationId": "getTeamInvites", - "x-cli-name": "tps:team-invite-list", + "summary": "Return teams the current user has access to.", + "description": "Returns a list of teams the current user has access to.\n\nFilterable fields:\n* `name`\n\nSortable fields:\n* `name`\n", + "operationId": "getTeams", + "x-cli-name": "tps:teams-list", "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - }, { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" }, @@ -36705,127 +36936,55 @@ "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_range" } ], + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], "responses": { "200": { "description": "OK", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team-invites" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_teams" }, "example": { "total": 2, "_links": { "self": { - "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites" - }, - "sort": { - "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites{?sort}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites{?filter}", - "templated": true - }, - "limit": { - "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites{?limit}", - "templated": true - }, - "parent": { - "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625" + "href": "https://cloud.acquia.com/api/teams" } }, "_embedded": { "items": [ { - "applications": [ - { - "uuid": "88dc87db-1169-4908-9384-2328a7bd5cc1", - "name": "Main Application" - } - ], - "author": { - "uuid": "ff4d12d9-1aba-472a-b0d1-ba19342922fa", - "username": "jane.doe", - "first_name": "Jane", - "last_name": "Doe", - "mail": "jane.doe@example.com", - "picture_url": "https://accounts.acquia.com/sites/default/files/avatars/123abc?mail=jane.doe@example.com" - }, - "roles": [ - { - "uuid": "aba649d1-795e-4472-87c8-7b32536c71b3", - "name": "Senior Developer" - }, - { - "uuid": "a70a0192-c962-421a-b534-393c245ba142", - "name": "Team Lead" - } - ], + "uuid": "abcd1234-82b5-11e3-9170-12313920a02c", + "name": "Team Name 1", + "created_at": "2013-10-28T14:16:07-0700", + "updated_at": "2015-02-19T08:53:10-0800", "organization": { - "uuid": "3f3fc2da-bb2b-473c-aa5c-8b9d8fa6c7b8", - "name": "Organization Name" - }, - "team": { - "uuid": "9ab05712-29b7-4171-8168-2ed085ea32b2", - "name": "Team Name" - }, - "uuid": "f4347e76-bcd7-41f6-91aa-ac6691755f0c", - "email": "invitee@example.com", - "created_at": "2012-05-15T12:00:00Z", - "token": "dd9ea69fdcb6bee08b31a858b85535ec", - "flags": { - "declined": true + "uuid": "2375e327-3fff-11e3-9170-12313920a02c", + "name": "Sample Organization" }, "_links": { "self": { - "href": "https://cloud.acquia.com/api/invites/dd9ea69fdcb6bee08b31a858b85535ec" + "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c" } } }, { - "applications": [ - { - "uuid": "88dc87db-1169-4908-9384-2328a7bd5cc1", - "name": "Main Application" - }, - { - "uuid": "a2345672-58cc-4372-a567-0e02b2c3d470", - "name": "Secondary Application" - } - ], - "author": { - "uuid": "80363753-76dc-486c-b942-57ff9fc131ee", - "username": "john.doe", - "first_name": "John", - "last_name": "Doe", - "mail": "john.doe@example.com", - "picture_url": "https://accounts.acquia.com/sites/default/files/avatars/123abc?mail=john.doe@example.com" - }, - "roles": [ - { - "uuid": "aba649d1-795e-4472-87c8-7b32536c71b3", - "name": "Senior Developer" - } - ], + "uuid": "1234abcd-82b5-11e3-9170-12313920a02c", + "name": "Team Name 2", + "created_at": "2014-05-27T11:55:39-0700", + "updated_at": "2015-01-30T05:49:16-0800", "organization": { - "uuid": "3f3fc2da-bb2b-473c-aa5c-8b9d8fa6c7b8", - "name": "Organization Name" - }, - "team": { - "uuid": "9ab05712-29b7-4171-8168-2ed085ea32b2", - "name": "Team Name" - }, - "uuid": "6bf96944-bb9b-4629-b593-d658e44d8054", - "email": "invitee2@example.com", - "created_at": "2012-05-15T12:00:00Z", - "token": "dd9ea69fdcb6bee08b31a858b85535ed", - "flags": { - "declined": false + "uuid": "2375e327-3fff-11e3-9170-12313920a02c", + "name": "Sample Organization" }, "_links": { "self": { - "href": "https://cloud.acquia.com/api/invites/dd9ea69fdcb6bee08b31a858b85535ed" + "href": "https://cloud.acquia.com/api/teams/9ca6ecc0-e5d0-11e3-9eb3-22000b04072f" } } } @@ -36846,8 +37005,87 @@ "No permission": { "value": { "error": "forbidden", - "message": "You do not have permission to view invites for this team." + "message": "You do not have permission to view teams." + } + } + } + } + } + } + } + } + }, + "/teams/{teamUuid}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "get": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Return details about a specific team.", + "description": "Return details about a specific team.", + "operationId": "getTeam", + "x-cli-name": "tps:team-find", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + } + ], + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team" + }, + "example": { + "uuid": "2c9ea556-4016-11e3-9170-12313920a02c", + "name": "Sample Team", + "created_at": "2013-10-28T14:16:07-0700", + "updated_at": "2015-02-19T08:53:10-0800", + "organization": { + "uuid": "2375e327-3fff-11e3-9170-12313920a02c", + "name": "Sample Organization" + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c" + }, + "members": { + "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c/members" + }, + "applications": { + "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c/applications" + }, + "invites": { + "href": "https://cloud.acquia.com/api/teams/2c9ea556-4016-11e3-9170-12313920a02c/invites" + }, + "parent": { + "href": "https://cloud.acquia.com/api/teams" } + }, + "_embedded": { + "organization": [ + { + "uuid": "2375e327-3fff-11e3-9170-12313920a02c", + "name": "Sample Organization", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/organizations/2375e327-3fff-11e3-9170-12313920a02c" + } + } + } + ] } } } @@ -36861,7 +37099,7 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Not found": { + "Role not found": { "value": { "error": "not_found", "message": "The team you are trying to access does not exist, or you do not have permission to access it." @@ -36873,14 +37111,19 @@ } } }, - "post": { + "put": { "tags": [ "Teams and Permissions" ], - "summary": "Invites a user to join a team.", - "description": "Invites a user to join a team.", - "operationId": "postTeamsInviteUser", - "x-cli-name": "tps:team-user-invite", + "summary": "Change the name of a team.", + "description": "Change the name of a team.", + "operationId": "putTeamsName", + "x-cli-name": "tps:team-update", + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], "parameters": [ { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" @@ -36891,35 +37134,38 @@ "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_post-invite" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The new name of the team.", + "minLength": 1, + "maxLength": 255 + } + } }, "example": { - "email": "person@example.com", - "roles": [ - "489efe35-7bb7-48b7-9aa2-f6f8f457c926", - "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" - ] + "name": "My new team name" } }, "application/x-www-form-urlencoded": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_post-invite" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The new name of the team.", + "minLength": 1, + "maxLength": 255 + } + } }, "example": { - "email": "person@example.com", - "roles": [ - "489efe35-7bb7-48b7-9aa2-f6f8f457c926", - "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" - ] + "name": "My new team name" } } } }, - "security": [ - { - "Acquia_Cloud_API_Documentation_OAuth2": [] - } - ], "responses": { "200": { "description": "OK", @@ -36929,65 +37175,65 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" }, "examples": { - "Invited": { + "Team renamed": { "value": { - "message": "Invited team member." + "message": "Team renamed." } } } } } }, - "201": { - "description": "Created", - "content": { - "application/hal+json": { - "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_invite" - } - } - } - }, - "400": { - "description": "Bad Request", + "404": { + "description": "Not Found", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_validation-error" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Missing parameter": { - "value": { - "error": "validation_failed", - "message": { - "name": "Missing required parameter(s): example_param" - } - } - }, - "Invalid parameter": { + "Role not found": { "value": { - "error": "validation_failed", - "message": { - "name": "Invalid values for parameter(s): example_param" - } + "error": "not_found", + "message": "The team you are trying to access does not exist, or you do not have permission to rename it." } } } } } - }, - "403": { - "description": "Forbidden", + } + } + }, + "delete": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Deletes a specific team by its UUID.", + "description": "Deletes a specific team by its UUID.", + "operationId": "deleteTeam", + "x-cli-name": "tps:team-delete", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + } + ], + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "responses": { + "200": { + "description": "OK", "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" }, "examples": { - "Insufficient permissions": { + "Removed team": { "value": { - "error": "forbidden", - "message": "You do not have permission to invite users to this team." + "message": "Removed team." } } } @@ -37005,43 +37251,89 @@ "Team not found": { "value": { "error": "not_found", - "message": "The team you are trying to modify does not exist, or you do not have permission to access it." + "message": "The team you are trying to access does not exist, or you do not have permission to remove it." } - }, - "Role not found": { + } + } + } + } + } + } + } + }, + "/teams/{teamUuid}/actions/leave": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "post": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Removes the current user from a team.", + "description": "Removes the current user from a team.", + "operationId": "postLeaveTeam", + "x-cli-name": "tps:user-leave", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + } + ], + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + }, + "examples": { + "Left team": { "value": { - "error": "not_found", - "message": "One or more of the chosen roles do not belong to this organization." + "message": "You have left the team." } } } } } }, - "409": { - "description": "Conflict", + "404": { + "description": "Not Found", "content": { "application/hal+json": { "schema": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "Invitation already sent": { + "Not found": { "value": { - "error": "conflict", - "message": "An invitation to person@example.com has already been sent. It was sent on May 6, 2016 - 7:26pm." + "error": "not_found", + "message": "The team you are trying to access does not exist, or you do not have permission to access it." } }, - "User already on team": { + "Invalid team": { "value": { - "error": "conflict", - "message": "The user you are trying to invite already belongs to the team." + "error": "not_found", + "message": "Invalid team supplied. No action performed." } }, - "Must have at least one role": { + "Invalid user": { "value": { - "error": "conflict", - "message": "A team member must be invited with at least one role." + "error": "not_found", + "message": "Invalid user supplied. No action performed." + } + }, + "User not on team": { + "value": { + "error": "not_found", + "message": "The user is not a member of this team." } } } @@ -37051,7 +37343,7 @@ } } }, - "/teams/{teamUuid}/members": { + "/teams/{teamUuid}/applications": { "servers": [ { "url": "https://cloud.acquia.com/api", @@ -37062,10 +37354,10 @@ "tags": [ "Teams and Permissions" ], - "summary": "Returns a list of team members.", - "description": "Returns a list of team members.\n\nFilterable fields:\n* `permission`\n* `first_name`\n* `last_name`\n* `user`\n\nSortable fields:\n* `permission`\n* `first_name`\n* `last_name`\n", - "operationId": "getTeamMembers", - "x-cli-name": "tps:team-member-list", + "summary": "Returns a list of applications this team has access to.", + "description": "Returns a list of applications this team has access to.\n\nFilterable fields:\n* `name`\n\nSortable fields:\n* `name`\n", + "operationId": "getTeamApplications", + "x-cli-name": "tps:team-application-list", "parameters": [ { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" @@ -37089,68 +37381,90 @@ "content": { "application/hal+json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team-members" + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team-applications" }, "example": { - "total": 3, + "total": 2, + "pagination": { + "total": 2, + "limit": 10, + "offset": 0 + }, "_links": { "self": { - "href": "https://cloud.acquia.com/api/teams/3c9ea553-3216-11e3-9170-12313920a23a/members" + "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications" + }, + "sort": { + "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications{?sort}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications{?filter}", + "templated": true + }, + "limit": { + "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5/applications{?limit}", + "templated": true }, "parent": { - "href": "https://cloud.acquia.com/api/teams/3c9ea553-3216-11e3-9170-12313920a23a" + "href": "https://cloud.acquia.com/api/teams/f6c5006c-f670-4778-9ae5-49018475ece5" } }, "_embedded": { "items": [ { - "uuid": "5aa902c5-f1c1-6c94-edfa-86bc58d0dce3", - "first_name": "James", - "last_name": "Kirk", - "last_login_at": "2017-03-28T13:07:54-0500", - "mail": "james.kirk@example.com", - "picture_url": "https://accounts.acquia.com/images/users/5aa902c5-f1c1-6c94-edfa-86bc58d0dce3/style/avatar", - "username": "james.kirk", - "roles": [ - { - "uuid": "2d988ad3-4016-11e3-9170-12313920a02e", - "name": "Senior Developer" - } - ] - }, - { - "uuid": "30dacb5e-4122-11e1-9eb5-12313928d3c2", - "first_name": "Christopher", - "last_name": "Pike", - "last_login_at": "2016-03-28T13:07:54-0500", - "mail": "chris.pike@example.com", - "picture_url": "https://accounts.acquia.com/images/users/30dacb5e-4122-11e1-9eb5-12313928d3c2/style/avatar", - "username": "chris.pike", - "roles": [ - { - "uuid": "3c9a1174-4016-11e3-9170-12313920a02d", - "name": "Developer" + "id": 241643, + "uuid": "50cf9819-6f99-4ef2-be10-1a85dc354ca1", + "name": "Sample application 1", + "hosting": { + "type": "acp", + "id": "devcloud:devcloud2" + }, + "subscription": { + "uuid": "fc04cc3e-8d91-4fb4-a8dd-15dc81df7458", + "name": "Sample subscription" + }, + "organization": { + "uuid": "434aac3d-bb5f-44d1-bea4-398addbf5a04", + "name": "Sample organization" + }, + "flags": { + "remote_admin": true + }, + "status": "normal", + "type": "drupal", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/applications/50cf9819-6f99-4ef2-be10-1a85dc354ca1" } - ] + } }, { - "uuid": "3bcddc3a-52ba-4cce-aaa3-9adf721c1b52", - "first_name": "Jonathan", - "last_name": "Archer", - "last_login_at": null, - "mail": "jonathan.archer@example.com", - "picture_url": "https://accounts.acquia.com/images/users/3bcddc3a-52ba-4cce-aaa3-9adf721c1b52/style/avatar", - "username": "jonathan.archer", - "roles": [ - { - "uuid": "2d988ad3-4016-11e3-9170-12313920a02e", - "name": "Senior Developer" - }, - { - "uuid": "3c9a1174-4016-11e3-9170-12313920a02d", - "name": "Developer" + "id": 954291, + "uuid": "a47ac10b-58cc-4372-a567-0e02b2c3d471", + "name": "Sample application 2", + "hosting": { + "type": "free", + "id": "devcloud:devcloud2" + }, + "subscription": { + "uuid": "fc04cc3e-8d91-4fb4-a8dd-15dc81df7458", + "name": "Sample subscription" + }, + "organization": { + "uuid": "434aac3d-bb5f-44d1-bea4-398addbf5a04", + "name": "Sample organization" + }, + "flags": { + "remote_admin": false + }, + "status": "provisioning", + "type": "drupal", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/teams/a47ac10b-58cc-4372-a567-0e02b2c3d471/applications" } - ] + } } ] } @@ -37177,34 +37491,18 @@ } } } - } - }, - "/teams/{teamUuid}/members/{userUuid}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api", - "description": "Cloud API" - } - ], - "put": { + }, + "post": { "tags": [ "Teams and Permissions" ], - "summary": "Grant team roles to a member.", - "description": "Grant team roles to a member.", - "operationId": "putTeamsMember", - "x-cli-name": "tps:team-member-add", + "summary": "Adds an application to this team.", + "description": "Adds an application to this team.", + "operationId": "postTeamAddApplication", + "x-cli-name": "tps:team-application-add", "parameters": [ { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" - }, - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_user-uuid" - } - ], - "security": [ - { - "Acquia_Cloud_API_Documentation_OAuth2": [] } ], "requestBody": { @@ -37214,56 +37512,49 @@ "schema": { "type": "object", "required": [ - "roles" + "uuid" ], "properties": { - "roles": { - "type": "array", - "description": "The role UUIDs to grant to the user.", - "items": { - "type": "string", - "format": "uuid", - "minLength": 36, - "maxLength": 36 - } + "uuid": { + "type": "string", + "description": "The uuid of the application to add to this team.", + "format": "uuid", + "minLength": 36, + "maxLength": 36 } } }, "example": { - "roles": [ - "489efe35-7bb7-48b7-9aa2-f6f8f457c926", - "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" - ] + "uuid": "a47ac10b-58cc-4372-a567-0e02b2c3d470" } }, "application/x-www-form-urlencoded": { "schema": { "type": "object", "required": [ - "roles" + "uuid" ], "properties": { - "roles": { - "type": "array", - "description": "The role UUIDs to grant to the user.", - "items": { - "type": "string", - "format": "uuid", - "minLength": 36, - "maxLength": 36 - } + "uuid": { + "type": "string", + "description": "The uuid of the application to add to this team.", + "format": "uuid", + "minLength": 36, + "maxLength": 36 } } }, "example": { - "roles": [ - "489efe35-7bb7-48b7-9aa2-f6f8f457c926", - "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" - ] + "uuid": "a47ac10b-58cc-4372-a567-0e02b2c3d470" } } } }, + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], "responses": { "200": { "description": "OK", @@ -37273,9 +37564,9 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" }, "examples": { - "Modified member roles": { + "Added application": { "value": { - "message": "Modified member roles." + "message": "Added application to team." } } } @@ -37290,10 +37581,10 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" }, "examples": { - "No permission": { + "Not found": { "value": { "error": "forbidden", - "message": "You do not have permission to modify team member roles." + "message": "The application you are trying to access does not exist, or you do not have permission to access it." } } } @@ -37313,27 +37604,59 @@ "error": "not_found", "message": "The team you are trying to access does not exist, or you do not have permission to access it." } + }, + "Application mismatch": { + "value": { + "error": "not_found", + "message": "The application must belong to the same organization as this team." + } } } } } - } - } - }, - "delete": { - "tags": [ - "Teams and Permissions" - ], - "summary": "Remove a user from a team.", - "description": "Remove a user from a team.", - "operationId": "deleteTeamsRemoveMember", - "x-cli-name": "tps:team-member-remove", + }, + "409": { + "description": "Conflict", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Application already on team": { + "value": { + "error": "conflict", + "message": "The application is already on this team." + } + } + } + } + } + } + } + } + }, + "/teams/{teamUuid}/applications/{applicationUuid}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "delete": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Removes the application from this team.", + "description": "Removes the application from this team. Team members will immediately lose access to this application.", + "operationId": "deleteTeamsRemoveApplication", + "x-cli-name": "tps:team-application-remove", "parameters": [ { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" }, { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_user-uuid" + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_application-uuid" } ], "security": [ @@ -37350,9 +37673,5217 @@ "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" }, "examples": { - "Team member removed": { + "Removed application": { "value": { - "message": "Team member removed." + "message": "Removed application from team." + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Not found": { + "value": { + "error": "forbidden", + "message": "The application you are trying to access does not exist, or you do not have permission to access it." + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Team not found": { + "value": { + "error": "not_found", + "message": "The team you are trying to access does not exist, or you do not have permission to access it." + } + }, + "Application mismatch": { + "value": { + "error": "not_found", + "message": "The application is not associated with this team." + } + } + } + } + } + } + } + } + }, + "/teams/{teamUuid}/invites": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "get": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Returns a list of invitations to this team.", + "description": "Returns a list of invitations to this team.\n\nFilterable fields:\n* `mail`\n* `token`\n* `author`\n\nSortable fields:\n* `mail`\n* `token`\n* `author`\n", + "operationId": "getTeamInvites", + "x-cli-name": "tps:team-invite-list", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_filter" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_limit" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_offset" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_range" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team-invites" + }, + "example": { + "total": 2, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites" + }, + "sort": { + "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites{?sort}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites{?filter}", + "templated": true + }, + "limit": { + "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625/invites{?limit}", + "templated": true + }, + "parent": { + "href": "https://cloud.acquia.com/api/teams/06adb604-d918-49f0-8ad6-06f037a4c625" + } + }, + "_embedded": { + "items": [ + { + "applications": [ + { + "uuid": "88dc87db-1169-4908-9384-2328a7bd5cc1", + "name": "Main Application" + } + ], + "author": { + "uuid": "ff4d12d9-1aba-472a-b0d1-ba19342922fa", + "username": "jane.doe", + "first_name": "Jane", + "last_name": "Doe", + "mail": "jane.doe@example.com", + "picture_url": "https://accounts.acquia.com/sites/default/files/avatars/123abc?mail=jane.doe@example.com" + }, + "roles": [ + { + "uuid": "aba649d1-795e-4472-87c8-7b32536c71b3", + "name": "Senior Developer" + }, + { + "uuid": "a70a0192-c962-421a-b534-393c245ba142", + "name": "Team Lead" + } + ], + "organization": { + "uuid": "3f3fc2da-bb2b-473c-aa5c-8b9d8fa6c7b8", + "name": "Organization Name" + }, + "team": { + "uuid": "9ab05712-29b7-4171-8168-2ed085ea32b2", + "name": "Team Name" + }, + "uuid": "f4347e76-bcd7-41f6-91aa-ac6691755f0c", + "email": "invitee@example.com", + "created_at": "2012-05-15T12:00:00Z", + "token": "dd9ea69fdcb6bee08b31a858b85535ec", + "flags": { + "declined": true + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/invites/dd9ea69fdcb6bee08b31a858b85535ec" + } + } + }, + { + "applications": [ + { + "uuid": "88dc87db-1169-4908-9384-2328a7bd5cc1", + "name": "Main Application" + }, + { + "uuid": "a2345672-58cc-4372-a567-0e02b2c3d470", + "name": "Secondary Application" + } + ], + "author": { + "uuid": "80363753-76dc-486c-b942-57ff9fc131ee", + "username": "john.doe", + "first_name": "John", + "last_name": "Doe", + "mail": "john.doe@example.com", + "picture_url": "https://accounts.acquia.com/sites/default/files/avatars/123abc?mail=john.doe@example.com" + }, + "roles": [ + { + "uuid": "aba649d1-795e-4472-87c8-7b32536c71b3", + "name": "Senior Developer" + } + ], + "organization": { + "uuid": "3f3fc2da-bb2b-473c-aa5c-8b9d8fa6c7b8", + "name": "Organization Name" + }, + "team": { + "uuid": "9ab05712-29b7-4171-8168-2ed085ea32b2", + "name": "Team Name" + }, + "uuid": "6bf96944-bb9b-4629-b593-d658e44d8054", + "email": "invitee2@example.com", + "created_at": "2012-05-15T12:00:00Z", + "token": "dd9ea69fdcb6bee08b31a858b85535ed", + "flags": { + "declined": false + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/invites/dd9ea69fdcb6bee08b31a858b85535ed" + } + } + } + ] + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "No permission": { + "value": { + "error": "forbidden", + "message": "You do not have permission to view invites for this team." + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Not found": { + "value": { + "error": "not_found", + "message": "The team you are trying to access does not exist, or you do not have permission to access it." + } + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Invites a user to join a team.", + "description": "Invites a user to join a team.", + "operationId": "postTeamsInviteUser", + "x-cli-name": "tps:team-user-invite", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + } + ], + "requestBody": { + "required": true, + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_post-invite" + }, + "example": { + "email": "person@example.com", + "roles": [ + "489efe35-7bb7-48b7-9aa2-f6f8f457c926", + "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" + ] + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_post-invite" + }, + "example": { + "email": "person@example.com", + "roles": [ + "489efe35-7bb7-48b7-9aa2-f6f8f457c926", + "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" + ] + } + } + } + }, + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + }, + "examples": { + "Invited": { + "value": { + "message": "Invited team member." + } + } + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_invite" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_validation-error" + }, + "examples": { + "Missing parameter": { + "value": { + "error": "validation_failed", + "message": { + "name": "Missing required parameter(s): example_param" + } + } + }, + "Invalid parameter": { + "value": { + "error": "validation_failed", + "message": { + "name": "Invalid values for parameter(s): example_param" + } + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Insufficient permissions": { + "value": { + "error": "forbidden", + "message": "You do not have permission to invite users to this team." + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Team not found": { + "value": { + "error": "not_found", + "message": "The team you are trying to modify does not exist, or you do not have permission to access it." + } + }, + "Role not found": { + "value": { + "error": "not_found", + "message": "One or more of the chosen roles do not belong to this organization." + } + } + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Invitation already sent": { + "value": { + "error": "conflict", + "message": "An invitation to person@example.com has already been sent. It was sent on May 6, 2016 - 7:26pm." + } + }, + "User already on team": { + "value": { + "error": "conflict", + "message": "The user you are trying to invite already belongs to the team." + } + }, + "Must have at least one role": { + "value": { + "error": "conflict", + "message": "A team member must be invited with at least one role." + } + } + } + } + } + } + } + } + }, + "/teams/{teamUuid}/members": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "get": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Returns a list of team members.", + "description": "Returns a list of team members.\n\nFilterable fields:\n* `permission`\n* `first_name`\n* `last_name`\n* `user`\n\nSortable fields:\n* `permission`\n* `first_name`\n* `last_name`\n", + "operationId": "getTeamMembers", + "x-cli-name": "tps:team-member-list", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_sort" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_filter" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_limit" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_offset" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_team-members" + }, + "example": { + "total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/teams/3c9ea553-3216-11e3-9170-12313920a23a/members" + }, + "parent": { + "href": "https://cloud.acquia.com/api/teams/3c9ea553-3216-11e3-9170-12313920a23a" + } + }, + "_embedded": { + "items": [ + { + "uuid": "5aa902c5-f1c1-6c94-edfa-86bc58d0dce3", + "first_name": "James", + "last_name": "Kirk", + "last_login_at": "2017-03-28T13:07:54-0500", + "mail": "james.kirk@example.com", + "picture_url": "https://accounts.acquia.com/images/users/5aa902c5-f1c1-6c94-edfa-86bc58d0dce3/style/avatar", + "username": "james.kirk", + "roles": [ + { + "uuid": "2d988ad3-4016-11e3-9170-12313920a02e", + "name": "Senior Developer" + } + ] + }, + { + "uuid": "30dacb5e-4122-11e1-9eb5-12313928d3c2", + "first_name": "Christopher", + "last_name": "Pike", + "last_login_at": "2016-03-28T13:07:54-0500", + "mail": "chris.pike@example.com", + "picture_url": "https://accounts.acquia.com/images/users/30dacb5e-4122-11e1-9eb5-12313928d3c2/style/avatar", + "username": "chris.pike", + "roles": [ + { + "uuid": "3c9a1174-4016-11e3-9170-12313920a02d", + "name": "Developer" + } + ] + }, + { + "uuid": "3bcddc3a-52ba-4cce-aaa3-9adf721c1b52", + "first_name": "Jonathan", + "last_name": "Archer", + "last_login_at": null, + "mail": "jonathan.archer@example.com", + "picture_url": "https://accounts.acquia.com/images/users/3bcddc3a-52ba-4cce-aaa3-9adf721c1b52/style/avatar", + "username": "jonathan.archer", + "roles": [ + { + "uuid": "2d988ad3-4016-11e3-9170-12313920a02e", + "name": "Senior Developer" + }, + { + "uuid": "3c9a1174-4016-11e3-9170-12313920a02d", + "name": "Developer" + } + ] + } + ] + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Not found": { + "value": { + "error": "not_found", + "message": "The team you are trying to access does not exist, or you do not have permission to access it." + } + } + } + } + } + } + } + } + }, + "/teams/{teamUuid}/members/{userUuid}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api", + "description": "Cloud API" + } + ], + "put": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Grant team roles to a member.", + "description": "Grant team roles to a member.", + "operationId": "putTeamsMember", + "x-cli-name": "tps:team-member-add", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_user-uuid" + } + ], + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "required": [ + "roles" + ], + "properties": { + "roles": { + "type": "array", + "description": "The role UUIDs to grant to the user.", + "items": { + "type": "string", + "format": "uuid", + "minLength": 36, + "maxLength": 36 + } + } + } + }, + "example": { + "roles": [ + "489efe35-7bb7-48b7-9aa2-f6f8f457c926", + "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" + ] + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "required": [ + "roles" + ], + "properties": { + "roles": { + "type": "array", + "description": "The role UUIDs to grant to the user.", + "items": { + "type": "string", + "format": "uuid", + "minLength": 36, + "maxLength": 36 + } + } + } + }, + "example": { + "roles": [ + "489efe35-7bb7-48b7-9aa2-f6f8f457c926", + "8025e9a7-781a-4ad1-b7ea-1f1b732944c2" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + }, + "examples": { + "Modified member roles": { + "value": { + "message": "Modified member roles." + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "No permission": { + "value": { + "error": "forbidden", + "message": "You do not have permission to modify team member roles." + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Not found": { + "value": { + "error": "not_found", + "message": "The team you are trying to access does not exist, or you do not have permission to access it." + } + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Teams and Permissions" + ], + "summary": "Remove a user from a team.", + "description": "Remove a user from a team.", + "operationId": "deleteTeamsRemoveMember", + "x-cli-name": "tps:team-member-remove", + "parameters": [ + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_team-uuid" + }, + { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_user-uuid" + } + ], + "security": [ + { + "Acquia_Cloud_API_Documentation_OAuth2": [] + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_message" + }, + "examples": { + "Team member removed": { + "value": { + "message": "Team member removed." + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "No permission": { + "value": { + "error": "forbidden", + "message": "You do not have permission to remove team members." + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" + }, + "examples": { + "Not found": { + "value": { + "error": "not_found", + "message": "The team member you are trying to remove does not exist, or you do not have permission to remove them." + } + }, + "Invalid team": { + "value": { + "error": "not_found", + "message": "Invalid team supplied. No action performed." + } + }, + "Invalid user": { + "value": { + "error": "not_found", + "message": "Invalid user supplied. No action performed." + } + }, + "User not team member": { + "value": { + "error": "not_found", + "message": "The user is not a member of this team." + } + } + } + } + } + } + } + } + }, + "/codebases/{codebaseId}/bulk-code-switch": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "api_codebases_codebaseIdbulk-code-switch_get_collection", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Retrieves a list of bulk code switches details performed on a codebase.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "total": { + "type": "integer", + "example": 1 + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "example": 1 + }, + "limit": { + "type": "integer", + "example": 25 + }, + "offset": { + "type": "integer", + "example": 0 + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" + }, + "codebase_id": { + "type": "string", + "format": "uuid", + "example": "0975a7a1-746f-4096-9c22-383f001797b5" + }, + "reference": { + "type": "string", + "example": "v.1.1.1" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-20T06:39:57+00:00" + } + } + } + } + } + }, + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?limit=25&offset=0" + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?offset=0{&limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?limit=25{&offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "filter": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?limit=25&offset=0{&filter}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + } + } + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a list of bulk code switches details performed on a codebase.", + "description": "Retrieves a list of bulk code switches details performed on a codebase.", + "x-cli-name": "codebases:bulk-code-switch:list", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "offset", + "in": "query", + "description": "The collection page number", + "required": false, + "deprecated": false, + "allowEmptyValue": true, + "schema": { + "type": "integer", + "default": 1 + }, + "style": "form", + "explode": false, + "allowReserved": false + }, + { + "name": "limit", + "in": "query", + "description": "The number of items per page", + "required": false, + "deprecated": false, + "allowEmptyValue": true, + "schema": { + "type": "integer", + "default": 25, + "minimum": 0 + }, + "style": "form", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + }, + "post": { + "operationId": "create_bulk_code_switch_resource", + "tags": [ + "Codebases" + ], + "responses": { + "202": { + "description": "Created a new Bulk Code Switch on a codebase.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "get": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/867c8d79-9751-4169-8799-18c8d211aec4" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch" + } + } + }, + "status": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/867c8d79-9751-4169-8799-18c8d211aec4/status" + } + } + } + } + }, + "message": { + "type": "string", + "example": "Bulk code switch started." + } + } + } + } + } + }, + "400": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Provide at least one valid target for bulk code switch." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Starts a new Bulk Code Switch for a codebase.", + "description": "Starts a new Bulk Code Switch for a codebase.", + "x-cli-name": "codebases:bulk-code-switch:start", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "requestBody": { + "description": "The new BulkCodeSwitch resource", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "example": "test-branch-ref" + }, + "targets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "environment_id": { + "type": "string", + "format": "string", + "example": "2345-a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + }, + "cloud_actions": { + "type": "array", + "items": { + "type": "string", + "example": "some-cloud-action" + } + } + }, + "required": [ + "environment_id" + ] + }, + "minItems": 1 + }, + "cloud_actions": { + "type": "array", + "items": { + "type": "string", + "example": "some-cloud-action" + } + } + }, + "required": [ + "reference", + "targets" + ] + } + } + }, + "required": false + }, + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/codebases/{codebaseId}/bulk-code-switch/{bulkCodeSwitchId}": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "get_bulk_code_switch_resource", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Bulk code switch details", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705/status" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" + }, + "codebase_id": { + "type": "string", + "format": "uuid", + "example": "0975a7a1-746f-4096-9c22-383f001797b5" + }, + "reference": { + "type": "string", + "example": "v.1.1.1" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-20T06:39:57+00:00" + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Bulk Code Switch resource not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The Bulk Code Switch details you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves bulk code switch details by id.", + "description": "Retrieves bulk code switch details by id.", + "x-cli-name": "codebases:bulk-code-switch:get", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "bulkCodeSwitchId", + "in": "path", + "description": "The entity's universally unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/applications/{applicationId}/codebase": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "api_applications_applicationIdcodebase_get", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Codebase details", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8/applications" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8" + } + } + }, + "subscription": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + } + } + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "11111111-041c-44c7-a486-7972ed2cafc8" + }, + "label": { + "type": "string", + "example": "Test codebase with attached applications" + }, + "region": { + "type": "string", + "example": "us-east-1" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "example": "ssh://us-east-1.dev.vcs.acquia.io/11111111-041c-44c7-a486-7972ed2cafc8" + }, + "repository_id": { + "type": "string", + "format": "uuid", + "example": "f03e15f9-0d97-498d-ba7d-99bd87b1417f" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-11T04:25:47+00:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-11T04:25:47+00:00" + }, + "description": { + "type": "string", + "example": "" + }, + "flags": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "example": true + } + } + }, + "hash": { + "type": "string", + "example": "pte116m" + }, + "applications_total": { + "type": "integer", + "example": 2 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a codebase details linked to the specified application.", + "description": "Retrieves a codebase details linked to the specified application.", + "x-cli-name": "codebases:get-by-application", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "description": "The entity's universally unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/codebases": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "api_codebases_get_collection", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "List of codebases.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "total": { + "type": "integer", + "example": 1 + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "example": 1 + }, + "limit": { + "type": "integer", + "example": 25 + }, + "offset": { + "type": "integer", + "example": 0 + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/applications" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5" + } + } + }, + "subscription": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "0975a7a1-746f-4096-9c22-383f001797b5" + }, + "label": { + "type": "string", + "example": "test" + }, + "region": { + "type": "string", + "example": "us-east-1" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "example": "ssh://us-east-1.dev.vcs.acquia.io/0975a7a1-746f-4096-9c22-383f001797b5" + }, + "repository_id": { + "type": "string", + "format": "uuid", + "example": "a5ef0a9d-44ce-4f06-8d4f-15f24f941a74" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-20T06:39:50+00:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-20T06:39:50+00:00" + }, + "description": { + "type": "string", + "example": "" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "example": true + }, + "is_meo": { + "type": "boolean", + "example": false + } + } + }, + "hash": { + "type": "string", + "example": "ryh4smn" + }, + "applications_total": { + "type": "integer", + "example": 0 + } + } + } + } + } + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases?limit=25&offset=0" + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases?offset=0{&limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases?limit=25{&offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "filter": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases?limit=25&offset=0{&filter}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "bad_request" + }, + "message": { + "type": "string", + "example": "The request could not be understood due to malformed syntax." + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + } + }, + "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.", + "x-cli-name": "codebases:get-all", + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "Pagination offset.", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of results to return.", + "required": false, + "schema": { + "type": "integer", + "default": 25 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter results. Example: filter=application_id%3D", + "required": false, + "schema": { + "type": "string" + } + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/codebases/{codebaseId}": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "get_codebase_by_id", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Codebase details", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8/applications" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8" + } + } + }, + "subscription": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "11111111-041c-44c7-a486-7972ed2cafc8" + }, + "label": { + "type": "string", + "example": "Test codebase with attached applications" + }, + "region": { + "type": "string", + "example": "us-east-1" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "example": "ssh://us-east-1.dev.vcs.acquia.io/11111111-041c-44c7-a486-7972ed2cafc8" + }, + "repository_id": { + "type": "string", + "format": "uuid", + "example": "f03e15f9-0d97-498d-ba7d-99bd87b1417f" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-11T04:25:47+00:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-11T04:25:47+00:00" + }, + "description": { + "type": "string", + "example": "" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "example": true + }, + "is_meo": { + "type": "boolean", + "example": false + } + } + }, + "hash": { + "type": "string", + "example": "pte116m" + }, + "applications_total": { + "type": "integer", + "example": 2 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a codebase details by its ID.", + "description": "Return details about a specific codebase.", + "x-cli-name": "codebases:get", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + }, + "put": { + "operationId": "api_codebases_codebaseId_put", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Codebase updated.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Codebase updated." + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error in request body.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request body." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Update a codebase details by its ID.", + "description": "Update a codebase details by its ID.", + "x-cli-name": "codebases:update", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "requestBody": { + "description": "The updated Codebase resource", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "example": "test-codebase" + }, + "description": { + "type": "string", + "example": "codebase-description" + } + }, + "minProperties": 1, + "additionalProperties": false + } + } + }, + "required": true + }, + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + }, + "delete": { + "operationId": "api_codebases_codebaseId_delete", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Codebase deleted.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Codebase deleted." + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + } + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Delete a codebase by its ID.", + "description": "Delete a codebase by its ID.", + "x-cli-name": "codebases:delete", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "force", + "in": "query", + "description": "Force-delete the codebase, bypassing application checks. Requires ROLE_ENGINEERING.", + "required": false, + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form", + "explode": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/subscriptions/{subscriptionId}/codebases": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "subscription_codebases", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "List of codebases for the subscription.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "total": { + "type": "integer", + "example": 1 + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "example": 1 + }, + "limit": { + "type": "integer", + "example": 25 + }, + "offset": { + "type": "integer", + "example": 0 + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/applications" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5" + } + } + }, + "subscription": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "0975a7a1-746f-4096-9c22-383f001797b5" + }, + "label": { + "type": "string", + "example": "test" + }, + "region": { + "type": "string", + "example": "us-east-1" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "example": "ssh://us-east-1.dev.vcs.acquia.io/0975a7a1-746f-4096-9c22-383f001797b5" + }, + "repository_id": { + "type": "string", + "format": "uuid", + "example": "a5ef0a9d-44ce-4f06-8d4f-15f24f941a74" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-20T06:39:50+00:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2024-12-20T06:39:50+00:00" + }, + "description": { + "type": "string", + "example": "" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "example": true + }, + "is_meo": { + "type": "boolean", + "example": false + } + } + }, + "hash": { + "type": "string", + "example": "ryh4smn" + }, + "applications_total": { + "type": "integer", + "example": 0 + } + } + } + } + } + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479/codebases?limit=25&offset=0" + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479/codebases?offset=0{&limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479/codebases?limit=25{&offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "filter": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479/codebases?limit=25&offset=0{&filter}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "bad_request" + }, + "message": { + "type": "string", + "example": "The request could not be understood due to malformed syntax." + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Subscription not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The subscription you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a list of codebases for a subscription.", + "description": "Retrieves a list of codebases for a subscription.", + "x-cli-name": "codebases:get-by-subscription", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "The entity's universally unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "offset", + "in": "query", + "description": "Pagination offset.", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of results to return.", + "required": false, + "schema": { + "type": "integer", + "default": 25 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + }, + "post": { + "operationId": "api_subscriptions_subscriptionIdcodebases_post", + "x-prerelease": true, + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Codebase created.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + } + }, + "message": { + "type": "string", + "example": "Codebase created." + } + } + } + } + } + }, + "400": { + "description": "Incomplete or incorrect request body.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "object", + "properties": { + "label": { + "type": "string", + "example": "This value should not be null." + } + } + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Subscription not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Subscription with id:invalid-sub-9999 could not be found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Create a new codebase for a subscription.", + "description": "Create a new codebase for a subscription.", + "x-cli-name": "codebases:create", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "The entity's unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "requestBody": { + "description": "The new Codebase resource", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "codebase_id": { + "type": "string", + "format": "uuid", + "example": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + }, + "label": { + "type": "string", + "example": "test-codebase" + }, + "region": { + "type": "string", + "example": "us-east-1" + } + }, + "required": [ + "codebase_id", + "label", + "region" + ], + "additionalProperties": false + } + } + }, + "required": true + }, + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + }, + "options": { + "operationId": "api_subscriptions_subscriptionIdcodebases_options", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Gets supported regions for a new codebase.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/123" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/123/codebases" + } + } + } + } + }, + "regions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "us-east-1", + "eu-west-1", + "us-west-2" + ] + } + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Gets supported regions for a new codebase.", + "description": "Gets supported regions for a new codebase.", + "x-cli-name": "codebases:get-regions", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "The entity's universally unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/codebases/{codebaseId}/applications": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "codebase_applications", + "x-prerelease": true, + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Retrieves a list of applications by codebase ID.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "total": { + "type": "integer", + "example": 1 + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "example": 1 + }, + "limit": { + "type": "integer", + "example": 25 + }, + "offset": { + "type": "integer", + "example": 0 + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/applications/App1" + } + } + } + } + }, + "id": { + "type": "string", + "example": "App1" + }, + "machine_name": { + "type": "string", + "example": "APP_NAME" + } + } + } + } + } + }, + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications" + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications{?limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications{?offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "filter": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications{?filter}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + } + } + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a list of applications by codebase ID.", + "description": "Retrieves the collection of application resources from codebase ID. If the user has admin-level access, no filter is applied. Otherwise, the resources are filtered based on the requesting user's permissions.", + "x-cli-name": "codebases:applications:list", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/codebases/{codebaseId}/references": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "get_references_by_codebase", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Retrieves a list of git references by codebase.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "total": { + "type": "integer", + "example": 1 + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "example": 1 + }, + "limit": { + "type": "integer", + "example": 25 + }, + "offset": { + "type": "integer", + "example": 0 + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references/main" + } + } + } + } + }, + "id": { + "type": "string", + "example": "1234567" + }, + "name": { + "type": "string", + "example": "main" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "example": "branch" + } + } + } + } + } + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references" + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "filter": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?filter}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "sort": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?sort}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + } + } + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a list of git references for a codebase.", + "description": "Retrieves a list of git references for a codebase.", + "x-cli-name": "codebases:references:list", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "offset", + "in": "query", + "description": "Pagination offset.", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of results to return.", + "required": false, + "schema": { + "type": "integer", + "default": 25 + } + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/codebases/{codebaseId}/references/{referenceName}": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "get_single_reference", + "tags": [ + "Codebases" + ], + "responses": { + "200": { + "description": "Retrieves a single git reference for a codebase.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references/main" + } + } + } + } + }, + "id": { + "type": "string", + "example": "ref-123" + }, + "name": { + "type": "string", + "example": "main" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "example": "branch" + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Codebase not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves a single git reference data for the given codebase.", + "description": "Retrieves a single git reference data for the given codebase.", + "x-cli-name": "codebases:references:get", + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "description": "The codebase entity's unique identifier.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "referenceName", + "in": "path", + "description": "The reference name.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "Codebase_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "site_instance_database", + "x-cli-name": "site-instances:database", + "x-prerelease": true, + "tags": [], + "responses": { + "200": { + "description": "Database details", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" + } + } + } + } + }, + "database_host": { + "type": "string", + "example": "localhost" + }, + "database_name": { + "type": "string", + "example": "example" + }, + "database_role": { + "type": "string", + "example": "example" + }, + "database_password": { + "type": "string", + "example": "example@123" + }, + "database_user_name": { + "type": "string", + "example": "example" + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Database not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "not found" + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieve database info based on the site instance.", + "description": "Retrieve database info based on the site instance.", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + }, + "post": { + "operationId": "api_site-instances_siteId._environmentIddatabase_post", + "x-cli-name": "site-instances:database:copy", + "x-prerelease": true, + "tags": [], + "responses": { + "202": { + "description": "Copied database from one environment to another.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Database copy for site id 3e8ecbec-ea7c-4260-8414-ef2938c859bc from e8a2c3c1-baf3-4d9a-9b56-87d8f61ab9f7 to d9a0fe17-cb18-4c21-b8ea-9e3a0b7b4c18 started." + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site/3e8ecbec-ea7c-4260-8414-ef2938c859bc/databases" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error in request body.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request body." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + }, + "422": { + "description": "Unprocessable entity" + } + }, + "summary": "Copy a database from one environment to another.", + "description": "Copy a database from one environment to another.", + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "requestBody": { + "description": "Database copy request with source and destination environment ids.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_environment_id": { + "type": "string", + "example": "e8a2c3c1-baf3-4d9a-9b56-87d8f61ab9f7" + } + } + } + } + }, + "required": true + }, + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "get_database_backups", + "x-cli-name": "site-instances:database:backups", + "x-prerelease": true, + "tags": [], + "responses": { + "200": { + "description": "List Database backups of site instance.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "example": 1 + }, + "total": { + "type": "integer", + "example": 1 + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "example": 1 + }, + "limit": { + "type": "integer", + "example": 25 + }, + "offset": { + "type": "integer", + "example": 1 + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "database_id": { + "type": "string", + "example": "b0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "created_at": { + "type": "string", + "example": "2025-04-01T13:01:06.603Z" + }, + "type": { + "type": "string", + "example": "DAILY" + }, + "_links": { + "type": "string", + "example": "www.example.com" + } + } + } + } + } + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1" + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?offset=1{&limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25{&offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "filter": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1{&filter}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "sort": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1{&sort}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "prev": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1" + } + } + } + } + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Database Backup not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves collection of database backups associated with site(a site-instance).", + "description": "Retrieves collection of database backups associated with site(a site-instance).", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "offset", + "in": "query", + "description": "The collection page number", + "required": false, + "deprecated": false, + "allowEmptyValue": true, + "schema": { + "type": "integer", + "default": 1 + }, + "style": "form", + "explode": false, + "allowReserved": false + }, + { + "name": "limit", + "in": "query", + "description": "The number of items per page", + "required": false, + "deprecated": false, + "allowEmptyValue": true, + "schema": { + "type": "integer", + "default": 25, + "minimum": 0 + }, + "style": "form", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + }, + "post": { + "operationId": "api_site-instances_siteId._environmentIddatabasebackups_post", + "x-cli-name": "site-instances:database:backups:create", + "x-prerelease": true, + "tags": [], + "responses": { + "201": { + "description": "Created backup for the site instance Db.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Database backup started." + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/d9a0fe17-cb18-4c21-b8ea-9e3a0b7b4c18.e8a2c3c1-baf3-4d9a-9b56-87d8f61ab9f7/database/backups" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error in request body.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request body." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Database not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "not found" + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + }, + "422": { + "description": "Unprocessable entity" + } + }, + "summary": "Create a new backup for the site instance Db.", + "description": "Create a new backup for the site instance Db.", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups/{id}": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "get_database_backup", + "x-cli-name": "site-instances:database:backups:get", + "x-prerelease": true, + "tags": [], + "responses": { + "200": { + "description": "Database Backup details", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + } + } + }, + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups" + } + } + }, + "site-instance": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + }, + "site": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/sites/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + }, + "environment": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + }, + "id": { + "type": "string", + "example": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "database_id": { + "type": "string", + "example": "b0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "created_at": { + "type": "string", + "example": "2025-04-01T13:01:06.603Z" + }, + "type": { + "type": "string", + "example": "DAILY" + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Database Backup not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves details about a backup by its id associated with site(a site-instance)", + "description": "Retrieves details about a backup by its id associated with site(a site-instance)", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Database backup unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + }, + "delete": { + "operationId": "api_site-instances_siteId._environmentIddatabasebackups_id_delete", + "x-cli-name": "site-instances:database:backups:delete", + "x-prerelease": true, + "tags": [], + "responses": { + "202": { + "description": "Delete a site instance database backup", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Database backup deletion started." + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Database Backup not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Delete a site instance database backup", + "description": "Delete a site instance database backup", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "id", + "in": "path", + "description": "Backup unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups/{id}/actions/download": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "api_site-instances_siteId._environmentIddatabasebackups_idactionsdownload_get", + "x-cli-name": "site-instances:database:backups:download", + "x-prerelease": true, + "tags": [], + "responses": { + "200": { + "description": "DatabaseBackup resource", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/MEO_Environment_Service_DatabaseBackup.jsonhal" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/MEO_Environment_Service_DatabaseBackup" + } + }, + "text/html": { + "schema": { + "$ref": "#/components/schemas/MEO_Environment_Service_DatabaseBackup" + } + } + } + }, + "201": { + "description": "Download a site instance Db backup", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Database backup download started." + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Database Backup not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Download a site instance Database backup", + "description": "Download a site instance Database backup.", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "id", + "in": "path", + "description": "Backup unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups/{id}/actions/restore": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "post": { + "operationId": "restore_database_backup", + "x-cli-name": "site-instances:database:backups:restore", + "x-prerelease": true, + "tags": [], + "responses": { + "202": { + "description": "Restore database backup", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups/1" + } + } + }, + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups/1/actions/restore" + } + } + } + } + }, + "message": { + "type": "string", + "example": "Database restore started." + } + } + } + } + } + }, + "400": { + "description": "Invalid input" + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 } } } @@ -37360,17 +42891,23 @@ } }, "403": { - "description": "Forbidden", + "description": "Access Denied", "content": { - "application/hal+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" - }, - "examples": { - "No permission": { - "value": { - "error": "forbidden", - "message": "You do not have permission to remove team members." + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 } } } @@ -37378,45 +42915,88 @@ } }, "404": { - "description": "Not Found", + "description": "Database Backup not found.", "content": { - "application/hal+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" - }, - "examples": { - "Not found": { - "value": { - "error": "not_found", - "message": "The team member you are trying to remove does not exist, or you do not have permission to remove them." - } - }, - "Invalid team": { - "value": { - "error": "not_found", - "message": "Invalid team supplied. No action performed." - } - }, - "Invalid user": { - "value": { - "error": "not_found", - "message": "Invalid user supplied. No action performed." - } - }, - "User not team member": { - "value": { - "error": "not_found", - "message": "The user is not a member of this team." + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 } } } } } + }, + "422": { + "description": "Unprocessable entity" } - } + }, + "summary": "Restore a backup for the site instance Db", + "description": "Restore a backup for the site instance Db.", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "id", + "in": "path", + "description": "Backup unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] } }, - "/codebases/{codebaseId}/bulk-code-switch": { + "/site-instances/{siteId}.{environmentId}/domains": { "servers": [ { "url": "/", @@ -37424,13 +43004,13 @@ } ], "get": { - "operationId": "api_codebases_codebaseIdbulk-code-switch_get_collection", - "tags": [ - "Codebases" - ], + "operationId": "site_instance_domains", + "x-cli-name": "site-instances:domains", + "x-prerelease": true, + "tags": [], "responses": { "200": { - "description": "Retrieves a list of bulk code switches details performed on a codebase.", + "description": "List of site instance domains.", "content": { "application/hal+json": { "schema": { @@ -37457,7 +43037,7 @@ }, "offset": { "type": "integer", - "example": 0 + "example": 1 } } }, @@ -37469,49 +43049,29 @@ "items": { "type": "object", "properties": { - "_links": { + "domain": { "type": "object", "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5" - } - } + "name": { + "type": "string", + "example": "example.com" }, - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" - } - } + "is_managed": { + "type": "boolean", + "example": true + }, + "type": { + "type": "string", + "nullable": true, + "enum": [ + "custom", + "environment-pattern", + "codebase-pattern", + "acquia" + ], + "example": "custom" } } - }, - "id": { - "type": "string", - "format": "uuid", - "example": "1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" - }, - "codebase_id": { - "type": "string", - "format": "uuid", - "example": "0975a7a1-746f-4096-9c22-383f001797b5" - }, - "reference": { - "type": "string", - "example": "v.1.1.1" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2024-12-20T06:39:57+00:00" } } } @@ -37521,33 +43081,37 @@ "_links": { "type": "object", "properties": { - "parent": { + "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.3e8ecbec-ea7c-4260-8414-ef2938c859bc/domains?limit=25&offset=1" } } }, - "self": { + "limit": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?limit=25&offset=0" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=1{&limit}" + }, + "templated": { + "type": "boolean", + "example": true } } }, - "limit": { + "offset": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?offset=0{&limit}" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25{&offset}" }, "templated": { "type": "boolean", @@ -37555,13 +43119,13 @@ } } }, - "offset": { + "filter": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?limit=25{&offset}" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25&offset=1{&filter}" }, "templated": { "type": "boolean", @@ -37569,19 +43133,29 @@ } } }, - "filter": { + "sort": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch?limit=25&offset=0{&filter}" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25&offset=1{&sort}" }, "templated": { "type": "boolean", "example": true } } + }, + "prev": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25&offset=1" + } + } } } } @@ -37590,6 +43164,30 @@ } } }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, "403": { "description": "Access Denied", "content": { @@ -37615,7 +43213,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Site instance Domain not found.", "content": { "application/json": { "schema": { @@ -37627,7 +43225,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "The domains for the site instance with id {site_id}.{environment_id} you are trying to access does not exist, or you do not have permission to access it." }, "code": { "type": "integer", @@ -37639,14 +43237,27 @@ } } }, - "summary": "Retrieves a list of bulk code switches details performed on a codebase.", - "description": "Retrieves a list of bulk code switches details performed on a codebase.", - "x-cli-name": "codebases:bulk-code-switch:list", + "summary": "Retrieves all site instance domains by environment and site ID.", + "description": "Retrieves all site instance domains by environment and site ID.", "parameters": [ { - "name": "codebaseId", + "name": "siteId", "in": "path", - "description": "", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -37692,18 +43303,26 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] - }, - "post": { - "operationId": "create_bulk_code_switch_resource", - "tags": [ - "Codebases" - ], + } + }, + "/site-instances/{siteId}.{environmentId}/domains/{domainName}": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "site_instance_domain", + "x-cli-name": "site-instances:domain", + "x-prerelease": true, + "tags": [], "responses": { - "202": { - "description": "Created a new Bulk Code Switch on a codebase.", + "200": { + "description": "Domain details", "content": { "application/hal+json": { "schema": { @@ -37712,41 +43331,204 @@ "_links": { "type": "object", "properties": { - "get": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/867c8d79-9751-4169-8799-18c8d211aec4" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" } } + } + } + }, + "domain": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "example.com" }, - "status": { + "is_managed": { + "type": "boolean", + "example": true + }, + "type": { + "type": "string", + "nullable": true, + "enum": [ + "custom", + "environment-pattern", + "codebase-pattern", + "acquia" + ], + "example": "custom" + } + } + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Domain not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The domain provided does not exist." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves site instance domain details by environment and site ID.", + "description": "Retrieves site instance domain details by environment and site ID.", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "domainName", + "in": "path", + "description": "Domain Name", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + }, + "put": { + "operationId": "add_domain_to_site", + "x-cli-name": "site-instances:domain:add", + "x-prerelease": true, + "tags": [], + "responses": { + "201": { + "description": "Domain updated", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/867c8d79-9751-4169-8799-18c8d211aec4/status" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" } } } } }, - "message": { + "name": { "type": "string", - "example": "Bulk code switch started." + "example": "example.com" } } } @@ -37754,7 +43536,10 @@ } }, "400": { - "description": "Codebase not found.", + "description": "Invalid input" + }, + "401": { + "description": "Authorization required.", "content": { "application/json": { "schema": { @@ -37762,15 +43547,15 @@ "properties": { "error": { "type": "string", - "example": "validation_failed" + "example": "system" }, "message": { "type": "string", - "example": "Provide at least one valid target for bulk code switch." + "example": "Full authentication is required to access this resource." }, "code": { "type": "integer", - "example": 400 + "example": 401 } } } @@ -37802,7 +43587,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Domain not found.", "content": { "application/json": { "schema": { @@ -37814,7 +43599,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "The domain provided does not exist." }, "code": { "type": "integer", @@ -37824,16 +43609,46 @@ } } } + }, + "422": { + "description": "Unprocessable entity" } }, - "summary": "Starts a new Bulk Code Switch for a codebase.", - "description": "Starts a new Bulk Code Switch for a codebase.", - "x-cli-name": "codebases:bulk-code-switch:start", + "summary": "Associate a site and environment with a domain.", + "description": "Associate a site and environment with a domain.", "parameters": [ { - "name": "codebaseId", + "name": "siteId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "domainName", + "in": "path", + "description": "Domain Name", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -37846,52 +43661,12 @@ } ], "requestBody": { - "description": "The new BulkCodeSwitch resource", + "description": "The updated Domain resource", "content": { "application/json": { "schema": { "type": "object", - "properties": { - "reference": { - "type": "string", - "example": "test-branch-ref" - }, - "targets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "environment_id": { - "type": "string", - "format": "string", - "example": "2345-a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - }, - "cloud_actions": { - "type": "array", - "items": { - "type": "string", - "example": "some-cloud-action" - } - } - }, - "required": [ - "environment_id" - ] - }, - "minItems": 1 - }, - "cloud_actions": { - "type": "array", - "items": { - "type": "string", - "example": "some-cloud-action" - } - } - }, - "required": [ - "reference", - "targets" - ] + "additionalProperties": false } } }, @@ -37900,74 +43675,50 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] - } - }, - "/codebases/{codebaseId}/bulk-code-switch/{bulkCodeSwitchId}": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "get_bulk_code_switch_resource", - "tags": [ - "Codebases" - ], + }, + "delete": { + "operationId": "api_site-instances_siteId._environmentIddomains_domainName_delete", + "x-cli-name": "site-instances:domain:delete", + "x-prerelease": true, + "tags": [], "responses": { - "200": { - "description": "Bulk code switch details", + "202": { + "description": "Dissociate a site and environment from a domain", "content": { - "application/hal+json": { + "application/json": { "schema": { "type": "object", "properties": { - "_links": { - "type": "object", - "properties": { - "status": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705/status" - } - } - }, - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/bulk-code-switch/1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" - } - } - } - } - }, - "id": { + "message": { "type": "string", - "format": "uuid", - "example": "1e6d0ff7-aec7-4ba8-8f67-d0bcdc945705" - }, - "codebase_id": { + "example": "www.example.com domain deletion for site_id:3e8ecbec-ea7c-4260-8414-ef2938c859bc started." + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { "type": "string", - "format": "uuid", - "example": "0975a7a1-746f-4096-9c22-383f001797b5" + "example": "system" }, - "reference": { + "message": { "type": "string", - "example": "v.1.1.1" + "example": "Full authentication is required to access this resource." }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2024-12-20T06:39:57+00:00" + "code": { + "type": "integer", + "example": 401 } } } @@ -37999,7 +43750,7 @@ } }, "404": { - "description": "Bulk Code Switch resource not found.", + "description": "Domain not found.", "content": { "application/json": { "schema": { @@ -38011,7 +43762,7 @@ }, "message": { "type": "string", - "example": "The Bulk Code Switch details you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -38023,14 +43774,13 @@ } } }, - "summary": "Retrieves bulk code switch details by id.", - "description": "Retrieves bulk code switch details by id.", - "x-cli-name": "codebases:bulk-code-switch:get", + "summary": "Dissociate a site and environment from a domain.", + "description": "Dissociate a site and environment from a domain.", "parameters": [ { - "name": "codebaseId", + "name": "siteId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Site unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -38042,9 +43792,23 @@ "allowReserved": false }, { - "name": "bulkCodeSwitchId", + "name": "environmentId", "in": "path", - "description": "The entity's universally unique identifier.", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "domainName", + "in": "path", + "description": "Domain Name", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -38059,12 +43823,12 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/applications/{applicationId}/codebase": { + "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": { "servers": [ { "url": "/", @@ -38072,13 +43836,13 @@ } ], "get": { - "operationId": "api_applications_applicationIdcodebase_get", - "tags": [ - "Codebases" - ], + "operationId": "site_instance_domain_status", + "x-cli-name": "site-instances:domain:status", + "x-prerelease": true, + "tags": [], "responses": { "200": { - "description": "Codebase details", + "description": "Domain Status", "content": { "application/hal+json": { "schema": { @@ -38087,121 +43851,81 @@ "_links": { "type": "object", "properties": { - "applications": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8/applications" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8" - } - } - }, - "subscription": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "subscription": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } - } - } - }, - "id": { - "type": "string", - "format": "uuid", - "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.3e8ecbec-ea7c-4260-8414-ef2938c859bc/domains/www.example.com/status" } } } } }, - "id": { - "type": "string", - "format": "uuid", - "example": "11111111-041c-44c7-a486-7972ed2cafc8" - }, - "label": { - "type": "string", - "example": "Test codebase with attached applications" - }, - "region": { - "type": "string", - "example": "us-east-1" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "example": "ssh://us-east-1.dev.vcs.acquia.io/11111111-041c-44c7-a486-7972ed2cafc8" - }, - "repository_id": { - "type": "string", - "format": "uuid", - "example": "f03e15f9-0d97-498d-ba7d-99bd87b1417f" - }, - "created_at": { + "site-id": { "type": "string", - "format": "date-time", - "example": "2024-12-11T04:25:47+00:00" + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" }, - "updated_at": { + "environment-id": { "type": "string", - "format": "date-time", - "example": "2024-12-11T04:25:47+00:00" + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" }, - "description": { + "hostname": { "type": "string", - "example": "" + "example": "www.example.com" }, "flags": { "type": "object", - "properties": { - "active": { - "type": "boolean", - "example": true - } + "example": { + "default": false, + "active": true, + "dns_resolves": true, + "acquia_hosted": true } }, - "hash": { + "ip_addresses": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] + }, + "cnames": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "cname1.example.com", + "cname2.example.com" + ] + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { "type": "string", - "example": "pte116m" + "example": "system" }, - "applications_total": { + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { "type": "integer", - "example": 2 + "example": 401 } } } @@ -38233,7 +43957,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Domain not found.", "content": { "application/json": { "schema": { @@ -38245,7 +43969,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -38257,14 +43981,41 @@ } } }, - "summary": "Retrieves a codebase details linked to the specified application.", - "description": "Retrieves a codebase details linked to the specified application.", - "x-cli-name": "codebases:get-by-application", + "summary": "Retrieves site instance domain status.", + "description": "Retrieves site instance domain status.", "parameters": [ { - "name": "applicationId", + "name": "siteId", "in": "path", - "description": "The entity's universally unique identifier.", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "domainName", + "in": "path", + "description": "Domain Name", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -38279,12 +44030,12 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/codebases": { + "/codebases/{codebaseId}/environments": { "servers": [ { "url": "/", @@ -38292,13 +44043,13 @@ } ], "get": { - "operationId": "api_codebases_get_collection", - "tags": [ - "Codebases" - ], + "operationId": "environments_by_codebase", + "x-cli-name": "codebases:environments-list", + "x-prerelease": true, + "tags": [], "responses": { "200": { - "description": "List of codebases.", + "description": "List of environments.", "content": { "application/hal+json": { "schema": { @@ -38325,7 +44076,7 @@ }, "offset": { "type": "integer", - "example": 0 + "example": 1 } } }, @@ -38340,44 +44091,97 @@ "_links": { "type": "object", "properties": { - "applications": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/applications" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases" + "format": "string", + "example": "https://cloud.acquia.com/api/environments/1111-1111-1111" } } }, - "subscription": { + "codebase": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc" } } } } }, + "id": { + "type": "string", + "example": "1111-1111-1111" + }, + "name": { + "type": "string", + "example": "environment_1111-1111-1111" + }, + "label": { + "type": "string", + "example": "Environment 1111-1111-1111" + }, + "description": { + "type": "string", + "example": "Description of1111-1111-1111" + }, + "status": { + "type": "string", + "example": "normal" + }, + "flags": { + "type": "object", + "example": { + "production": false + } + }, + "properties": { + "type": "object", + "example": { + "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": { + "type": "string", + "example": "tag/v3.1" + }, + "code_switch_status": { + "type": "string", + "enum": [ + "IDLE", + "IN_PROGRESS" + ], + "example": "IDLE", + "description": "The status of the Switch Code action" + }, + "ssh_url": { + "type": "string", + "format": "string", + "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" + }, "_embedded": { "type": "object", "properties": { - "subscription": { + "codebase": { "type": "object", "properties": { + "id": { + "type": "string", + "example": "1111-1111-1111" + }, "_links": { "type": "object", "properties": { @@ -38386,75 +44190,16 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/1111-1111-1111" } } } } - }, - "id": { - "type": "string", - "format": "uuid", - "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" } } } } - }, - "id": { - "type": "string", - "format": "uuid", - "example": "0975a7a1-746f-4096-9c22-383f001797b5" - }, - "label": { - "type": "string", - "example": "test" - }, - "region": { - "type": "string", - "example": "us-east-1" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "example": "ssh://us-east-1.dev.vcs.acquia.io/0975a7a1-746f-4096-9c22-383f001797b5" - }, - "repository_id": { - "type": "string", - "format": "uuid", - "example": "a5ef0a9d-44ce-4f06-8d4f-15f24f941a74" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2024-12-20T06:39:50+00:00" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2024-12-20T06:39:50+00:00" - }, - "description": { - "type": "string", - "example": "" - }, - "flags": { - "type": "object", - "properties": { - "active": { - "type": "boolean", - "example": true - } - } - }, - "hash": { - "type": "string", - "example": "ryh4smn" - }, - "applications_total": { - "type": "integer", - "example": 0 } } } @@ -38469,8 +44214,8 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1" } } }, @@ -38479,8 +44224,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?limit}" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?offset=1{&limit}" }, "templated": { "type": "boolean", @@ -38493,8 +44238,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?offset}" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25{&offset}" }, "templated": { "type": "boolean", @@ -38507,8 +44252,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?filter}" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1{&filter}" }, "templated": { "type": "boolean", @@ -38521,8 +44266,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?sort}" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1{&sort}" }, "templated": { "type": "boolean", @@ -38530,13 +44275,13 @@ } } }, - "next": { + "prev": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases?offset=25" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1" } } } @@ -38547,6 +44292,30 @@ } } }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, "403": { "description": "Access Denied", "content": { @@ -38572,7 +44341,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -38584,7 +44353,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -38596,19 +44365,76 @@ } } }, - "summary": "Retrieves a list of codebases accessible by the user.", - "description": "Retrieves a list of codebases accessible by the user.", - "x-cli-name": "codebases:get-all", - "parameters": [], + "summary": "Retrieves all environments by codebase.", + "description": "Retrieves all environments by codebase.", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The number of items per page.", + "required": false, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "integer" + }, + "style": "form", + "explode": false, + "allowReserved": false + }, + { + "name": "offset", + "in": "query", + "description": "The index of the first item in the page.", + "required": false, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "integer" + }, + "style": "form", + "explode": false, + "allowReserved": false + }, + { + "name": "filter", + "in": "query", + "description": "The filters query string parameter restricts the data returned from your request. Filtered queries restrict the rows that do get included in the result by testing each row in the result against the filters. Not all fields are filterable. Current we only support filter by **name**", + "required": false, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string", + "example": "name=dev" + }, + "style": "form", + "explode": false, + "allowReserved": false + }, + { + "name": "codebaseId", + "in": "path", + "description": "Codebase entity unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + } + ], "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/codebases/{codebaseId}": { + "/codebases/{codebaseId}/environments/{environmentId}": { "servers": [ { "url": "/", @@ -38616,13 +44442,13 @@ } ], "get": { - "operationId": "get_codebase_by_id", - "tags": [ - "Codebases" - ], + "operationId": "environment_by_codebase_id", + "x-cli-name": "codebases:environments-find", + "x-prerelease": true, + "tags": [], "responses": { "200": { - "description": "Codebase details", + "description": "Environment details", "content": { "application/hal+json": { "schema": { @@ -38631,63 +44457,23 @@ "_links": { "type": "object", "properties": { - "applications": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8/applications" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/11111111-041c-44c7-a486-7972ed2cafc8" + "format": "string", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" } } }, - "subscription": { + "codebase": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "subscription": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } - } - } - }, - "id": { - "type": "string", - "format": "uuid", - "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" } } } @@ -38696,56 +44482,115 @@ "id": { "type": "string", "format": "uuid", - "example": "11111111-041c-44c7-a486-7972ed2cafc8" + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" }, - "label": { + "name": { "type": "string", - "example": "Test codebase with attached applications" + "example": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" }, - "region": { + "label": { "type": "string", - "example": "us-east-1" + "example": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" }, - "vcs_url": { + "description": { "type": "string", - "format": "uri", - "example": "ssh://us-east-1.dev.vcs.acquia.io/11111111-041c-44c7-a486-7972ed2cafc8" + "example": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc" }, - "repository_id": { + "status": { "type": "string", - "format": "uuid", - "example": "f03e15f9-0d97-498d-ba7d-99bd87b1417f" + "example": "normal" }, - "created_at": { + "flags": { + "type": "object", + "example": { + "production": false + } + }, + "properties": { + "type": "object", + "example": { + "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": { "type": "string", - "format": "date-time", - "example": "2024-12-11T04:25:47+00:00" + "example": "tag/v3.1" }, - "updated_at": { + "code_switch_status": { "type": "string", - "format": "date-time", - "example": "2024-12-11T04:25:47+00:00" + "enum": [ + "IDLE", + "IN_PROGRESS" + ], + "example": "IDLE", + "description": "The status of the Switch Code action" }, - "description": { + "ssh_url": { "type": "string", - "example": "" + "format": "string", + "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" }, - "flags": { + "_embedded": { "type": "object", "properties": { - "active": { - "type": "boolean", - "example": true + "codebase": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + } } } + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" }, - "hash": { + "message": { "type": "string", - "example": "pte116m" + "example": "Full authentication is required to access this resource." }, - "applications_total": { + "code": { "type": "integer", - "example": 2 + "example": 401 } } } @@ -38777,7 +44622,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -38789,7 +44634,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -38801,14 +44646,27 @@ } } }, - "summary": "Retrieves a codebase details by its ID.", - "description": "Return details about a specific codebase.", - "x-cli-name": "codebases:get", + "summary": "Retrieves the details for an environment based on codebase and environment uuid.", + "description": "Retrieves the details for an environment based on codebase and environment uuid.", "parameters": [ { "name": "codebaseId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Codebase entity unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -38823,27 +44681,31 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] - }, - "put": { - "operationId": "api_codebases_codebaseId_put", - "tags": [ - "Codebases" - ], + } + }, + "/v3/environments/{environmentId}": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "environment_by_id", + "x-cli-name": "environments-v3:find", + "x-prerelease": true, + "tags": [], "responses": { - "202": { - "description": "Update a codebase details by its ID.", + "200": { + "description": "Environment details", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Codebase update started." - }, "_links": { "type": "object", "properties": { @@ -38852,8 +44714,107 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + "format": "string", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + }, + "codebase": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "name": { + "type": "string", + "example": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "label": { + "type": "string", + "example": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "description": { + "type": "string", + "example": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "status": { + "type": "string", + "example": "normal" + }, + "flags": { + "type": "object", + "example": { + "production": false + } + }, + "properties": { + "type": "object", + "example": { + "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": { + "type": "string", + "example": "tag/v3.1" + }, + "code_switch_status": { + "type": "string", + "enum": [ + "IDLE", + "IN_PROGRESS" + ], + "example": "IDLE", + "description": "The status of the Switch Code action" + }, + "ssh_url": { + "type": "string", + "format": "string", + "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" + }, + "_embedded": { + "type": "object", + "properties": { + "codebase": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } } } } @@ -38864,8 +44825,8 @@ } } }, - "400": { - "description": "Validation Error in request body.", + "401": { + "description": "Authorization required.", "content": { "application/json": { "schema": { @@ -38873,15 +44834,15 @@ "properties": { "error": { "type": "string", - "example": "validation_failed" + "example": "system" }, "message": { "type": "string", - "example": "Invalid request body." + "example": "Full authentication is required to access this resource." }, "code": { "type": "integer", - "example": 400 + "example": 401 } } } @@ -38913,7 +44874,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -38925,7 +44886,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -38937,14 +44898,13 @@ } } }, - "summary": "Update a codebase details by its ID.", - "description": "Update a codebase details by its ID.", - "x-cli-name": "codebases:update", + "summary": "Retrieves an environment details by its uuid.", + "description": "Retrieves an environment details by its uuid.", "parameters": [ { - "name": "codebaseId", + "name": "environmentId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -38956,43 +44916,21 @@ "allowReserved": false } ], - "requestBody": { - "description": "The updated Codebase resource", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "example": "test-codebase" - }, - "description": { - "type": "string", - "example": "codebase-description" - } - }, - "minProperties": 1 - } - } - }, - "required": false - }, "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] }, - "delete": { - "operationId": "api_codebases_codebaseId_delete", - "tags": [ - "Codebases" - ], + "put": { + "operationId": "update_environment", + "x-cli-name": "environments-v3:update", + "x-prerelease": true, + "tags": [], "responses": { "202": { - "description": "Deletes a codebase.", + "description": "Successful start of environment properties update.", "content": { "application/hal+json": { "schema": { @@ -39000,7 +44938,7 @@ "properties": { "message": { "type": "string", - "example": "Codebase deletion started." + "example": "Environment update started." }, "_links": { "type": "object", @@ -39010,8 +44948,8 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + "format": "string", + "example": "https://cloud.acquia.com/api/environments/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" } } } @@ -39022,6 +44960,54 @@ } } }, + "400": { + "description": "Validation Error in request body.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request body." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, "403": { "description": "Access Denied", "content": { @@ -39047,7 +45033,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -39059,7 +45045,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -39069,16 +45055,18 @@ } } } + }, + "422": { + "description": "Unprocessable entity" } }, - "summary": "Delete a codebase by its ID.", - "description": "Delete a codebase by its ID.", - "x-cli-name": "codebases:delete", + "summary": "Modifies properties settings for an environment.", + "description": "Modifies properties settings for an environment. Note that some settings cannot be configured for certain subscriptions.", "parameters": [ { - "name": "codebaseId", + "name": "environmentId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -39088,29 +45076,55 @@ "style": "simple", "explode": false, "allowReserved": false - }, - { - "name": "force", - "in": "query", - "description": "Force-delete the codebase, bypassing application checks. Requires ROLE_ENGINEERING.", - "required": false, - "deprecated": false, - "schema": { - "type": "boolean" - }, - "style": "form", - "explode": false } ], + "requestBody": { + "description": "The updated Environment resource", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "example": "test-environment" + }, + "description": { + "type": "string", + "example": "environment-description" + }, + "properties": { + "type": "object", + "example": { + "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" + }, + "minProperties": 1 + } + }, + "minProperties": 1 + } + } + }, + "required": true + }, "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/subscriptions/{subscriptionId}/codebases": { + "/sites/{siteId}/environments": { "servers": [ { "url": "/", @@ -39118,13 +45132,13 @@ } ], "get": { - "operationId": "subscription_codebases", - "tags": [ - "Codebases" - ], + "operationId": "environments_by_site", + "x-cli-name": "sites:environments-list", + "x-prerelease": true, + "tags": [], "responses": { "200": { - "description": "List of codebases.", + "description": "List of environments.", "content": { "application/hal+json": { "schema": { @@ -39151,7 +45165,7 @@ }, "offset": { "type": "integer", - "example": 0 + "example": 1 } } }, @@ -39166,13 +45180,13 @@ "_links": { "type": "object", "properties": { - "applications": { + "site_instance": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/0975a7a1-746f-4096-9c22-383f001797b5/applications" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/site-id.env-id" } } }, @@ -39181,48 +45195,18 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases" + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments" } } }, - "subscription": { + "codebase": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "subscription": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/f47ac10b-58cc-4372-a567-0e02b2c3d479" - } - } - } - } - }, - "id": { - "type": "string", - "format": "uuid", - "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc" } } } @@ -39230,57 +45214,91 @@ }, "id": { "type": "string", - "format": "uuid", - "example": "0975a7a1-746f-4096-9c22-383f001797b5" + "example": "1111-1111-1111" }, - "label": { + "name": { "type": "string", - "example": "test" + "example": "environment_1111-1111-1111" }, - "region": { + "label": { "type": "string", - "example": "us-east-1" + "example": "Environment 1111-1111-1111" }, - "vcs_url": { + "description": { "type": "string", - "format": "uri", - "example": "ssh://us-east-1.dev.vcs.acquia.io/0975a7a1-746f-4096-9c22-383f001797b5" + "example": "Description of 1111-1111-1111" }, - "repository_id": { + "status": { "type": "string", - "format": "uuid", - "example": "a5ef0a9d-44ce-4f06-8d4f-15f24f941a74" + "example": "normal" }, - "created_at": { + "flags": { + "type": "object", + "example": { + "production": false + } + }, + "properties": { + "type": "object", + "example": { + "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": { "type": "string", - "format": "date-time", - "example": "2024-12-20T06:39:50+00:00" + "example": "tag/v3.1" }, - "updated_at": { + "code_switch_status": { "type": "string", - "format": "date-time", - "example": "2024-12-20T06:39:50+00:00" + "enum": [ + "IDLE", + "IN_PROGRESS" + ], + "example": "IDLE", + "description": "The status of the Switch Code action" }, - "description": { + "ssh_url": { "type": "string", - "example": "" + "format": "string", + "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" }, - "flags": { + "_embedded": { "type": "object", "properties": { - "active": { - "type": "boolean", - "example": true + "codebase": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "1111-1111-1111" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/codebases/1111-1111-1111" + } + } + } + } + } + } } } - }, - "hash": { - "type": "string", - "example": "ryh4smn" - }, - "applications_total": { - "type": "integer", - "example": 0 } } } @@ -39295,8 +45313,8 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases" + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1" } } }, @@ -39305,8 +45323,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?limit}" + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments?offset=1{&limit}" }, "templated": { "type": "boolean", @@ -39319,8 +45337,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?offset}" + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25{&offset}" }, "templated": { "type": "boolean", @@ -39333,8 +45351,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?filter}" + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1{&filter}" }, "templated": { "type": "boolean", @@ -39347,8 +45365,8 @@ "properties": { "href": { "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases{?sort}" + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1{&sort}" }, "templated": { "type": "boolean", @@ -39356,13 +45374,272 @@ } } }, - "next": { + "prev": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "string", + "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1" + } + } + } + } + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } + }, + "404": { + "description": "Environment not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Retrieves all environments by site.", + "description": "Retrieves all environments by site.", + "parameters": [ + { + "name": "siteId", + "in": "path", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "offset", + "in": "query", + "description": "The collection page number", + "required": false, + "deprecated": false, + "allowEmptyValue": true, + "schema": { + "type": "integer", + "default": 1 + }, + "style": "form", + "explode": false, + "allowReserved": false + }, + { + "name": "limit", + "in": "query", + "description": "The number of items per page", + "required": false, + "deprecated": false, + "allowEmptyValue": true, + "schema": { + "type": "integer", + "default": 25, + "minimum": 0 + }, + "style": "form", + "explode": false, + "allowReserved": false + } + ], + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/environments/{environmentId}/site-instances": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "getSiteInstancesByEnvironmentId", + "x-cli-name": "environments:list-site-instances", + "x-prerelease": true, + "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "A collection of site instances.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { "type": "object", "properties": { "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases?offset=25" + "type": "string" + } + } + } + } + }, + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "site_id": { + "type": "string", + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "environment_id": { + "type": "string", + "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "status": { + "type": "string", + "enum": [ + "active", + "creating", + "create-failed", + "updating", + "update-failed", + "deleting", + "deleted", + "delete-failed" + ] + }, + "health_status": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "details": { + "type": "string" + } + } + }, + "domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "deployment_order": { + "type": "integer", + "nullable": true + }, + "delete_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "date_marked_for_deletion": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "protection_mode": { + "type": "object", + "nullable": true, + "properties": { + "is_enabled": { + "type": "boolean" + }, + "is_inherited": { + "type": "boolean" + } + } + } } } } @@ -39373,8 +45650,32 @@ } } }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -39386,7 +45687,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -39398,7 +45699,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -39410,7 +45711,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -39420,43 +45721,92 @@ } } } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Retrieves a list of codebases by subscription ID.", - "description": "Retrieves a list of codebases by subscription ID.", - "x-cli-name": "codebases:get-by-subscription", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "The entity's universally unique identifier.", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], + "summary": "Retrieves a collection of site instances for the specified environment.", + "description": "Retrieves a collection of site instances for the specified environment.", "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] }, "post": { - "operationId": "api_subscriptions_subscriptionIdcodebases_post", + "operationId": "createSiteInstanceByEnvironmentId", + "x-cli-name": "environments:create-site-instance", "x-prerelease": true, - "tags": [ - "Codebases" + "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } ], + "requestBody": { + "description": "The new SiteInstance resource", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "site_id": { + "type": "string", + "description": "The unique identifier of the site to associate." + }, + "source_environment_id": { + "type": "string", + "description": "Source environment ID to copy from." + }, + "source_site_id": { + "type": "string", + "description": "Source site ID to copy from." + }, + "hook_arguments": { + "type": "string", + "description": "Additional arguments passed to hooks." + } + }, + "required": [ + "site_id" + ] + } + } + } + }, "responses": { - "201": { - "description": "Create a new codebase for a subscription.", + "202": { + "description": "Site instance creation started.", "content": { "application/hal+json": { "schema": { @@ -39465,23 +45815,12 @@ "_links": { "type": "object", "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/123/codebases" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" } } } @@ -39489,7 +45828,7 @@ }, "message": { "type": "string", - "example": "Codebase with label:test-codebase creation started." + "example": "Site instance creation started." } } } @@ -39497,7 +45836,7 @@ } }, "400": { - "description": "Incomplete or incorrect request body.", + "description": "Validation Error in request body.", "content": { "application/json": { "schema": { @@ -39508,21 +45847,20 @@ "example": "validation_failed" }, "message": { - "type": "object", - "properties": { - "label": { - "type": "string", - "example": "This value should not be null." - } - } + "type": "string", + "example": "Invalid request body." + }, + "code": { + "type": "integer", + "example": 400 } } } } } }, - "403": { - "description": "Access Denied", + "401": { + "description": "Authorization required.", "content": { "application/json": { "schema": { @@ -39530,23 +45868,23 @@ "properties": { "error": { "type": "string", - "example": "forbidden" + "example": "system" }, "message": { "type": "string", - "example": "Access Denied." + "example": "Full authentication is required to access this resource." }, "code": { "type": "integer", - "example": 403 + "example": 401 } } } } } }, - "404": { - "description": "Subscription not found.", + "403": { + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -39554,135 +45892,47 @@ "properties": { "error": { "type": "string", - "example": "not_found" + "example": "forbidden" }, "message": { "type": "string", - "example": "Subscription with id:invalid-sub-9999 could not be found." + "example": "The site instance already exists." }, "code": { "type": "integer", - "example": 404 + "example": 403 } } } } } - } - }, - "summary": "Create a new codebase for a subscription.", - "description": "Create a new codebase for a subscription.", - "x-cli-name": "codebases:create", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "The entity's unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], - "requestBody": { - "description": "The new Codebase resource", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "codebase_id": { - "type": "string", - "format": "uuid", - "example": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - }, - "label": { - "type": "string", - "example": "test-codebase" - }, - "region": { - "type": "string", - "example": "us-east-1" - } - }, - "required": [ - "codebase_id", - "label", - "region" - ] - } - } }, - "required": false - }, - "deprecated": false, - "security": [ - { - "Codebase_Service_JWT": [] - } - ] - }, - "options": { - "operationId": "api_subscriptions_subscriptionIdcodebases_options", - "tags": [ - "Codebases" - ], - "responses": { - "200": { - "description": "Gets supported regions for a new codebase.", + "404": { + "description": "Not found.", "content": { - "application/hal+json": { + "application/json": { "schema": { "type": "object", "properties": { - "_links": { - "type": "object", - "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/123" - } - } - }, - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/subscriptions/123/codebases" - } - } - } - } + "error": { + "type": "string", + "example": "not_found" }, - "regions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "us-east-1", - "eu-west-1", - "us-west-2" - ] - } + "message": { + "type": "string", + "example": "Not Found." + }, + "code": { + "type": "integer", + "example": 404 } } } } } }, - "403": { - "description": "Access Denied", + "409": { + "description": "Conflict.", "content": { "application/json": { "schema": { @@ -39690,23 +45940,23 @@ "properties": { "error": { "type": "string", - "example": "forbidden" + "example": "conflict" }, "message": { "type": "string", - "example": "Access Denied." + "example": "Conflict." }, "code": { "type": "integer", - "example": 403 + "example": 409 } } } } } }, - "404": { - "description": "Codebase not found.", + "500": { + "description": "Internal Server Error.", "content": { "application/json": { "schema": { @@ -39714,15 +45964,15 @@ "properties": { "error": { "type": "string", - "example": "not_found" + "example": "server_error" }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "An internal server error occurred." }, "code": { "type": "integer", - "example": 404 + "example": 500 } } } @@ -39730,34 +45980,17 @@ } } }, - "summary": "Gets supported regions for a new codebase.", - "description": "Gets supported regions for a new codebase.", - "x-cli-name": "codebases:get-regions", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "The entity's universally unique identifier.", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], + "summary": "Associates a site with the specified environment.", + "description": "Associates a site with the specified environment.", "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/codebases/{codebaseId}/applications": { + "/site-instances/{siteId}.{environmentId}": { "servers": [ { "url": "/", @@ -39765,146 +45998,96 @@ } ], "get": { - "operationId": "codebase_applications", + "operationId": "site_instance", + "x-cli-name": "site-instances:find", "x-prerelease": true, - "tags": [ - "Codebases" - ], + "tags": [], "responses": { "200": { - "description": "Retrieves a list of applications by codebase ID.", + "description": "Site Instance details", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "count": { - "type": "integer", - "example": 1 - }, - "total": { - "type": "integer", - "example": 1 - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "example": 1 - }, - "limit": { - "type": "integer", - "example": 25 - }, - "offset": { - "type": "integer", - "example": 0 - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/applications/App1" - } - } - } - } - }, - "id": { - "type": "string", - "example": "App1" - }, - "machine_name": { - "type": "string", - "example": "APP_NAME" - } - } - } - } - } - }, "_links": { "type": "object", "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications" - } - } - }, - "limit": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications{?limit}" - }, - "templated": { - "type": "boolean", - "example": true + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" } } + } + } + }, + "site_id": { + "type": "string", + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "environment_id": { + "type": "string", + "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "status": { + "type": "string", + "example": "active" + }, + "health_status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "OK" }, - "offset": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications{?offset}" - }, - "templated": { - "type": "boolean", - "example": true - } - } + "summary": { + "type": "string", + "example": "The health status is OK." }, - "filter": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/11111111-9cda-4ca3-af13-7a1c2fc66778/applications{?filter}" - }, - "templated": { - "type": "boolean", - "example": true - } - } + "details": { + "type": "string", + "example": "The site instance is active" } } + }, + "domains": { + "type": "array", + "items": { + "type": "string", + "example": "example.com" + }, + "example": [ + "example.com", + "example-2.com" + ] + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 } } } @@ -39936,7 +46119,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Site Instance not found.", "content": { "application/json": { "schema": { @@ -39948,7 +46131,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -39960,14 +46143,27 @@ } } }, - "summary": "Retrieves a list of applications by codebase ID.", - "description": "Retrieves the collection of application resources from codebase ID. If the user has admin-level access, no filter is applied. Otherwise, the resources are filtered based on the requesting user's permissions.", - "x-cli-name": "codebases:applications:list", + "summary": "Retrieves details about an environment association with a site (a site instance).", + "description": "Retrieves details about an environment association with a site (a site instance).", "parameters": [ { - "name": "codebaseId", + "name": "siteId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -39982,110 +46178,25 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] - } - }, - "/codebases/{codebaseId}/references": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "get_references_by_codebase", - "tags": [ - "Codebases" - ], + }, + "delete": { + "operationId": "api_site-instances_siteId._environmentId_delete", + "x-prerelease": true, + "tags": [], "responses": { - "200": { - "description": "Retrieves a list of git references by codebase.", + "202": { + "description": "Site Instance deleted", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "count": { - "type": "integer", - "example": 1 - }, - "total": { - "type": "integer", - "example": 1 - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "example": 1 - }, - "limit": { - "type": "integer", - "example": 25 - }, - "offset": { - "type": "integer", - "example": 0 - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687" - } - } - }, - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references" - } - } - } - } - }, - "id": { - "type": "string", - "example": "1234567" - }, - "name": { - "type": "string", - "example": "main" - }, - "type": { - "type": "string", - "example": "BRANCH" - }, - "codebase_id": { - "type": "string", - "format": "uuid", - "example": "47de85b1-14bb-4074-8c1d-f0a2d63db687" - } - } - } - } - } + "message": { + "type": "string", + "example": "Site instance deletion started." }, "_links": { "type": "object", @@ -40095,64 +46206,8 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references" - } - } - }, - "limit": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?limit}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "offset": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?offset}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "filter": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?filter}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "sort": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references{?sort}" - }, - "templated": { - "type": "boolean", - "example": true + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" } } } @@ -40163,6 +46218,30 @@ } } }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, "403": { "description": "Access Denied", "content": { @@ -40188,7 +46267,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Site Instance not found.", "content": { "application/json": { "schema": { @@ -40200,7 +46279,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -40212,14 +46291,27 @@ } } }, - "summary": "Retrieves a list of git references by codebase.", - "description": "Retrieves a list of git references by codebase.", - "x-cli-name": "codebases:references:list", + "summary": "Dissociate a site and environment with no grace period.", + "description": "Dissociate a site and environment with no grace period.", "parameters": [ { - "name": "codebaseId", + "name": "siteId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Site unique identifier", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false, + "allowReserved": false + }, + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -40234,72 +46326,76 @@ "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/codebases/{codebaseId}/references/{referenceName}": { + "/site-instances/{siteId}.{environmentId}/actions/cancel": { "servers": [ { "url": "/", "description": "" } ], - "get": { - "operationId": "get_single_reference", - "tags": [ - "Codebases" - ], + "post": { + "operationId": "api_site-instances_siteId._environmentIdactionscancel_post", + "x-cli-name": "site-instances:dissociate", + "x-prerelease": true, + "tags": [], "responses": { - "200": { - "description": "Retrieves a single git reference data for the given codebase.", + "202": { + "description": "Site Instance deleted", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { + "message": { + "type": "string", + "example": "Site instance deletion started." + }, "_links": { "type": "object", "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/codebases/47de85b1-14bb-4074-8c1d-f0a2d63db687/references/main" + "format": "string", + "example": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" } } } } - }, - "id": { - "type": "string", - "example": "RefId99" - }, - "name": { + } + } + } + } + } + }, + "400": { + "description": "Invalid input" + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { "type": "string", - "example": "main" + "example": "system" }, - "type": { + "message": { "type": "string", - "example": "BRANCH" + "example": "Full authentication is required to access this resource." }, - "codebase_id": { - "type": "string", - "format": "uuid", - "example": "47de85b1-14bb-4074-8c1d-f0a2d63db687" + "code": { + "type": "integer", + "example": 401 } } } @@ -40331,7 +46427,7 @@ } }, "404": { - "description": "Codebase not found.", + "description": "Site Instance not found.", "content": { "application/json": { "schema": { @@ -40343,7 +46439,7 @@ }, "message": { "type": "string", - "example": "The codebase you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -40353,16 +46449,18 @@ } } } + }, + "422": { + "description": "Unprocessable entity" } }, - "summary": "Retrieves a single git reference data for the given codebase.", - "description": "Retrieves a single git reference data for the given codebase.", - "x-cli-name": "codebases:references:get", + "summary": "Dissociate a site and environment.", + "description": "Dissociate a site and environment.", "parameters": [ { - "name": "codebaseId", + "name": "siteId", "in": "path", - "description": "The codebase entity's unique identifier.", + "description": "Site unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -40374,9 +46472,9 @@ "allowReserved": false }, { - "name": "referenceName", + "name": "environmentId", "in": "path", - "description": "The reference name.", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -40388,34 +46486,59 @@ "allowReserved": false } ], + "requestBody": { + "description": "The new SiteInstance resource", + "content": { + "application/hal+json": { + "schema": { + "$ref": "#/components/schemas/MEO_Environment_Service_SiteInstance.jsonhal" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/MEO_Environment_Service_SiteInstance" + } + }, + "text/html": { + "schema": { + "$ref": "#/components/schemas/MEO_Environment_Service_SiteInstance" + } + } + }, + "required": true + }, "deprecated": false, "security": [ { - "Codebase_Service_JWT": [] + "MEO_Environment_Service_JWT": [] } ] } }, - "/site-instances/{siteId}.{environmentId}/database": { + "/site-instances/{siteId}.{environmentId}/files": { "servers": [ { "url": "/", "description": "" } ], - "get": { - "operationId": "site_instance_database", - "x-cli-name": "site-instances:database", + "post": { + "operationId": "api_site-instances_siteId._environmentIdfiles_post", + "x-cli-name": "site-instances:files:copy", "x-prerelease": true, "tags": [], "responses": { - "200": { - "description": "Database details", + "202": { + "description": "Copy files from one environment to another", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { + "message": { + "type": "string", + "example": "Files copy for site id 3fa85f64-5717-4562-b3fc-2c9699999999 from 3fa85f64-5717-4562-b3fc-2c963f66afa6 to 4fa85f64-5717-4562-b3fc-2c963f66afa3 started." + }, "_links": { "type": "object", "properties": { @@ -40425,31 +46548,35 @@ "href": { "type": "string", "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" + "example": "https://cloud.acquia.com/api/site/3fa85f64-5717-4562-b3fc-2c9699999999/files" } } } } - }, - "database_host": { - "type": "string", - "example": "localhost" - }, - "database_name": { - "type": "string", - "example": "example" - }, - "database_role": { + } + } + } + } + } + }, + "400": { + "description": "Validation Error in request body.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { "type": "string", - "example": "example" + "example": "validation_failed" }, - "database_password": { + "message": { "type": "string", - "example": "example@123" + "example": "Invalid request body." }, - "database_user_name": { - "type": "string", - "example": "example" + "code": { + "type": "integer", + "example": 400 } } } @@ -40505,7 +46632,7 @@ } }, "404": { - "description": "Database not found.", + "description": "not found.", "content": { "application/json": { "schema": { @@ -40517,7 +46644,7 @@ }, "message": { "type": "string", - "example": "not found" + "example": "Not Found." }, "code": { "type": "integer", @@ -40527,15 +46654,18 @@ } } } + }, + "422": { + "description": "Unprocessable entity" } }, - "summary": "Retrieve database info based on the site instance.", - "description": "Retrieve database info based on the site instance.", + "summary": "Copy files from one environment to another.", + "description": "Copy files from one environment to another.", "parameters": [ { - "name": "siteId", + "name": "environmentId", "in": "path", - "description": "Site unique identifier", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -40547,9 +46677,9 @@ "allowReserved": false }, { - "name": "environmentId", + "name": "siteId", "in": "path", - "description": "Environment unique identifier", + "description": "Site unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -40561,30 +46691,51 @@ "allowReserved": false } ], + "requestBody": { + "description": "The new SiteInstance resource", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_environment_id": { + "type": "string", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6" + } + } + } + } + }, + "required": true + }, "deprecated": false, "security": [ { "MEO_Environment_Service_JWT": [] } ] - }, + } + }, + "/v3/environments/{environmentId}/actions/clear-caches": { + "servers": [ + { + "url": "/", + "description": "" + } + ], "post": { - "operationId": "api_site-instances_siteId._environmentIddatabase_post", - "x-cli-name": "site-instances:database:copy", + "operationId": "postV3EnvironmentsClearCaches", + "x-cli-name": "environments-v3:clear-caches", "x-prerelease": true, "tags": [], "responses": { "202": { - "description": "Copied database from one environment to another.", + "description": "Domains cache flush started.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Database copy for site id 3e8ecbec-ea7c-4260-8414-ef2938c859bc from e8a2c3c1-baf3-4d9a-9b56-87d8f61ab9f7 to d9a0fe17-cb18-4c21-b8ea-9e3a0b7b4c18 started." - }, "_links": { "type": "object", "properties": { @@ -40593,42 +46744,25 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site/3e8ecbec-ea7c-4260-8414-ef2938c859bc/databases" - } - } - } - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error in request body.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string", - "example": "validation_failed" + "format": "uri", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/actions/clear-caches" + } + } + } + } }, "message": { "type": "string", - "example": "Invalid request body." - }, - "code": { - "type": "integer", - "example": 400 + "example": "Varnish domain cache clear started." } } } } } }, + "400": { + "description": "Invalid input" + }, "401": { "description": "Authorization required.", "content": { @@ -40678,7 +46812,7 @@ } }, "404": { - "description": "not found.", + "description": "Domain not found.", "content": { "application/json": { "schema": { @@ -40690,7 +46824,7 @@ }, "message": { "type": "string", - "example": "Not Found." + "example": "The domain provided does not exist." }, "code": { "type": "integer", @@ -40700,13 +46834,10 @@ } } } - }, - "422": { - "description": "Unprocessable entity" } }, - "summary": "Copy a database from one environment to another.", - "description": "Copy a database from one environment to another.", + "summary": "Clear caches for an environment with a list of domains.", + "description": "Clear caches for an environment with a list of domains.", "parameters": [ { "name": "environmentId", @@ -40721,34 +46852,32 @@ "style": "simple", "explode": false, "allowReserved": false - }, - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false } ], "requestBody": { - "description": "Database copy request with source and destination environment ids.", + "description": "List of domains.", "content": { "application/json": { "schema": { "type": "object", "properties": { - "source_environment_id": { - "type": "string", - "example": "e8a2c3c1-baf3-4d9a-9b56-87d8f61ab9f7" + "domains": { + "type": "array", + "items": { + "type": "string", + "example": "example.com" + } } - } + }, + "required": [ + "domains" + ] + }, + "example": { + "domains": [ + "example.com", + "another-domain.com" + ] } } }, @@ -40762,7 +46891,7 @@ ] } }, - "/site-instances/{siteId}.{environmentId}/database/backups": { + "/site-instances/{siteId}.{environmentId}/database/connection": { "servers": [ { "url": "/", @@ -40770,76 +46899,18 @@ } ], "get": { - "operationId": "get_database_backups", - "x-cli-name": "site-instances:database:backups", + "operationId": "findDatabaseConnectionBySiteIdAndEnvironmentId", + "x-cli-name": "site-instances:find-database-connection", "x-prerelease": true, "tags": [], "responses": { "200": { - "description": "List Database backups of site instance.", + "description": "Database connection credentials.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "count": { - "type": "integer", - "example": 1 - }, - "total": { - "type": "integer", - "example": 1 - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "example": 1 - }, - "limit": { - "type": "integer", - "example": 25 - }, - "offset": { - "type": "integer", - "example": 1 - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "database_id": { - "type": "string", - "example": "b0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "created_at": { - "type": "string", - "example": "2025-04-01T13:01:06.603Z" - }, - "type": { - "type": "string", - "example": "DAILY" - }, - "_links": { - "type": "string", - "example": "www.example.com" - } - } - } - } - } - }, "_links": { "type": "object", "properties": { @@ -40848,78 +46919,32 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1" - } - } - }, - "limit": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?offset=1{&limit}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "offset": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25{&offset}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "filter": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1{&filter}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "sort": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1{&sort}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "prev": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups?limit=25&offset=1" + "format": "uri", + "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection" } } } } + }, + "db_host": { + "type": "string", + "example": "db-1234.prod.hosting.acquia.com" + }, + "name": { + "type": "string", + "example": "site_dev" + }, + "password": { + "type": "string", + "example": "secret" + }, + "user_name": { + "type": "string", + "example": "site_dev_user" + }, + "ssh_host": { + "type": "string", + "example": "ssh.prod.hosting.acquia.com" } } } @@ -40975,7 +47000,7 @@ } }, "404": { - "description": "Database Backup not found.", + "description": "Database not found.", "content": { "application/json": { "schema": { @@ -40987,7 +47012,7 @@ }, "message": { "type": "string", - "example": "Not Found." + "example": "not found" }, "code": { "type": "integer", @@ -40999,8 +47024,8 @@ } } }, - "summary": "Retrieves collection of database backups associated with site(a site-instance).", - "description": "Retrieves collection of database backups associated with site(a site-instance).", + "summary": "Retrieve database connection credentials for a site instance.", + "description": "Retrieve database connection credentials for a site instance.", "parameters": [ { "name": "siteId", @@ -41029,37 +47054,6 @@ "style": "simple", "explode": false, "allowReserved": false - }, - { - "name": "offset", - "in": "query", - "description": "The collection page number", - "required": false, - "deprecated": false, - "allowEmptyValue": true, - "schema": { - "type": "integer", - "default": 1 - }, - "style": "form", - "explode": false, - "allowReserved": false - }, - { - "name": "limit", - "in": "query", - "description": "The number of items per page", - "required": false, - "deprecated": false, - "allowEmptyValue": true, - "schema": { - "type": "integer", - "default": 25, - "minimum": 0 - }, - "style": "form", - "explode": false, - "allowReserved": false } ], "deprecated": false, @@ -41068,24 +47062,28 @@ "MEO_Environment_Service_JWT": [] } ] - }, - "post": { - "operationId": "api_site-instances_siteId._environmentIddatabasebackups_post", - "x-cli-name": "site-instances:database:backups:create", + } + }, + "/environments/{environmentId}/private-network": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "findPrivateNetworkByEnvironmentId", + "x-cli-name": "environments:find-private-network", "x-prerelease": true, "tags": [], "responses": { - "201": { - "description": "Created backup for the site instance Db.", + "200": { + "description": "The private network associated with the environment.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Database backup started." - }, "_links": { "type": "object", "properties": { @@ -41094,36 +47092,21 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/d9a0fe17-cb18-4c21-b8ea-9e3a0b7b4c18.e8a2c3c1-baf3-4d9a-9b56-87d8f61ab9f7/database/backups" + "format": "uri", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" } } } } - } - } - } - } - } - }, - "400": { - "description": "Validation Error in request body.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string", - "example": "validation_failed" }, - "message": { + "id": { "type": "string", - "example": "Invalid request body." + "example": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, - "code": { - "type": "integer", - "example": 400 + "label": { + "type": "string", + "nullable": true, + "example": "My Private Network" } } } @@ -41179,7 +47162,7 @@ } }, "404": { - "description": "Database not found.", + "description": "Private network not found.", "content": { "application/json": { "schema": { @@ -41201,28 +47184,11 @@ } } } - }, - "422": { - "description": "Unprocessable entity" } }, - "summary": "Create a new backup for the site instance Db.", - "description": "Create a new backup for the site instance Db.", + "summary": "Retrieve the private network associated with an environment.", + "description": "Retrieve the private network associated with an environment.", "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, { "name": "environmentId", "in": "path", @@ -41244,23 +47210,15 @@ "MEO_Environment_Service_JWT": [] } ] - } - }, - "/site-instances/{siteId}.{environmentId}/database/backups/{id}": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "get_database_backup", - "x-cli-name": "site-instances:database:backups:get", + }, + "put": { + "operationId": "saveEnvironmentPrivateNetworkByEnvironmentId", + "x-cli-name": "environments:associate-private-network", "x-prerelease": true, "tags": [], "responses": { - "200": { - "description": "Database Backup details", + "202": { + "description": "Private network association started.", "content": { "application/hal+json": { "schema": { @@ -41274,74 +47232,25 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - } - } - }, - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups" - } - } - }, - "site-instance": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - }, - "site": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - }, - "environment": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + "format": "uri", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" } } } } }, - "id": { - "type": "string", - "example": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "database_id": { - "type": "string", - "example": "b0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "created_at": { - "type": "string", - "example": "2025-04-01T13:01:06.603Z" - }, - "type": { + "message": { "type": "string", - "example": "DAILY" + "example": "Associating private network started." } } } } } }, + "400": { + "description": "Invalid input" + }, "401": { "description": "Authorization required.", "content": { @@ -41391,7 +47300,7 @@ } }, "404": { - "description": "Database Backup not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -41403,7 +47312,7 @@ }, "message": { "type": "string", - "example": "Not Found." + "example": "not found" }, "code": { "type": "integer", @@ -41415,13 +47324,13 @@ } } }, - "summary": "Retrieves details about a backup by its id associated with site(a site-instance)", - "description": "Retrieves details about a backup by its id associated with site(a site-instance)", + "summary": "Associate an environment with a private network.", + "description": "Associate an environment with a private network.", "parameters": [ { - "name": "id", + "name": "environmentId", "in": "path", - "description": "Database backup unique identifier", + "description": "Environment unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -41431,21 +47340,152 @@ "style": "simple", "explode": false, "allowReserved": false + } + ], + "requestBody": { + "description": "Private network association details.", + "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 + }, + "example": { + "private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } }, + "required": true + }, + "deprecated": false, + "security": [ { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + "MEO_Environment_Service_JWT": [] + } + ] + }, + "delete": { + "operationId": "deleteEnvironmentPrivateNetworkByEnvironmentId", + "x-cli-name": "environments:disassociate-private-network", + "x-prerelease": true, + "tags": [], + "responses": { + "202": { + "description": "Private network disassociation started.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" + } + } + } + } + }, + "message": { + "type": "string", + "example": "Disassociating environment from private network started." + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, + "message": { + "type": "string", + "example": "Access Denied." + }, + "code": { + "type": "integer", + "example": 403 + } + } + } + } + } }, + "404": { + "description": "Environment not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "not found" + }, + "code": { + "type": "integer", + "example": 404 + } + } + } + } + } + } + }, + "summary": "Disassociate an environment from its private network.", + "description": "Disassociate an environment from its private network.", + "parameters": [ { "name": "environmentId", "in": "path", @@ -41467,23 +47507,70 @@ "MEO_Environment_Service_JWT": [] } ] - }, - "delete": { - "operationId": "api_site-instances_siteId._environmentIddatabasebackups_id_delete", - "x-cli-name": "site-instances:database:backups:delete", + } + }, + "/environments/{environmentId}/trusted-proxies": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "findTrustedProxiesByEnvironmentId", + "x-cli-name": "environments:find-trusted-proxies", "x-prerelease": true, "tags": [], "responses": { - "202": { - "description": "Delete a site instance database backup", + "200": { + "description": "Trusted proxy configuration for the environment.", "content": { - "application/json": { + "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Database backup deletion started." + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" + } + } + } + } + }, + "cidrs_ipv4": { + "type": "array", + "items": { + "type": "string", + "example": "203.0.113.0/24" + } + }, + "cidrs_ipv6": { + "type": "array", + "items": { + "type": "string", + "example": "2001:db8::/32" + } + }, + "associated_cdns": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "is_enabled": { + "type": "boolean" + } + } + } } } } @@ -41539,7 +47626,7 @@ } }, "404": { - "description": "Database Backup not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -41551,7 +47638,7 @@ }, "message": { "type": "string", - "example": "Not Found." + "example": "not found" }, "code": { "type": "integer", @@ -41563,23 +47650,9 @@ } } }, - "summary": "Delete a site instance database backup", - "description": "Delete a site instance database backup", + "summary": "Retrieve trusted proxy configuration for an environment.", + "description": "Retrieve trusted proxy configuration for an environment.", "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, { "name": "environmentId", "in": "path", @@ -41593,20 +47666,6 @@ "style": "simple", "explode": false, "allowReserved": false - }, - { - "name": "id", - "in": "path", - "description": "Backup unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false } ], "deprecated": false, @@ -41615,57 +47674,47 @@ "MEO_Environment_Service_JWT": [] } ] - } - }, - "/site-instances/{siteId}.{environmentId}/database/backups/{id}/actions/download": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "api_site-instances_siteId._environmentIddatabasebackups_idactionsdownload_get", - "x-cli-name": "site-instances:database:backups:download", + }, + "put": { + "operationId": "updateTrustedProxiesByEnvironmentId", + "x-cli-name": "environments:update-trusted-proxies", "x-prerelease": true, "tags": [], "responses": { "200": { - "description": "DatabaseBackup resource", - "content": { - "application/hal+json": { - "schema": { - "$ref": "#/components/schemas/MEO_Environment_Service_DatabaseBackup.jsonhal" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/MEO_Environment_Service_DatabaseBackup" - } - }, - "text/html": { - "schema": { - "$ref": "#/components/schemas/MEO_Environment_Service_DatabaseBackup" - } - } - } - }, - "201": { - "description": "Download a site instance Db backup", + "description": "Trusted proxy configuration updated.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" + } + } + } + } + }, "message": { "type": "string", - "example": "Database backup download started." + "example": "Trusted Proxies updated successfully." } } } } } }, + "400": { + "description": "Invalid input" + }, "401": { "description": "Authorization required.", "content": { @@ -41715,7 +47764,7 @@ } }, "404": { - "description": "Database Backup not found.", + "description": "Environment not found.", "content": { "application/json": { "schema": { @@ -41727,7 +47776,7 @@ }, "message": { "type": "string", - "example": "Not Found." + "example": "not found" }, "code": { "type": "integer", @@ -41739,23 +47788,9 @@ } } }, - "summary": "Download a site instance Database backup", - "description": "Download a site instance Database backup.", + "summary": "Update trusted proxy configuration for an environment.", + "description": "Update trusted proxy configuration for an environment.", "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, { "name": "environmentId", "in": "path", @@ -41769,22 +47804,57 @@ "style": "simple", "explode": false, "allowReserved": false - }, - { - "name": "id", - "in": "path", - "description": "Backup unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false } ], + "requestBody": { + "description": "Trusted proxy configuration.", + "content": { + "application/json": { + "schema": { + "type": "object", + "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": "array", + "description": "List of CDN names to associate with this environment.", + "items": { + "type": "string", + "enum": [ + "akamai", + "cloudflare", + "fastly" + ] + } + } + }, + "additionalProperties": false + }, + "example": { + "cidrs_ipv4": [ + "203.0.113.0/24" + ], + "cidrs_ipv6": [], + "associated_cdns": [ + "cloudflare" + ] + } + } + }, + "required": true + }, "deprecated": false, "security": [ { @@ -41793,63 +47863,76 @@ ] } }, - "/site-instances/{siteId}.{environmentId}/database/backups/{id}/actions/restore": { + "/private-networks/{privateNetworkId}/environments": { "servers": [ { "url": "/", "description": "" } ], - "post": { - "operationId": "restore_database_backup", - "x-cli-name": "site-instances:database:backups:restore", + "get": { + "operationId": "getEnvironmentsByPrivateNetworkId", + "x-cli-name": "private-networks:list-environments", "x-prerelease": true, "tags": [], "responses": { - "202": { - "description": "Restore database backup", + "200": { + "description": "A collection of environments associated with the private network.", "content": { - "application/json": { + "application/hal+json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups/1" - } - } - }, "self": { "type": "object", "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3/database/backups/1/actions/restore" + "format": "uri", + "example": "https://cloud.acquia.com/api/private-networks/pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890/environments" } } } } }, - "message": { - "type": "string", - "example": "Database restore started." + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "name": { + "type": "string", + "example": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "label": { + "type": "string", + "example": "Production" + }, + "status": { + "type": "string", + "example": "normal" + } + } + } + } + } } } } } } }, - "400": { - "description": "Invalid input" - }, "401": { "description": "Authorization required.", "content": { @@ -41899,7 +47982,7 @@ } }, "404": { - "description": "Database Backup not found.", + "description": "Private network not found.", "content": { "application/json": { "schema": { @@ -41911,7 +47994,7 @@ }, "message": { "type": "string", - "example": "Not Found." + "example": "not found" }, "code": { "type": "integer", @@ -41921,46 +48004,15 @@ } } } - }, - "422": { - "description": "Unprocessable entity" } }, - "summary": "Restore a backup for the site instance Db", - "description": "Restore a backup for the site instance Db.", + "summary": "Retrieve environments associated with a private network.", + "description": "Retrieve environments associated with a private network.", "parameters": [ { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "id", + "name": "privateNetworkId", "in": "path", - "description": "Backup unique identifier", + "description": "Private network unique identifier", "required": true, "deprecated": false, "allowEmptyValue": false, @@ -41980,7 +48032,7 @@ ] } }, - "/site-instances/{siteId}.{environmentId}/domains": { + "/environments/{environmentId}/deployments": { "servers": [ { "url": "/", @@ -41988,40 +48040,75 @@ } ], "get": { - "operationId": "site_instance_domains", - "x-cli-name": "site-instances:domains", + "operationId": "getDeploymentsByEnvironmentId", + "x-cli-name": "environments:list-deployments", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "description": "Pagination offset", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "limit", + "in": "query", + "description": "Pagination limit", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter expression", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort expression", + "required": false, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "description": "List of site instance domains.", + "description": "A collection of deployments.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "count": { - "type": "integer", - "example": 1 - }, - "total": { - "type": "integer", - "example": 1 - }, - "pagination": { + "_links": { "type": "object", "properties": { - "total": { - "type": "integer", - "example": 1 - }, - "limit": { - "type": "integer", - "example": 25 - }, - "offset": { - "type": "integer", - "example": 1 + "self": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + } } } }, @@ -42033,100 +48120,59 @@ "items": { "type": "object", "properties": { - "domain": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "example.com" - }, - "is_managed": { - "type": "boolean", - "example": true - } - } - } - } - } - } - } - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.3e8ecbec-ea7c-4260-8414-ef2938c859bc/domains?limit=25&offset=1" - } - } - }, - "limit": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=1{&limit}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "offset": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25{&offset}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "filter": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25&offset=1{&filter}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "sort": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25&offset=1{&sort}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "prev": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=25&offset=1" + "id": { + "type": "string", + "example": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "environment_id": { + "type": "string", + "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "status": { + "type": "string", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "example": "release-2025-01-15" + }, + "run_hooks": { + "type": "boolean" + }, + "hooks_argument": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "started_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "completed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sender_id": { + "type": "string", + "nullable": true + }, + "logs": { + "type": "string", + "nullable": true + } } } } @@ -42137,6 +48183,30 @@ } } }, + "400": { + "description": "Validation error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, "401": { "description": "Authorization required.", "content": { @@ -42162,7 +48232,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -42174,7 +48244,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -42186,7 +48256,7 @@ } }, "404": { - "description": "Site instance Domain not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -42198,7 +48268,7 @@ }, "message": { "type": "string", - "example": "The domains for the site instance with id {site_id}.{environment_id} you are trying to access does not exist, or you do not have permission to access it." + "example": "Not Found." }, "code": { "type": "integer", @@ -42208,94 +48278,88 @@ } } } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Retrieves all site instance domains by environment and site ID.", - "description": "Retrieves all site instance domains by environment and site ID.", - "parameters": [ + "summary": "Retrieves a collection of deployments for the specified environment.", + "description": "Retrieves a collection of deployments for the specified environment.", + "deprecated": false, + "security": [ { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, + "MEO_Environment_Service_JWT": [] + } + ] + }, + "post": { + "operationId": "createDeploymentByEnvironmentId", + "x-cli-name": "environments:create-deployment", + "x-prerelease": true, + "tags": [], + "parameters": [ { "name": "environmentId", "in": "path", "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "offset", - "in": "query", - "description": "The collection page number", - "required": false, - "deprecated": false, - "allowEmptyValue": true, - "schema": { - "type": "integer", - "default": 1 - }, - "style": "form", - "explode": false, - "allowReserved": false - }, - { - "name": "limit", - "in": "query", - "description": "The number of items per page", - "required": false, - "deprecated": false, - "allowEmptyValue": true, - "schema": { - "type": "integer", - "default": 25, - "minimum": 0 - }, - "style": "form", - "explode": false, - "allowReserved": false + } } ], - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] + "requestBody": { + "required": true, + "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" + ] + } + } } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/domains/{domainName}": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "site_instance_domain", - "x-cli-name": "site-instances:domain", - "x-prerelease": true, - "tags": [], + }, "responses": { - "200": { - "description": "Domain details", + "202": { + "description": "Deployment started.", "content": { "application/hal+json": { "schema": { @@ -42309,20 +48373,39 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + "example": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" } } } } }, - "name": { + "message": { "type": "string", - "example": "example.com" + "example": "Deployment started." + } + } + } + } + } + }, + "400": { + "description": "Validation error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request body." }, - "is_managed": { - "type": "boolean", - "example": true + "code": { + "type": "integer", + "example": 400 } } } @@ -42354,7 +48437,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -42366,7 +48449,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -42378,7 +48461,7 @@ } }, "404": { - "description": "Domain not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -42390,7 +48473,7 @@ }, "message": { "type": "string", - "example": "The domain provided does not exist." + "example": "Not Found." }, "code": { "type": "integer", @@ -42400,69 +48483,120 @@ } } } + }, + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Retrieves site instance domain details by environment and site ID.", - "description": "Retrieves site instance domain details by environment and site ID.", - "parameters": [ + "summary": "Starts a deployment for the specified environment.", + "description": "Starts a deployment for the specified environment.", + "deprecated": false, + "security": [ { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/environments/{environmentId}/code-deploy": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "get": { + "operationId": "findCodeDeployByEnvironmentId", + "x-cli-name": "environments:find-code-deploy", + "x-prerelease": true, + "tags": [], + "parameters": [ { "name": "environmentId", "in": "path", "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "domainName", - "in": "path", - "description": "Domain Name", - "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } } ], - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] - } - ] - }, - "put": { - "operationId": "add_domain_to_site", - "x-cli-name": "site-instances:domain:add", - "x-prerelease": true, - "tags": [], "responses": { - "400": { - "description": "Invalid input" + "200": { + "description": "Code deploy concurrency setting.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + } + } + } + }, + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "example": 5 + } + } + } + } + } }, "401": { "description": "Authorization required.", @@ -42489,7 +48623,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -42501,7 +48635,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -42513,7 +48647,7 @@ } }, "404": { - "description": "Domain not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -42525,7 +48659,7 @@ }, "message": { "type": "string", - "example": "The domain provided does not exist." + "example": "Not Found." }, "code": { "type": "integer", @@ -42536,34 +48670,24 @@ } } }, - "422": { - "description": "Unprocessable entity" - }, - "202": { - "description": "Domain updated.", + "500": { + "description": "Internal Server Error.", "content": { - "application/hal+json": { + "application/json": { "schema": { "type": "object", "properties": { - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - } - } - } + "error": { + "type": "string", + "example": "server_error" }, - "name": { + "message": { "type": "string", - "example": "example.com" + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 } } } @@ -42571,95 +48695,157 @@ } } }, - "summary": "Associate a site and environment with a domain.", - "description": "Associate a site and environment with a domain.", - "parameters": [ + "summary": "Retrieves the code deploy concurrency setting for the environment.", + "description": "Retrieves the code deploy concurrency setting for the environment.", + "deprecated": false, + "security": [ { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, + "MEO_Environment_Service_JWT": [] + } + ] + }, + "put": { + "operationId": "updateCodeDeployByEnvironmentId", + "x-cli-name": "environments:update-code-deploy", + "x-prerelease": true, + "tags": [], + "parameters": [ { "name": "environmentId", "in": "path", "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "domainName", - "in": "path", - "description": "Domain Name", - "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } } ], "requestBody": { - "description": "The updated Domain resource", + "required": true, "content": { "application/json": { "schema": { "type": "object", - "additionalProperties": false + "properties": { + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Maximum concurrent code deploys." + } + }, + "required": [ + "concurrency" + ] } } - }, - "required": false - }, - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] } - ] - }, - "delete": { - "operationId": "api_site-instances_siteId._environmentIddomains_domainName_delete", - "x-cli-name": "site-instances:domain:delete", - "x-prerelease": true, - "tags": [], + }, "responses": { - "202": { - "description": "Dissociate a site and environment from a domain", + "200": { + "description": "Code deploy settings updated successfully.", + "content": { + "application/hal+json": { + "schema": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" + } + } + } + } + }, + "message": { + "type": "string", + "example": "Code deploy settings updated successfully." + } + } + } + } + } + }, + "400": { + "description": "Validation error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request body." + }, + "code": { + "type": "integer", + "example": 400 + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 + } + } + } + } + } + }, + "403": { + "description": "Access Denied.", "content": { "application/json": { "schema": { "type": "object", "properties": { + "error": { + "type": "string", + "example": "forbidden" + }, "message": { "type": "string", - "example": "www.example.com domain deletion for site_id:3e8ecbec-ea7c-4260-8414-ef2938c859bc started." + "example": "Access denied." + }, + "code": { + "type": "integer", + "example": 403 } } } } } }, - "401": { - "description": "Authorization required.", + "404": { + "description": "Not found.", "content": { "application/json": { "schema": { @@ -42667,23 +48853,23 @@ "properties": { "error": { "type": "string", - "example": "system" + "example": "not_found" }, "message": { "type": "string", - "example": "Full authentication is required to access this resource." + "example": "Not Found." }, "code": { "type": "integer", - "example": 401 + "example": 404 } } } } } }, - "403": { - "description": "Access Denied", + "409": { + "description": "Conflict.", "content": { "application/json": { "schema": { @@ -42691,23 +48877,23 @@ "properties": { "error": { "type": "string", - "example": "forbidden" + "example": "conflict" }, "message": { "type": "string", - "example": "Access Denied." + "example": "Conflict." }, "code": { "type": "integer", - "example": 403 + "example": 409 } } } } } }, - "404": { - "description": "Domain not found.", + "500": { + "description": "Internal Server Error.", "content": { "application/json": { "schema": { @@ -42715,15 +48901,15 @@ "properties": { "error": { "type": "string", - "example": "not_found" + "example": "server_error" }, "message": { "type": "string", - "example": "Not Found." + "example": "An internal server error occurred." }, "code": { "type": "integer", - "example": 404 + "example": 500 } } } @@ -42731,52 +48917,8 @@ } } }, - "summary": "Dissociate a site and environment from a domain.", - "description": "Dissociate a site and environment from a domain.", - "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "domainName", - "in": "path", - "description": "Domain Name", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], + "summary": "Updates the code deploy concurrency setting for the environment.", + "description": "Updates the code deploy concurrency setting for the environment.", "deprecated": false, "security": [ { @@ -42785,21 +48927,54 @@ ] } }, - "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": { + "/environments/{environmentId}/site-instances/actions/reorder": { "servers": [ { "url": "/", "description": "" } ], - "get": { - "operationId": "site_instance_domain_status", - "x-cli-name": "site-instances:domain:status", + "post": { + "operationId": "reorderSiteInstancesByEnvironmentId", + "x-cli-name": "environments:reorder-site-instances", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "site_instance_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Ordered list of site instance IDs." + } + }, + "required": [ + "site_instance_ids" + ] + } + } + } + }, "responses": { "200": { - "description": "Domain Status", + "description": "Site instances reordered successfully.", "content": { "application/hal+json": { "schema": { @@ -42813,52 +48988,39 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.3e8ecbec-ea7c-4260-8414-ef2938c859bc/domains/www.example.com/status" + "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances" } } } } }, - "site-id": { + "message": { "type": "string", - "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "environment-id": { + "example": "Site instances reordered successfully." + } + } + } + } + } + }, + "400": { + "description": "Validation error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { "type": "string", - "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + "example": "validation_failed" }, - "hostname": { + "message": { "type": "string", - "example": "www.example.com" - }, - "flags": { - "type": "object", - "example": { - "default": false, - "active": true, - "dns_resolves": true, - "acquia_hosted": true - } - }, - "ip_addresses": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "192.0.2.1" - ] + "example": "Invalid request body." }, - "cnames": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "cname1.example.com", - "cname2.example.com" - ] + "code": { + "type": "integer", + "example": 400 } } } @@ -42890,7 +49052,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -42902,7 +49064,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -42914,7 +49076,7 @@ } }, "404": { - "description": "Domain not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -42936,54 +49098,58 @@ } } } - } - }, - "summary": "Retrieves site instance domain status.", - "description": "Retrieves site instance domain status.", - "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false }, - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } + } + } }, - { - "name": "domainName", - "in": "path", - "description": "Domain Name", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } - ], + }, + "summary": "Updates the priority order of site instances for the environment.", + "description": "Updates the priority order of site instances for the environment.", "deprecated": false, "security": [ { @@ -42992,7 +49158,7 @@ ] } }, - "/codebases/{codebaseId}/environments": { + "/environments/{environmentId}/domain-patterns": { "servers": [ { "url": "/", @@ -43000,40 +49166,66 @@ } ], "get": { - "operationId": "environments_by_codebase", - "x-cli-name": "codebases:environments-list", + "operationId": "getDomainPatternsByEnvironmentId", + "x-cli-name": "environments:list-domain-patterns", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "description": "Pagination offset", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "limit", + "in": "query", + "description": "Pagination limit", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort expression", + "required": false, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "description": "List of environments.", + "description": "A collection of domain patterns.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "count": { - "type": "integer", - "example": 1 - }, - "total": { - "type": "integer", - "example": 1 - }, - "pagination": { + "_links": { "type": "object", "properties": { - "total": { - "type": "integer", - "example": 1 - }, - "limit": { - "type": "integer", - "example": 25 - }, - "offset": { - "type": "integer", - "example": 1 + "self": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + } } } }, @@ -43045,204 +49237,42 @@ "items": { "type": "object", "properties": { - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/environments/1111-1111-1111" - } - } - }, - "codebase": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - } - }, "id": { "type": "string", - "example": "1111-1111-1111" - }, - "name": { - "type": "string", - "example": "environment_1111-1111-1111" - }, - "label": { - "type": "string", - "example": "Environment 1111-1111-1111" - }, - "description": { - "type": "string", - "example": "Description of1111-1111-1111" - }, - "status": { - "type": "string", - "example": "normal" - }, - "flags": { - "type": "object", - "example": { - "production": false - } - }, - "properties": { - "type": "object", - "example": { - "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": { - "type": "string", - "example": "tag/v3.1" - }, - "code_switch_status": { - "type": "string", - "enum": [ - "IDLE", - "IN_PROGRESS" - ], - "example": "IDLE", - "description": "The status of the Switch Code action" + "example": "11111111-1111-1111-1111-111111111111" }, - "ssh_url": { + "pattern": { "type": "string", - "format": "string", - "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" - }, - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "1111-1111-1111" - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/1111-1111-1111" - } - } - } - } - } - } - } - } + "example": "[site-name].acme.com" } } } } } - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1" - } - } - }, - "limit": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?offset=1{&limit}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "offset": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25{&offset}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "filter": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1{&filter}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "sort": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1{&sort}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "prev": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc/environments?limit=25&offset=1" - } - } - } - } + } + } + } + } + } + }, + "400": { + "description": "Validation error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "validation_failed" + }, + "message": { + "type": "string", + "example": "Invalid request." + }, + "code": { + "type": "integer", + "example": 400 } } } @@ -43274,7 +49304,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -43286,7 +49316,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -43298,7 +49328,7 @@ } }, "404": { - "description": "Environment not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -43320,92 +49350,81 @@ } } } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Retrieves all environments by codebase.", - "description": "Retrieves all environments by codebase.", - "parameters": [ - { - "name": "limit", - "in": "query", - "description": "The number of items per page.", - "required": false, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "integer" - }, - "style": "form", - "explode": false, - "allowReserved": false - }, - { - "name": "offset", - "in": "query", - "description": "The index of the first item in the page.", - "required": false, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "integer" - }, - "style": "form", - "explode": false, - "allowReserved": false - }, + "summary": "Retrieves a collection of domain patterns for the specified environment.", + "description": "Retrieves a collection of domain patterns for the specified environment.", + "deprecated": false, + "security": [ { - "name": "filter", - "in": "query", - "description": "The filters query string parameter restricts the data returned from your request. Filtered queries restrict the rows that do get included in the result by testing each row in the result against the filters. Not all fields are filterable. Current we only support filter by **name**", - "required": false, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string", - "example": "name=dev" - }, - "style": "form", - "explode": false, - "allowReserved": false - }, + "MEO_Environment_Service_JWT": [] + } + ] + }, + "post": { + "operationId": "createDomainPatternByEnvironmentId", + "x-cli-name": "environments:create-domain-pattern", + "x-prerelease": true, + "tags": [], + "parameters": [ { - "name": "codebaseId", + "name": "environmentId", "in": "path", - "description": "Codebase entity unique identifier", + "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } } ], - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "description": "The domain pattern to apply. Must contain [site-name] token.", + "example": "[site-name].acme.com" + } + }, + "required": [ + "pattern" + ] + } + } } - ] - } - }, - "/codebases/{codebaseId}/environments/{environmentId}": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "environment_by_codebase_id", - "x-cli-name": "codebases:environments-find", - "x-prerelease": true, - "tags": [], + }, "responses": { - "200": { - "description": "Environment details", + "202": { + "description": "Domain pattern creation initiated.", "content": { "application/hal+json": { "schema": { @@ -43419,111 +49438,39 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - }, - "codebase": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + "example": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" } } } } }, - "id": { - "type": "string", - "format": "uuid", - "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "name": { - "type": "string", - "example": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "label": { - "type": "string", - "example": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "description": { - "type": "string", - "example": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "status": { - "type": "string", - "example": "normal" - }, - "flags": { - "type": "object", - "example": { - "production": false - } - }, - "properties": { - "type": "object", - "example": { - "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": { + "message": { "type": "string", - "example": "tag/v3.1" - }, - "code_switch_status": { + "example": "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", - "enum": [ - "IDLE", - "IN_PROGRESS" - ], - "example": "IDLE", - "description": "The status of the Switch Code action" + "example": "validation_failed" }, - "ssh_url": { + "message": { "type": "string", - "format": "string", - "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" + "example": "Invalid request body." }, - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - } - } - } + "code": { + "type": "integer", + "example": 400 } } } @@ -43555,7 +49502,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -43567,7 +49514,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -43579,7 +49526,7 @@ } }, "404": { - "description": "Environment not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -43601,40 +49548,58 @@ } } } - } - }, - "summary": "Retrieves the details for an environment based on codebase and environment uuid.", - "description": "Retrieves the details for an environment based on codebase and environment uuid.", - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "description": "Codebase entity unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false }, - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } - ], + }, + "summary": "Creates a domain pattern for the specified environment.", + "description": "Creates a domain pattern for the specified environment.", "deprecated": false, "security": [ { @@ -43643,7 +49608,7 @@ ] } }, - "/v3/environments/{environmentId}": { + "/environments/{environmentId}/domain-patterns/{patternId}": { "servers": [ { "url": "/", @@ -43651,13 +49616,33 @@ } ], "get": { - "operationId": "environment_by_id", - "x-cli-name": "environments-v3:find", + "operationId": "findDomainPatternByEnvironmentIdAndPatternId", + "x-cli-name": "environments:find-domain-pattern", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "patternId", + "in": "path", + "description": "Domain pattern unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "description": "Environment details", + "description": "Domain pattern details.", "content": { "application/hal+json": { "schema": { @@ -43670,19 +49655,7 @@ "type": "object", "properties": { "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - }, - "codebase": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + "type": "string" } } } @@ -43690,92 +49663,11 @@ }, "id": { "type": "string", - "format": "uuid", - "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "name": { - "type": "string", - "example": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "label": { - "type": "string", - "example": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "description": { - "type": "string", - "example": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "status": { - "type": "string", - "example": "normal" - }, - "flags": { - "type": "object", - "example": { - "production": false - } - }, - "properties": { - "type": "object", - "example": { - "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": { - "type": "string", - "example": "tag/v3.1" - }, - "code_switch_status": { - "type": "string", - "enum": [ - "IDLE", - "IN_PROGRESS" - ], - "example": "IDLE", - "description": "The status of the Switch Code action" + "example": "11111111-1111-1111-1111-111111111111" }, - "ssh_url": { + "pattern": { "type": "string", - "format": "string", - "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" - }, - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - } - } - } + "example": "[site-name].acme.com" } } } @@ -43807,7 +49699,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -43819,7 +49711,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -43831,7 +49723,7 @@ } }, "404": { - "description": "Environment not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -43853,50 +49745,95 @@ } } } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Retrieves an environment details by its uuid.", - "description": "Retrieves an environment details by its uuid.", + "summary": "Retrieves a domain pattern by environment ID and pattern ID.", + "description": "Retrieves a domain pattern by environment ID and pattern ID.", + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + }, + "patch": { + "operationId": "updateDomainPatternByEnvironmentIdAndPatternId", + "x-cli-name": "environments:update-domain-pattern", + "x-prerelease": true, + "tags": [], "parameters": [ { "name": "environmentId", "in": "path", "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } + }, + { + "name": "patternId", + "in": "path", + "description": "Domain pattern unique identifier", + "required": true, + "schema": { + "type": "string" + } } ], - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "description": "The updated domain pattern string.", + "example": "[site-name].acme.com" + } + }, + "required": [ + "pattern" + ] + } + } } - ] - }, - "put": { - "operationId": "update_environment", - "x-cli-name": "environments-v3:update", - "x-prerelease": true, - "tags": [], + }, "responses": { "202": { - "description": "Successful start of environment properties update.", + "description": "Domain pattern update initiated.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Environment update started." - }, "_links": { "type": "object", "properties": { @@ -43905,12 +49842,15 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/environments/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + "example": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" } } } } + }, + "message": { + "type": "string", + "example": "The domain pattern update is being applied to all associated sites in this environment." } } } @@ -43918,7 +49858,7 @@ } }, "400": { - "description": "Validation Error in request body.", + "description": "Validation error.", "content": { "application/json": { "schema": { @@ -43966,7 +49906,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -43978,7 +49918,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -43990,7 +49930,7 @@ } }, "404": { - "description": "Environment not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -44013,255 +49953,97 @@ } } }, - "422": { - "description": "Unprocessable entity" - } - }, - "summary": "Modifies properties settings for an environment.", - "description": "Modifies properties settings for an environment. Note that some settings cannot be configured for certain subscriptions.", - "parameters": [ - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], - "requestBody": { - "description": "The updated Environment resource", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "example": "test-environment" - }, - "description": { - "type": "string", - "example": "environment-description" - }, + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", "properties": { - "type": "object", - "example": { - "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" + "error": { + "type": "string", + "example": "conflict" }, - "minProperties": 1 + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } } - }, - "minProperties": 1 + } } } }, - "required": true + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } + } }, + "summary": "Updates a domain pattern for the specified environment.", + "description": "Updates a domain pattern for the specified environment.", "deprecated": false, "security": [ { "MEO_Environment_Service_JWT": [] } ] - } - }, - "/sites/{siteId}/environments": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "get": { - "operationId": "environments_by_site", - "x-cli-name": "sites:environments-list", + }, + "delete": { + "operationId": "deleteDomainPatternByEnvironmentIdAndPatternId", + "x-cli-name": "environments:delete-domain-pattern", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "patternId", + "in": "path", + "description": "Domain pattern unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { - "200": { - "description": "List of environments.", + "202": { + "description": "Domain pattern deletion initiated.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "count": { - "type": "integer", - "example": 1 - }, - "total": { - "type": "integer", - "example": 1 - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "example": 1 - }, - "limit": { - "type": "integer", - "example": 25 - }, - "offset": { - "type": "integer", - "example": 1 - } - } - }, - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "site_instance": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/site-id.env-id" - } - } - }, - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments" - } - } - }, - "codebase": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - } - }, - "id": { - "type": "string", - "example": "1111-1111-1111" - }, - "name": { - "type": "string", - "example": "environment_1111-1111-1111" - }, - "label": { - "type": "string", - "example": "Environment 1111-1111-1111" - }, - "description": { - "type": "string", - "example": "Description of 1111-1111-1111" - }, - "status": { - "type": "string", - "example": "normal" - }, - "flags": { - "type": "object", - "example": { - "production": false - } - }, - "properties": { - "type": "object", - "example": { - "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": { - "type": "string", - "example": "tag/v3.1" - }, - "code_switch_status": { - "type": "string", - "enum": [ - "IDLE", - "IN_PROGRESS" - ], - "example": "IDLE", - "description": "The status of the Switch Code action" - }, - "ssh_url": { - "type": "string", - "format": "string", - "example": "site.dev@sitedev.ssh.hosted.acquia-sites.com" - }, - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "1111-1111-1111" - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/codebases/1111-1111-1111" - } - } - } - } - } - } - } - } - } - } - } - } - } - }, "_links": { "type": "object", "properties": { @@ -44270,78 +50052,15 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1" - } - } - }, - "limit": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments?offset=1{&limit}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "offset": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25{&offset}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "filter": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1{&filter}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "sort": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1{&sort}" - }, - "templated": { - "type": "boolean", - "example": true - } - } - }, - "prev": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/sites/site-id/environments?limit=25&offset=1" + "example": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" } } } } + }, + "message": { + "type": "string", + "example": "The domain pattern is being removed from all associated sites in this environment." } } } @@ -44373,7 +50092,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -44385,7 +50104,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -44397,7 +50116,7 @@ } }, "404": { - "description": "Environment not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -44419,57 +50138,58 @@ } } } - } - }, - "summary": "Retrieves all environments by site.", - "description": "Retrieves all environments by site.", - "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false }, - { - "name": "offset", - "in": "query", - "description": "The collection page number", - "required": false, - "deprecated": false, - "allowEmptyValue": true, - "schema": { - "type": "integer", - "default": 1 - }, - "style": "form", - "explode": false, - "allowReserved": false + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } + } + } }, - { - "name": "limit", - "in": "query", - "description": "The number of items per page", - "required": false, - "deprecated": false, - "allowEmptyValue": true, - "schema": { - "type": "integer", - "default": 25, - "minimum": 0 - }, - "style": "form", - "explode": false, - "allowReserved": false + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } - ], + }, + "summary": "Deletes a domain pattern for the specified environment.", + "description": "Deletes a domain pattern for the specified environment.", "deprecated": false, "security": [ { @@ -44478,7 +50198,7 @@ ] } }, - "/environments/{environmentId}/site-instances": { + "/environments/{environmentId}/actions/enable-protection-mode": { "servers": [ { "url": "/", @@ -44486,22 +50206,29 @@ } ], "post": { - "operationId": "api_environments_environmentIdsite-instances_post", - "x-cli-name": "environments:site-instances:create", + "operationId": "enableEnvironmentProtectionModeByEnvironmentId", + "x-cli-name": "environments:enable-protection-mode", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { - "201": { - "description": "Site instance creation started.", + "202": { + "description": "Enable protection mode initiated.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Site instance for site_id:3fa85f64-5717-4562-b3fc-2c963f66afa6 creation started." - }, "_links": { "type": "object", "properties": { @@ -44510,20 +50237,47 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances" + "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" } } } } + }, + "message": { + "type": "string", + "example": "Environment protection mode enabled." + } + } + } + } + } + }, + "401": { + "description": "Authorization required.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "system" + }, + "message": { + "type": "string", + "example": "Full authentication is required to access this resource." + }, + "code": { + "type": "integer", + "example": 401 } } } } } }, - "400": { - "description": "Validation Error in request body.", + "403": { + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -44531,23 +50285,23 @@ "properties": { "error": { "type": "string", - "example": "validation_failed" + "example": "forbidden" }, "message": { "type": "string", - "example": "Invalid request body." + "example": "Access denied." }, "code": { "type": "integer", - "example": 400 + "example": 403 } } } } } }, - "401": { - "description": "Authorization required.", + "404": { + "description": "Not found.", "content": { "application/json": { "schema": { @@ -44555,23 +50309,23 @@ "properties": { "error": { "type": "string", - "example": "system" + "example": "not_found" }, "message": { "type": "string", - "example": "Full authentication is required to access this resource." + "example": "Not Found." }, "code": { "type": "integer", - "example": 401 + "example": 404 } } } } } }, - "403": { - "description": "Access Denied", + "409": { + "description": "Conflict.", "content": { "application/json": { "schema": { @@ -44579,23 +50333,23 @@ "properties": { "error": { "type": "string", - "example": "forbidden" + "example": "conflict" }, "message": { "type": "string", - "example": "The site instance already exists." + "example": "Conflict." }, "code": { "type": "integer", - "example": 403 + "example": 409 } } } } } }, - "404": { - "description": "not found.", + "500": { + "description": "Internal Server Error.", "content": { "application/json": { "schema": { @@ -44603,60 +50357,24 @@ "properties": { "error": { "type": "string", - "example": "not_found" + "example": "server_error" }, "message": { "type": "string", - "example": "Not Found." + "example": "An internal server error occurred." }, "code": { "type": "integer", - "example": 404 + "example": 500 } } } } } - }, - "422": { - "description": "Unprocessable entity" - } - }, - "summary": "Associate a site with an environment.", - "description": "Associate a site with an environment.", - "parameters": [ - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false } - ], - "requestBody": { - "description": "The new SiteInstance resource", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "site_id": { - "type": "string", - "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6" - } - } - } - } - }, - "required": true }, + "summary": "Enable Environment Protection mode.", + "description": "Enable Environment Protection mode.", "deprecated": false, "security": [ { @@ -44665,21 +50383,32 @@ ] } }, - "/site-instances/{siteId}.{environmentId}": { + "/environments/{environmentId}/actions/disable-protection-mode": { "servers": [ { "url": "/", "description": "" } ], - "get": { - "operationId": "site_instance", - "x-cli-name": "site-instances:find", + "post": { + "operationId": "disableEnvironmentProtectionModeByEnvironmentId", + "x-cli-name": "environments:disable-protection-mode", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "description": "Environment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { - "200": { - "description": "Site Instance details", + "202": { + "description": "Disable protection mode initiated.", "content": { "application/hal+json": { "schema": { @@ -44693,52 +50422,15 @@ "properties": { "href": { "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + "example": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" } } } } }, - "site_id": { - "type": "string", - "example": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "environment_id": { - "type": "string", - "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" - }, - "status": { + "message": { "type": "string", - "example": "active" - }, - "health_status": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "OK" - }, - "summary": { - "type": "string", - "example": "The health status is OK." - }, - "details": { - "type": "string", - "example": "The site instance is active" - } - } - }, - "domains": { - "type": "array", - "items": { - "type": "string", - "example": "example.com" - }, - "example": [ - "example.com", - "example-2.com" - ] + "example": "Environment protection mode disabled." } } } @@ -44770,7 +50462,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -44782,7 +50474,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -44794,7 +50486,7 @@ } }, "404": { - "description": "Site Instance not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -44816,63 +50508,106 @@ } } } + }, + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Retrieves details about an environment association with a site (a site instance).", - "description": "Retrieves details about an environment association with a site (a site instance).", + "summary": "Disable Environment Protection mode.", + "description": "Disable Environment Protection mode.", + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/recover": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "post": { + "operationId": "recoverSiteInstanceBySiteIdAndEnvironmentId", + "x-cli-name": "site-instances:recover", + "x-prerelease": true, + "tags": [], "parameters": [ { "name": "siteId", "in": "path", "description": "Site unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } }, { "name": "environmentId", "in": "path", "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } } ], - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] - } - ] - }, - "delete": { - "operationId": "api_site-instances_siteId._environmentId_delete", - "x-prerelease": true, - "tags": [], "responses": { "202": { - "description": "Site Instance deleted", + "description": "Site instance restoration started.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Site instance deletion started." - }, "_links": { "type": "object", "properties": { @@ -44881,12 +50616,15 @@ "properties": { "href": { "type": "string", - "format": "string", "example": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" } } } } + }, + "message": { + "type": "string", + "example": "Site instance restoration started." } } } @@ -44918,7 +50656,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -44930,7 +50668,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -44942,7 +50680,7 @@ } }, "404": { - "description": "Site Instance not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -44964,72 +50702,106 @@ } } } + }, + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } } }, - "summary": "Dissociate a site and environment with no grace period.", - "description": "Dissociate a site and environment with no grace period.", + "summary": "Recovers a site instance that is scheduled for deletion.", + "description": "Recovers a site instance that is scheduled for deletion.", + "deprecated": false, + "security": [ + { + "MEO_Environment_Service_JWT": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/schedule-delete": { + "servers": [ + { + "url": "/", + "description": "" + } + ], + "post": { + "operationId": "scheduleDeleteSiteInstanceBySiteIdAndEnvironmentId", + "x-cli-name": "site-instances:schedule-delete", + "x-prerelease": true, + "tags": [], "parameters": [ { "name": "siteId", "in": "path", "description": "Site unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } }, { "name": "environmentId", "in": "path", "description": "Environment unique identifier", "required": true, - "deprecated": false, - "allowEmptyValue": false, "schema": { "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false + } } ], - "deprecated": false, - "security": [ - { - "MEO_Environment_Service_JWT": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/cancel": { - "servers": [ - { - "url": "/", - "description": "" - } - ], - "post": { - "operationId": "api_site-instances_siteId._environmentIdactionscancel_post", - "x-cli-name": "site-instances:dissociate", - "x-prerelease": true, - "tags": [], "responses": { "202": { - "description": "Site Instance deleted", + "description": "Site instance deletion scheduled.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Site instance deletion started." - }, "_links": { "type": "object", "properties": { @@ -45038,21 +50810,21 @@ "properties": { "href": { "type": "string", - "format": "string", "example": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" } } } } + }, + "message": { + "type": "string", + "example": "Site instance deletion scheduled." } } } } } }, - "400": { - "description": "Invalid input" - }, "401": { "description": "Authorization required.", "content": { @@ -45078,7 +50850,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -45090,7 +50862,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -45102,7 +50874,7 @@ } }, "404": { - "description": "Site Instance not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -45125,63 +50897,57 @@ } } }, - "422": { - "description": "Unprocessable entity" - } - }, - "summary": "Dissociate a site and environment.", - "description": "Dissociate a site and environment.", - "parameters": [ - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], - "requestBody": { - "description": "The new SiteInstance resource", - "content": { - "application/hal+json": { - "schema": { - "$ref": "#/components/schemas/MEO_Environment_Service_SiteInstance.jsonhal" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/MEO_Environment_Service_SiteInstance" - } - }, - "text/html": { - "schema": { - "$ref": "#/components/schemas/MEO_Environment_Service_SiteInstance" + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 + } + } + } } } }, - "required": true + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } + } }, + "summary": "Schedules a site instance for deletion.", + "description": "Schedules a site instance for deletion.", "deprecated": false, "security": [ { @@ -45190,30 +50956,37 @@ ] } }, - "/site-instances/{siteId}.{environmentId}/files": { + "/deployments/{deploymentId}": { "servers": [ { "url": "/", "description": "" } ], - "post": { - "operationId": "api_site-instances_siteId._environmentIdfiles_post", - "x-cli-name": "site-instances:files:copy", + "get": { + "operationId": "findDeploymentByDeploymentId", + "x-cli-name": "deployments:find", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "deploymentId", + "in": "path", + "description": "Deployment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { - "202": { - "description": "Copy files from one environment to another", + "200": { + "description": "Deployment details.", "content": { "application/hal+json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "Files copy for site id 3fa85f64-5717-4562-b3fc-2c9699999999 from 3fa85f64-5717-4562-b3fc-2c963f66afa6 to 4fa85f64-5717-4562-b3fc-2c963f66afa3 started." - }, "_links": { "type": "object", "properties": { @@ -45221,37 +50994,72 @@ "type": "object", "properties": { "href": { - "type": "string", - "format": "string", - "example": "https://cloud.acquia.com/api/site/3fa85f64-5717-4562-b3fc-2c9699999999/files" + "type": "string" + } + } + }, + "environment": { + "type": "object", + "properties": { + "href": { + "type": "string" } } } } - } - } - } - } - } - }, - "400": { - "description": "Validation Error in request body.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { + }, + "id": { "type": "string", - "example": "validation_failed" + "example": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" }, - "message": { + "environment_id": { "type": "string", - "example": "Invalid request body." + "example": "d3f7270e-c45f-4801-9308-5e8afe84a323" }, - "code": { - "type": "integer", - "example": 400 + "status": { + "type": "string", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "example": "release-2025-01-15" + }, + "run_hooks": { + "type": "boolean" + }, + "hooks_argument": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "started_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "completed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sender_id": { + "type": "string", + "nullable": true + }, + "logs": { + "type": "string", + "nullable": true } } } @@ -45283,7 +51091,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -45295,7 +51103,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -45307,7 +51115,7 @@ } }, "404": { - "description": "not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -45330,59 +51138,33 @@ } } }, - "422": { - "description": "Unprocessable entity" - } - }, - "summary": "Copy files from one environment to another.", - "description": "Copy files from one environment to another.", - "parameters": [ - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - }, - { - "name": "siteId", - "in": "path", - "description": "Site unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], - "requestBody": { - "description": "The new SiteInstance resource", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_environment_id": { - "type": "string", - "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6" + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } } } } } - }, - "required": true + } }, + "summary": "Retrieves the status of a deployment by deployment ID.", + "description": "Retrieves the status of a deployment by deployment ID.", "deprecated": false, "security": [ { @@ -45391,7 +51173,7 @@ ] } }, - "/v3/environments/{environmentId}/actions/clear-caches": { + "/deployments/{deploymentId}/actions/stop": { "servers": [ { "url": "/", @@ -45399,13 +51181,24 @@ } ], "post": { - "operationId": "postV3EnvironmentsClearCaches", - "x-cli-name": "environments-v3:clear-caches", + "operationId": "stopDeploymentByDeploymentId", + "x-cli-name": "deployments:stop", "x-prerelease": true, "tags": [], + "parameters": [ + { + "name": "deploymentId", + "in": "path", + "description": "Deployment unique identifier", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { "202": { - "description": "Domains cache flush started.", + "description": "Deployment stop initiated.", "content": { "application/hal+json": { "schema": { @@ -45419,8 +51212,7 @@ "properties": { "href": { "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/actions/clear-caches" + "example": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" } } } @@ -45428,16 +51220,13 @@ }, "message": { "type": "string", - "example": "Varnish domain cache clear started." + "example": "Deployment stop initiated." } } } } } }, - "400": { - "description": "Invalid input" - }, "401": { "description": "Authorization required.", "content": { @@ -45463,7 +51252,7 @@ } }, "403": { - "description": "Access Denied", + "description": "Access Denied.", "content": { "application/json": { "schema": { @@ -45475,7 +51264,7 @@ }, "message": { "type": "string", - "example": "Access Denied." + "example": "Access denied." }, "code": { "type": "integer", @@ -45487,7 +51276,7 @@ } }, "404": { - "description": "Domain not found.", + "description": "Not found.", "content": { "application/json": { "schema": { @@ -45499,7 +51288,7 @@ }, "message": { "type": "string", - "example": "The domain provided does not exist." + "example": "Not Found." }, "code": { "type": "integer", @@ -45509,55 +51298,58 @@ } } } - } - }, - "summary": "Clear caches for an environment with a list of domains.", - "description": "Clear caches for an environment with a list of domains.", - "parameters": [ - { - "name": "environmentId", - "in": "path", - "description": "Environment unique identifier", - "required": true, - "deprecated": false, - "allowEmptyValue": false, - "schema": { - "type": "string" - }, - "style": "simple", - "explode": false, - "allowReserved": false - } - ], - "requestBody": { - "description": "List of domains.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domains": { - "type": "array", - "items": { + }, + "409": { + "description": "Conflict.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { "type": "string", - "example": "example.com" + "example": "conflict" + }, + "message": { + "type": "string", + "example": "Conflict." + }, + "code": { + "type": "integer", + "example": 409 } } - }, - "required": [ - "domains" - ] - }, - "example": { - "domains": [ - "example.com", - "another-domain.com" - ] + } } } }, - "required": true + "500": { + "description": "Internal Server Error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "server_error" + }, + "message": { + "type": "string", + "example": "An internal server error occurred." + }, + "code": { + "type": "integer", + "example": 500 + } + } + } + } + } + } }, + "summary": "Stops a deployment by sending a stop request.", + "description": "Stops a deployment by sending a stop request.", "deprecated": false, "security": [ { @@ -47816,33 +53608,7 @@ "x-prerelease": true, "tags": [], "responses": { - "400": { - "description": "Invalid input" - }, - "404": { - "description": "Site not found.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string", - "example": "not_found" - }, - "message": { - "type": "string", - "example": "The site you are trying to access does not exist, or you do not have permission to access it." - } - } - } - } - } - }, - "422": { - "description": "Unprocessable entity" - }, - "202": { + "201": { "description": "Site creation started.", "content": { "application/hal+json": { @@ -47880,6 +53646,32 @@ } } } + }, + "400": { + "description": "Invalid input" + }, + "404": { + "description": "Site not found.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "not_found" + }, + "message": { + "type": "string", + "example": "The site you are trying to access does not exist, or you do not have permission to access it." + } + } + } + } + } + }, + "422": { + "description": "Unprocessable entity" } }, "summary": "Creates a site for a codebase.", @@ -48256,118 +54048,6 @@ } ] } - }, - "/environments/{environmentId}/trusted-proxies": { - "servers": [ - { - "url": "https://cloud.acquia.com/api", - "description": "Cloud API" - } - ], - "get": { - "tags": [ - "Environments" - ], - "summary": "Returns the trusted proxy settings for an Environment.", - "description": "Returns the trusted proxy settings for an Environment.", - "operationId": "getEnvironmentTrustedProxies", - "x-cli-name": "environments:trusted-proxies", - "parameters": [ - { - "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_environment-id" - } - ], - "security": [ - { - "Acquia_Cloud_API_Documentation_OAuth2": [] - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "type": "object", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Whether trusted proxies are enabled.", - "example": true - }, - "addresses": { - "type": "array", - "description": "The list of trusted proxy IP addresses or CIDR ranges.", - "items": { - "type": "string", - "example": "192.0.2.1" - } - }, - "_links": { - "type": "object", - "properties": { - "self": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/environments/24-a47ac10b-58cc-4372-a567-0e02b2c3d470/trusted-proxies" - } - } - }, - "parent": { - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri", - "example": "https://cloud.acquia.com/api/environments/24-a47ac10b-58cc-4372-a567-0e02b2c3d470" - } - } - } - } - } - } - }, - "example": { - "is_enabled": true, - "addresses": [ - "192.0.2.1", - "198.51.100.0/24" - ], - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/24-a47ac10b-58cc-4372-a567-0e02b2c3d470/trusted-proxies" - }, - "parent": { - "href": "https://cloud.acquia.com/api/environments/24-a47ac10b-58cc-4372-a567-0e02b2c3d470" - } - } - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/hal+json": { - "schema": { - "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_error" - }, - "examples": { - "Not found": { - "value": { - "error": "not_found", - "message": "The environment you are trying to access does not exist, or you do not have permission to access it." - } - } - } - } - } - } - } - } } }, "components": { @@ -48602,7 +54282,7 @@ "Acquia_Cloud_API_Documentation_resolution": { "name": "resolution", "in": "query", - "description": "Specifies the data granularity of the request. Available resolutions: minute, hour, day, week or month.\n\nLimits:\n- 3 hour limit for \u201cminute\u201d resolution\n- 1 week limit for \u201chour\u201d resolution\n- 6 month limit for \u201cday\u201d resolution\n- 1 year limit for \"week\" resolution\n- 3 year limit for \u201cmonth\u201d resolution\n", + "description": "Specifies the data granularity of the request. Available resolutions: minute, hour, day, week or month.\n\nLimits:\n- 3 hour limit for “minute” resolution\n- 1 week limit for “hour” resolution\n- 6 month limit for “day” resolution\n- 1 year limit for \"week\" resolution\n- 3 year limit for “month” resolution\n", "required": false, "schema": { "type": "string", @@ -48902,6 +54582,17 @@ }, "example": "a1234567-1234-123a-abc1-12ab345cd678" }, + "Acquia_Cloud_API_Documentation_trial-id": { + "name": "trialId", + "in": "path", + "required": true, + "description": "The unique identifier of the trial", + "schema": { + "type": "string", + "format": "uuid", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + }, "Acquia_Cloud_API_Documentation_user-search": { "name": "userSearch", "in": "query", @@ -49065,6 +54756,9 @@ "Acquia_Cloud_API_Documentation_TagName": { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_tag-name" }, + "Acquia_Cloud_API_Documentation_TrialId": { + "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_trial-id" + }, "Acquia_Cloud_API_Documentation_TokenDeleteReason": { "$ref": "#/components/parameters/Acquia_Cloud_API_Documentation_token-delete-reason" }, @@ -54018,6 +59712,23 @@ }, "flags": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_eip-flags" + }, + "_links": { + "type": "object", + "description": "HAL links for this Web EIP.", + "properties": { + "self": { + "type": "object", + "description": "A link to this resource.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "The URI for this Web EIP." + } + } + } + } } } }, @@ -57648,6 +63359,441 @@ } } }, + "Acquia_Cloud_API_Documentation_trial": { + "type": "object", + "description": "Represents a trial account for pre-MEO workloads", + "required": [ + "id", + "site_name", + "status", + "created_at", + "updated_at", + "region", + "_links" + ], + "properties": { + "_links": { + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } + }, + "site": { + "type": "object", + "description": "Link to the provisioned trial site (available when status is completed)", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://ppd2005c06prod.prod.acquia-sites.com" + } + } + }, + "admin": { + "type": "object", + "description": "Sign-in link for trial site administrator access (available when status is completed)", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://ppd2005c06prod.prod.acquia-sites.com/user/login?token=abc123" + } + } + }, + "subscription": { + "type": "object", + "description": "Link to the subscription once trial is assigned (available when status is completed)", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/subscriptions/c3d4e5f6-a7b8-9012-cdef-123456789012" + } + } + }, + "organization": { + "type": "object", + "description": "Link to the organization once trial is assigned (available when status is completed)", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/organizations/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + } + }, + "retry": { + "type": "object", + "description": "Link to retry provisioning (available when status is failed)", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials/c3d4e5f6-a7b8-9012-cdef-123456789012/actions/retry" + } + } + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "description": "The unique identifier of the trial.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "site_name": { + "type": "string", + "description": "Name of the trial site", + "example": "mytrialsite" + }, + "status": { + "type": "string", + "description": "Current provisioning status of the trial", + "enum": [ + "pending", + "in-progress", + "completed", + "failed" + ], + "example": "completed" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "RFC 3339 timestamp when the trial was created", + "example": "2026-08-27T14:30:00Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "RFC 3339 timestamp of last status update", + "example": "2026-08-27T15:45:00Z" + }, + "percent_complete": { + "type": "integer", + "description": "Provisioning progress as a percentage (0-100)", + "minimum": 0, + "maximum": 100, + "example": 100, + "nullable": true + }, + "region": { + "type": "string", + "description": "Cloud region where the trial is provisioned", + "example": "us-east-1" + } + } + }, + "Acquia_Cloud_API_Documentation_drupal-template": { + "type": "object", + "description": "A Drupal template available for trial provisioning", + "required": [ + "id", + "name", + "description", + "details_url", + "image_url" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the template", + "example": "haven" + }, + "name": { + "type": "string", + "description": "Human-readable template name", + "example": "Haven" + }, + "description": { + "type": "string", + "description": "Detailed description of the template", + "example": "A warm, inviting template pre-configured with essential tools for storytelling and community engagement. Ideal for small-to-medium non-profits and community organizations." + }, + "details_url": { + "type": "string", + "format": "uri", + "description": "URL to template project documentation", + "example": "https://www.drupal.org/project/haven" + }, + "image_url": { + "type": "string", + "format": "uri", + "description": "URL to the template preview image", + "example": "https://trials-ui-prod.prod.cicd.acquia.io/assets/images/templates/template-haven.png" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Categorization tags for the template", + "example": [ + "Blog & Editorial", + "Nonprofit & Community", + "Wellness" + ] + }, + "features": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Key features included in the template", + "example": [ + "Donation add-ons", + "Project and people profiles", + "Blog/editorial workflows", + "Newsletter signups" + ] + } + } + }, + "Acquia_Cloud_API_Documentation_drupal-templates-collection": { + "type": "object", + "description": "Paginated collection of Drupal templates", + "required": [ + "total", + "pagination", + "_links", + "_embedded" + ], + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates in the collection", + "example": 15 + }, + "pagination": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_pagination" + }, + "_links": { + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials/templates?limit=10&offset=0" + } + } + }, + "sort": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-reference", + "example": "https://cloud.acquia.com/api/trials/templates{?sort}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-reference", + "example": "https://cloud.acquia.com/api/trials/templates{?limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-reference", + "example": "https://cloud.acquia.com/api/trials/templates{?offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/" + } + } + } + } + }, + "_embedded": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_drupal-template" + } + } + } + } + } + }, + "Acquia_Cloud_API_Documentation_trial-region": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "AWS region identifier (e.g., us-east-1)", + "example": "us-east-1" + }, + "name": { + "type": "string", + "description": "Human-readable region name", + "example": "US East (N. Virginia)" + } + } + }, + "Acquia_Cloud_API_Documentation_trial-regions-collection": { + "type": "object", + "required": [ + "total", + "pagination", + "_links", + "_embedded" + ], + "properties": { + "total": { + "type": "integer", + "description": "Total number of regions available", + "example": 3 + }, + "pagination": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_pagination" + }, + "_links": { + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials-regions?limit=10&offset=0" + } + } + }, + "sort": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials-regions{?sort}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "limit": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials-regions{?limit}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "offset": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/trials-regions{?offset}" + }, + "templated": { + "type": "boolean", + "example": true + } + } + }, + "parent": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://cloud.acquia.com/api/" + } + } + } + } + }, + "_embedded": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial-region" + } + } + } + } + } + }, "Acquia_Cloud_API_Documentation_team-applications": { "type": "object", "description": "A collection of applications associated with a team.", @@ -58503,6 +64649,21 @@ "Acquia_Cloud_API_Documentation_Task": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_task" }, + "Acquia_Cloud_API_Documentation_Trial": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial" + }, + "Acquia_Cloud_API_Documentation_DrupalTemplate": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_drupal-template" + }, + "Acquia_Cloud_API_Documentation_DrupalTemplatesCollection": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_drupal-templates-collection" + }, + "Acquia_Cloud_API_Documentation_TrialRegion": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial-region" + }, + "Acquia_Cloud_API_Documentation_TrialRegionsCollection": { + "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_trial-regions-collection" + }, "Acquia_Cloud_API_Documentation_Invite": { "$ref": "#/components/schemas/Acquia_Cloud_API_Documentation_invite" }, diff --git a/assets/acquia-spec.version b/assets/acquia-spec.version index 7690f369..8a8ed3d7 100644 --- a/assets/acquia-spec.version +++ b/assets/acquia-spec.version @@ -1 +1 @@ -54fba484c9feb5d0ed8677801be31e14d2e3278b +333cf343d5edbd70496103290ac441fe3dfddd7f diff --git a/src/Command/Api/ApiBaseCommand.php b/src/Command/Api/ApiBaseCommand.php index 59c02092..5e8b284e 100644 --- a/src/Command/Api/ApiBaseCommand.php +++ b/src/Command/Api/ApiBaseCommand.php @@ -490,6 +490,20 @@ private function addPostParamToClient(string $paramName, ?array $paramSpec, mixe private function askFreeFormQuestion(InputArgument $argument, array $params): mixed { + if ($this->getName() === 'api:trials:create') { + if ($argument->getName() === 'site_template_id') { + $choice = $this->promptChooseTrialOption('/trials-templates', "Select a value for {$argument->getName()}"); + if ($choice !== null) { + return $choice; + } + } elseif ($argument->getName() === 'region') { + $choice = $this->promptChooseTrialOption('/trials-regions', "Select a value for {$argument->getName()}"); + if ($choice !== null) { + return $choice; + } + } + } + // Default value may be an empty array, which causes Question to choke. $default = $argument->getDefault() ?: null; $question = new Question("Enter a value for {$argument->getName()}", $default); @@ -519,6 +533,21 @@ private function askFreeFormQuestion(InputArgument $argument, array $params): mi return $this->io->askQuestion($question); } + /** + * Prompts the user to choose a trial template or region id from a + * sibling listing endpoint, since the /trials spec declares these + * arguments as plain strings with no enum of valid values. + */ + private function promptChooseTrialOption(string $path, string $questionText): ?string + { + $items = $this->cloudApiClientService->getClient()->request('get', $path); + if (!$items) { + return null; + } + $choice = $this->promptChooseFromObjectsOrArrays($items, 'id', 'name', $questionText); + return $choice?->id; + } + /** * @return null|array */ diff --git a/tests/phpunit/src/Commands/Api/ApiCommandTest.php b/tests/phpunit/src/Commands/Api/ApiCommandTest.php index 4727cbc4..3a5f1a07 100644 --- a/tests/phpunit/src/Commands/Api/ApiCommandTest.php +++ b/tests/phpunit/src/Commands/Api/ApiCommandTest.php @@ -38,24 +38,30 @@ public function testTrustedProxiesCommandExecutesHttpGet(): void $environmentId = '24-a47ac10b-58cc-4372-a567-0e02b2c3d470'; $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) ->shouldBeCalled(); - $mockBody = self::getMockResponseFromSpec( - '/environments/{environmentId}/trusted-proxies', - 'get', - '200' - ); + $mockBody = (object) [ + 'associated_cdns' => (object) [ + 'cloudflare' => (object) [ + 'is_enabled' => true, + 'label' => 'Cloudflare', + ], + ], + 'cidrs_ipv4' => ['203.0.113.0/24'], + 'cidrs_ipv6' => ['2001:db8::/32'], + ]; $this->clientProphecy->request('get', '/environments/' . $environmentId . '/trusted-proxies') ->willReturn($mockBody) ->shouldBeCalled(); - $this->command = $this->getApiCommandByName('api:environments:trusted-proxies'); + $this->command = $this->getApiCommandByName('api:environments:find-trusted-proxies'); $this->executeCommand(['environmentId' => $environmentId]); $output = $this->getDisplay(); $this->assertJson($output); $decoded = json_decode($output, true); - $this->assertArrayHasKey('is_enabled', $decoded); - $this->assertTrue($decoded['is_enabled']); - $this->assertArrayHasKey('addresses', $decoded); + $this->assertArrayHasKey('cidrs_ipv4', $decoded); + $this->assertArrayHasKey('cidrs_ipv6', $decoded); + $this->assertArrayHasKey('associated_cdns', $decoded); + $this->assertTrue($decoded['associated_cdns']['cloudflare']['is_enabled']); $this->assertEquals(0, $this->getStatusCode()); } @@ -186,6 +192,39 @@ public function testArgumentsInteraction(): void $this->assertStringContainsString('Select a value for logType', $output); } + public function testTrialCreateArgumentsInteractionPromptsTemplateAndRegionChoices(): void + { + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $this->mockRequest('listTrialTemplates', null, null, 'Templates list'); + $this->mockRequest('listTrialRegions', null, null, 'Regions list'); + $this->clientProphecy->addOption('json', ['site_name' => 'mytrialsite']) + ->shouldBeCalled(); + $this->clientProphecy->addOption('json', ['site_template_id' => 'impact']) + ->shouldBeCalled(); + $this->clientProphecy->addOption('json', ['region' => 'us-west-2']) + ->shouldBeCalled(); + $mockResponseBody = self::getMockResponseFromSpec('/trials', 'post', '202'); + $this->clientProphecy->request('post', '/trials') + ->willReturn($mockResponseBody->{'Trial created'}->value) + ->shouldBeCalled(); + $this->command = $this->getApiCommandByName('api:trials:create'); + $this->executeCommand([], [ + 'mytrialsite', + // Select a value for site_template_id: (Impact is index 1) + 1, + // Select a value for region: (US West (Oregon) is index 1) + 1, + ]); + $output = $this->getDisplay(); + $this->assertStringContainsString('Enter a value for site_name', $output); + $this->assertStringContainsString('Select a value for site_template_id', $output); + $this->assertStringContainsString('Impact', $output); + $this->assertStringContainsString('Select a value for region', $output); + $this->assertStringContainsString('US West (Oregon)', $output); + $this->assertEquals(0, $this->getStatusCode()); + } + /** * @throws \AcquiaCloudApi\Exception\ApiErrorException * @throws \JsonException