{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/print-one/json-schema/print-one-generic-design-v3-dto-schema.json",
  "title": "GenericDesignV3Dto",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/print-one-openapi.json#/components/schemas/GenericDesignV3Dto",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Design ID"
    },
    "destination": {
      "type": "string",
      "enum": [
        "NETHERLANDS",
        "GERMANY",
        "INTERNATIONAL"
      ],
      "description": "The destination for the design"
    },
    "default": {
      "type": "boolean",
      "description": "Whether this design is the default for the destination"
    },
    "name": {
      "type": "string",
      "description": "Design Name"
    },
    "format": {
      "type": "string",
      "enum": [
        "POSTCARD_A5",
        "POSTCARD_A6",
        "POSTCARD_SQ15",
        "POSTCARD_MAXI",
        "POSTCARD_DIN_LONG",
        "GREETINGCARD_SQ14",
        "LETTER_A4",
        "SELFMAILER_MAXI"
      ],
      "description": "Design Format"
    },
    "labels": {
      "description": "The labels that are attached to this design",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "mergeVariables": {
      "description": "The merge variables that are used in this design",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "thumbnail": {
      "type": "string",
      "description": "The thumbnail that represents the first page of the design"
    },
    "apiVersion": {
      "type": "number",
      "description": "The API version the design was created with"
    },
    "overlay": {
      "type": "string",
      "enum": [
        "POST_NL",
        "DEUTSCHE_POST"
      ],
      "description": "Overlay"
    },
    "version": {
      "type": "number",
      "description": "The version of the design. This is incremented every time the design is updated."
    },
    "updatedAt": {
      "format": "date-time",
      "type": "string",
      "description": "Timestamp of when the design was last updated. To find the createdAt date for designs, request version 1 of your design."
    },
    "pages": {
      "description": "The pages that are attached to this design",
      "type": "array",
      "items": {
        "$ref": "#/$defs/GenericPageV2Dto"
      }
    }
  },
  "required": [
    "id",
    "destination",
    "default",
    "name",
    "format",
    "labels",
    "mergeVariables",
    "thumbnail",
    "apiVersion",
    "overlay",
    "version",
    "updatedAt",
    "pages"
  ],
  "$defs": {
    "GenericPageV2Dto": {
      "type": "object",
      "properties": {
        "orderingKey": {
          "type": "number",
          "description": "Page number"
        },
        "friendlyName": {
          "type": "string",
          "enum": [
            "Front",
            "Back",
            "Outside",
            "Inside"
          ],
          "description": "Page friendly name"
        },
        "content": {
          "type": "string",
          "description": "Template HTML content"
        }
      },
      "required": [
        "orderingKey",
        "friendlyName",
        "content"
      ]
    }
  }
}