{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/antwork-io/json-schema/antwork-io-post-update-schema.json",
  "title": "PostUpdate",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/antwork-io-openapi.json#/components/schemas/PostUpdate",
  "type": "object",
  "minProperties": 1,
  "additionalProperties": false,
  "properties": {
    "text": {
      "type": "string",
      "description": "The new text. Hashtags already in it stay."
    },
    "hashtags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Added to the text where the platform publishes them (YouTube keeps them as tags)."
    },
    "goal": {
      "type": "string",
      "description": "A goal to tag the post with, e.g. Educate, Engage, Promote, Entertain."
    },
    "accountId": {
      "type": "string",
      "description": "Move the post to this account; its platform follows."
    },
    "options": {
      "type": [
        "object",
        "null"
      ],
      "description": "Platform settings to set, unkeyed (`{privacyStatus: 'unlisted'}`, Pinterest `{boardId}`). A key given `null` is removed; `null` removes them all."
    },
    "newBoardName": {
      "type": "string",
      "description": "Pinterest: create a board with this name on the account and pin to it."
    },
    "scheduledFor": {
      "type": "string",
      "format": "date-time",
      "description": "A scheduled post moves to this time; a draft only keeps it as a proposal."
    },
    "status": {
      "const": "draft",
      "description": "Move a scheduled post back to draft (its queued publish is cancelled)."
    }
  }
}