{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/plainrouter/main/json-schema/plainrouter-deployment-plan-read-schema.json", "title": "DeploymentPlanRead", "x-generated": "2026-10-18", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/dev-plainrouter-openapi.json#/components/schemas/DeploymentPlanRead", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "id": { "type": "string" }, "platform_ad_account_id": { "type": "integer" }, "review_version": { "type": "string", "description": "Current review version. Pass this value when executing the plan you reviewed.", "pattern": "^[a-f0-9]{64}$" }, "copy": { "type": [ "object", "null" ], "properties": { "primary_text": { "type": "string" }, "headline": { "type": "string" }, "description": { "type": "string" }, "cta": { "type": "string", "enum": [ "learn_more", "shop_now", "sign_up" ] } }, "required": [ "primary_text", "headline", "description", "cta" ] }, "landing_page": { "type": "string" }, "creatives": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "position": { "type": "integer" }, "copy": { "type": [ "object", "null" ], "description": "Optional complete per-ad copy override; null uses the plan copy.", "properties": { "primary_text": { "type": "string" }, "headline": { "type": "string" }, "description": { "type": "string" }, "cta": { "type": "string", "enum": [ "learn_more", "shop_now", "sign_up" ] } }, "required": [ "primary_text", "headline", "description", "cta" ] }, "landing_page": { "type": [ "string", "null" ], "description": "Optional per-ad HTTPS landing URL override; null uses the plan landing URL.", "maxLength": 2048 }, "resolved_copy": { "type": [ "object", "null" ], "properties": { "primary_text": { "type": "string" }, "headline": { "type": "string" }, "description": { "type": "string" }, "cta": { "type": "string", "enum": [ "learn_more", "shop_now", "sign_up" ] } }, "required": [ "primary_text", "headline", "description", "cta" ] }, "resolved_landing_page": { "type": "string" }, "copy_differs": { "type": "boolean" }, "landing_page_differs": { "type": "boolean" } }, "required": [ "id", "position", "copy", "landing_page", "resolved_copy", "resolved_landing_page", "copy_differs", "landing_page_differs" ] } } }, "required": [ "id", "platform_ad_account_id", "review_version" ] }