{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Copy Instance",
  "description": "Copy configuration from one instance to another. The source and destination must be instances of the same component. Source params (minus any fields marked non-copyable in the bundle) are written to the destination, then a plan deployment is created on the destination so the changes can be reviewed before applying.",
  "type": "object",
  "required": [],
  "properties": {
    "overrides": {
      "type": "object",
      "title": "Parameter Overrides",
      "description": "Optional overrides that are deep-merged onto the source params before writing to the destination. Useful for tweaking environment-specific values (e.g., instance sizes).",
      "default": {},
      "x-gql-type": "map"
    },
    "copySecrets": {
      "type": "boolean",
      "title": "Copy Secrets",
      "description": "When true, copies secret values from the source instance to the destination. Defaults to false.",
      "default": false
    },
    "copyRemoteReferences": {
      "type": "boolean",
      "title": "Copy Remote References",
      "description": "When true, copies remote resource references from the source instance to the destination. Defaults to false.",
      "default": false
    },
    "message": {
      "type": "string",
      "title": "Deployment Message",
      "description": "An optional message attached to the plan deployment created on the destination, similar to a commit message.",
      "maxLength": 1200,
      "examples": ["Copy production config to staging"]
    }
  }
}
