delete_environment

Generated automatically from the published contract sources.

Build metadata: Registered in this build. Registration describes the default dispatcher in this build. It does not guarantee that a caller has the required credential or grant, that a tool is listed for that connection, or that the required service is configured.

A script calls this action over HTTPS at POST https://turnzero.ai/api/v1/actions/delete_environment, with a bearer credential and the action's payload as the JSON body.

Contract description

Delete an application's development environment and everything running or stored in it: its container, database, realm, credentials, files, and logs. Its version rows are withdrawn from `list_versions`. The call keeps the application, its production environment, its areas, and its declarations; production is deleted only with its application. Afterwards the application has one environment, so a deploy goes to production. On one environment the call is admitted where development's records stand: a database setup, whole or stopped partway, or a deletion of them that stopped. It then erases them, the secrets, files, and logs kept for local runs among them, and the next submit_manifest sets the database up again. Otherwise it is refused `environment_not_created`. Destructive: completes only after a person approves it in the browser.

Access and action metadata

{
  "name": "delete_environment",
  "resource": "environment",
  "tier": "destructive",
  "summary": "Delete the development environment and what it holds — container, database, realm, credentials, files, logs, and its version rows withdrawn from `list_versions` — keeping the application and its production environment; production is deleted only with its application. Afterwards a deploy goes to production. On one environment the call is admitted where development's records stand: a database setup, whole or stopped partway, or a deletion of them that stopped. It then erases them, the secrets, files, and logs kept for local runs among them, and the next submit_manifest sets the database up again. Otherwise it is refused `environment_not_created`.",
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": true
  }
}

MCP catalog entry

{
  "name": "delete_environment",
  "tier": "destructive",
  "scenario": "CHI-L0-10",
  "summary": "Delete an application's development environment and everything running or stored in it: its container, database, realm, credentials, files, and logs. Its version rows are withdrawn from `list_versions`. The call keeps the application, its production environment, its areas, and its declarations; production is deleted only with its application. Afterwards the application has one environment, so a deploy goes to production. On one environment the call is admitted where development's records stand: a database setup, whole or stopped partway, or a deletion of them that stopped. It then erases them, the secrets, files, and logs kept for local runs among them, and the next submit_manifest sets the database up again. Otherwise it is refused `environment_not_created`. Destructive: completes only after a person approves it in the browser.",
  "owners": [
    "PLD-L0-66",
    "PLD-L0-40",
    "MAPI-05"
  ]
}

request

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["application","environment"]
/properties/application The application id, from `list_applications`.

Type: string
/properties/environment `development` alone; `production` is refused `invalid_request`, because production is deleted only with its application through `delete_application`. On an application with one environment the call is refused `environment_not_created`; after the deletion the application has one environment, and a deploy goes to production.

Type: string
Pattern: ^(development|production)$
/properties/request_id Your request identity for this pending action: any string you choose. Repeating the call with the same request_id, from the same account, while the earlier pending action is still live — requested, approved, or executing — answers that pending action again and creates no second one. Once it has completed, failed, been declined, or expired, the same request_id starts a new one. Omitted, every call creates a new pending action.

Type: string

response

JSON pointer Description and constraints
"" (root) The 202 creation envelope: the pending action and its approval link (API-L0-07); the terminal outcome rides the pending record via read_pending_action. On a failed walk the outcome carries `receipts`, one receipt per kind for the members that ran before the failing member, beside `execution_failed`; a retry of the deletion runs the walk again, and a member already run answers zero removals (PLD-L0-66).

Type: object
Required fields: ["contract_version","pending_action","approval_url"]
/properties/contract_version Required value: 1
/properties/reference The short reference the platform recorded this call under, ten lowercase hexadecimal characters, the value the call’s record row carries; quote it when reporting the call.

Type: string
Pattern: ^[0-9a-f]{10}$
/properties/pending_action $ref: #/shapes/pending_action
/properties/approval_url Type: string
/properties/detail Type: string

Complete payload contract

{
  "request": {
    "type": "object",
    "required": [
      "application",
      "environment"
    ],
    "properties": {
      "application": {
        "type": "string",
        "description": "The application id, from `list_applications`."
      },
      "environment": {
        "type": "string",
        "pattern": "^(development|production)$",
        "description": "`development` alone; `production` is refused `invalid_request`, because production is deleted only with its application through `delete_application`. On an application with one environment the call is refused `environment_not_created`; after the deletion the application has one environment, and a deploy goes to production."
      },
      "request_id": {
        "type": "string",
        "description": "Your request identity for this pending action: any string you choose. Repeating the call with the same request_id, from the same account, while the earlier pending action is still live — requested, approved, or executing — answers that pending action again and creates no second one. Once it has completed, failed, been declined, or expired, the same request_id starts a new one. Omitted, every call creates a new pending action."
      }
    }
  },
  "response": {
    "type": "object",
    "description": "The 202 creation envelope: the pending action and its approval link (API-L0-07); the terminal outcome rides the pending record via read_pending_action. On a failed walk the outcome carries `receipts`, one receipt per kind for the members that ran before the failing member, beside `execution_failed`; a retry of the deletion runs the walk again, and a member already run answers zero removals (PLD-L0-66).",
    "required": [
      "contract_version",
      "pending_action",
      "approval_url"
    ],
    "properties": {
      "contract_version": {
        "const": 1
      },
      "reference": {
        "type": "string",
        "pattern": "^[0-9a-f]{10}$",
        "description": "The short reference the platform recorded this call under, ten lowercase hexadecimal characters, the value the call’s record row carries; quote it when reporting the call."
      },
      "pending_action": {
        "$ref": "#/shapes/pending_action"
      },
      "approval_url": {
        "type": "string"
      },
      "detail": {
        "type": "string"
      }
    }
  }
}

Shared contracts