{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://www.dynamicpdf.com/pdf.instructions.schema.json",
  "title": "PDFDocument",
  "description": "A PDF Document",
  "type": "object",
  "definitions": {
    "color": {
      "type": "string",
      "pattern": "^(aliceBlue|antiqueWhite|aqua|aquamarine|azure|beige|bisque|black|blanchedAlmond|blue|blueViolet|brown|burlyWood|cadetBlue|chartreuse|chocolate|coral|cornflowerBlue|cornsilk|crimson|cyan|darkBlue|darkCyan|darkGoldenRod|darkGray|darkGreen|darkKhaki|darkMagenta|darkOliveGreen|darkorange|darkOrchid|darkRed|darkSalmon|darkSeaGreen|darkSlateBlue|darkSlateGray|darkTurquoise|darkViolet|deepPink|deepSkyBlue|dimGray|dodgerBlue|feldspar|fireBrick|floralWhite|forestGreen|fuchsia|gainsboro|ghostWhite|gold|goldenRod|gray|green|greenYellow|honeyDew|hotPink|indianRed|indigo|ivory|khaki|lavender|lavenderBlush|lawnGreen|lemonChiffon|lightBlue|lightCoral|lightCyan|lightGoldenRodYellow|lightGrey|lightGreen|lightPink|lightSalmon|lightSeaGreen|lightSkyBlue|lightSlateBlue|lightSlateGray|lightSteelBlue|lightYellow|lime|limeGreen|linen|magenta|maroon|mediumAquaMarine|mediumBlue|mediumOrchid|mediumPurple|mediumSeaGreen|mediumSlateBlue|mediumSpringGreen|mediumTurquoise|mediumVioletRed|midnightBlue|mintCream|mistyRose|moccasin|navajoWhite|navy|oldLace|olive|oliveDrab|orange|orangeRed|orchid|paleGoldenRod|paleGreen|paleTurquoise|paleVioletRed|papayaWhip|peachPuff|peru|pink|plum|powderBlue|purple|red|rosyBrown|royalBlue|saddleBrown|salmon|sandyBrown|seaGreen|seaShell|sienna|silver|skyBlue|slateBlue|slateGray|snow|springGreen|steelBlue|tan|teal|thistle|tomato|turquoise|violet|violetRed|wheat|white|whiteSmoke|yellow|yellowGreen|(#)?[A-F,a-f,0-9]{6}|gray\\(((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)\\)|rgb\\(((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)(,((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)){2}\\)|cmyk\\(((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)(,((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)){3}\\))$"
    },
    "rgbColor": {
      "type": "string",
      "pattern": "^(aliceBlue|antiqueWhite|aqua|aquamarine|azure|beige|bisque|black|blanchedAlmond|blue|blueViolet|brown|burlyWood|cadetBlue|chartreuse|chocolate|coral|cornflowerBlue|cornsilk|crimson|cyan|darkBlue|darkCyan|darkGoldenRod|darkGray|darkGreen|darkKhaki|darkMagenta|darkOliveGreen|darkorange|darkOrchid|darkRed|darkSalmon|darkSeaGreen|darkSlateBlue|darkSlateGray|darkTurquoise|darkViolet|deepPink|deepSkyBlue|dimGray|dodgerBlue|feldspar|fireBrick|floralWhite|forestGreen|fuchsia|gainsboro|ghostWhite|gold|goldenRod|gray|green|greenYellow|honeyDew|hotPink|indianRed|indigo|ivory|khaki|lavender|lavenderBlush|lawnGreen|lemonChiffon|lightBlue|lightCoral|lightCyan|lightGoldenRodYellow|lightGrey|lightGreen|lightPink|lightSalmon|lightSeaGreen|lightSkyBlue|lightSlateBlue|lightSlateGray|lightSteelBlue|lightYellow|lime|limeGreen|linen|magenta|maroon|mediumAquaMarine|mediumBlue|mediumOrchid|mediumPurple|mediumSeaGreen|mediumSlateBlue|mediumSpringGreen|mediumTurquoise|mediumVioletRed|midnightBlue|mintCream|mistyRose|moccasin|navajoWhite|navy|oldLace|olive|oliveDrab|orange|orangeRed|orchid|paleGoldenRod|paleGreen|paleTurquoise|paleVioletRed|papayaWhip|peachPuff|peru|pink|plum|powderBlue|purple|red|rosyBrown|royalBlue|saddleBrown|salmon|sandyBrown|seaGreen|seaShell|sienna|silver|skyBlue|slateBlue|slateGray|snow|springGreen|steelBlue|tan|teal|thistle|tomato|turquoise|violet|violetRed|wheat|white|whiteSmoke|yellow|yellowGreen|(#)?[A-F,a-f,0-9]{6}|gray\\(((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)\\)|rgb\\(((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)(,((0+)?1((\\.0+)?)?|(0+)?((\\.[0-9]+)?)?)){2}\\))$"
    },
    "lineStyle": {
      "type": "string",
      "pattern": "^(dash|dashLarge|dashSmall|dots|solid|\\[(([0-9]+((\\.[0-9]+)?)?)|(\\.[0-9]+))((,(([0-9]+((\\.[0-9]+)?)?)|(\\.[0-9]+)))+)?\\](([0-9]+((\\.[0-9]+)?)?)|(\\.[0-9]+))?)$"
    },
    "outlines": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "color": {
                "description": "Outline color.",
                "$ref": "#/definitions/rgbColor"
              },
              "expanded": {
                "description": "Expand outline by default.",
                "type": "boolean"
              },
              "style": {
                "description": "Outline style.",
                "type": "string",
                "enum": [
                  "bold",
                  "boldItalic",
                  "italic",
                  "regular"
                ]
              },
              "text": {
                "description": "Text of outline.",
                "type": "string"
              },
              "linkTo": {
                "type": "object",
                "oneOf": [
                  {
                    "properties": {
                      "url": {
                        "description": "A url to link to.",
                        "type": "string"
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "url"
                    ]
                  },
                  {
                    "properties": {
                      "inputID": {
                        "description": "The id of input to link to.",
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9_-]*$"
                      },
                      "pageOffset": {
                        "description": "The page offset from the first page to link to.",
                        "type": "integer"
                      },
                      "pageZoom": {
                        "description": "The page zoom of the target page while opening.",
                        "type": "string",
                        "enum": [
                          "retain",
                          "fitPage",
                          "fitWidth",
                          "fitHeight",
                          "fitBox"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "inputID"
                    ]
                  }
                ]
              },
              "children": {
                "$ref": "#/definitions/outlines"
              }
            },
            "additionalProperties": false,
            "required": [
              "text"
            ]
          },
          {
            "type": "object",
            "properties": {
              "fromInputID": {
                "description": "The id of input to include outlines from.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              }
            },
            "additionalProperties": false,
            "required": [
              "fromInputID"
            ]
          }
        ]
      }
    },
    "elements": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "description": "A page numbering element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "pageNumbering"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number"
              },
              "text": {
                "description": "The text containing page numbering tokens of element.",
                "type": "string"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "text",
              "placement"
            ]
          },
          {
            "description": "A text element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "text"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "text": {
                "description": "Element text.",
                "type": "string"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "text",
              "placement"
            ]
          },
          {
            "description": "A Code 128 barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "code128Barcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "height": {
                "description": "Barcode height dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "showText": {
                "description": "Show text below barcode.",
                "type": "boolean"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "textColor": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "uccEan128": {
                "description": "Barcode is a UCC/EAN-128 barcode.",
                "type": "boolean"
              },
              "processTilde": {
                "description": "Specifies tilde (~) characters should be processed to add FNC1 characters and to specify the code set.",
                "type": "boolean"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "A QR Code barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "qrCode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "valueType": {
                "description": "Specifies if the value is a string or base 64 encoded byte array.",
                "type": "string",
                "enum": [
                  "string",
                  "base64EncodedBytes"
                ]
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number"
              },
              "fnc1": {
                "description": "The FNC1 mode of barcode.",
                "type": "string",
                "enum": [
                  "none",
                  "gs1",
                  "industry"
                ]
              },
              "version": {
                "description": "The barcode version. A value of 0 means this is automatically calculated based on the data.",
                "type": "number",
                "minimum": 0,
                "maximum": 40
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "A barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "code39Barcode",
                  "code25Barcode",
                  "code93Barcode",
                  "code11Barcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "height": {
                "description": "Barcode height dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "showText": {
                "description": "Show text below barcode.",
                "type": "boolean"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "textColor": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "A GS1 databar barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "gs1DataBarBarcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "height": {
                "description": "Barcode height dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "showText": {
                "description": "Show text below barcode.",
                "type": "boolean"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "textColor": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "gs1DataBarType": {
                "description": "Gs1DataBar type of the barcode.",
                "type": "string",
                "enum": [
                  "omnidirectional",
                  "limited",
                  "expanded"
                ]
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "A stacked GS1 databar barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "stackedGs1DataBarBarcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "rowHeight": {
                "description": "Barcode height dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "showText": {
                "description": "Show text below barcode.",
                "type": "boolean"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "textColor": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "expandedStackedSegmentCount": {
                "description": "Expanded stacked barcode segment count.",
                "type": "integer",
                "minimum": 0
              },
              "stackedGs1DataBarType": {
                "description": "stacked Gs1Databar Type of the barcode.",
                "type": "string",
                "enum": [
                  "stacked",
                  "stackedOmnidirectional",
                  "expandedStacked"
                ]
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "An IATA 25 element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "iata25Barcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "height": {
                "description": "Barcode height dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "showText": {
                "description": "Show text below barcode.",
                "type": "boolean"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "textColor": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "includeCheckDigit": {
                "description": "Include a check digit.",
                "type": "boolean"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "An MSI barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "msiBarcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "height": {
                "description": "Barcode height dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "showText": {
                "description": "Show text below barcode.",
                "type": "boolean"
              },
              "font": {
                "description": "Font used by the element.",
                "type": "string"
              },
              "fontSize": {
                "description": "Element font size.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "textColor": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "appendCheckDigit": {
                "description": "Append check digit.",
                "type": "string",
                "enum": [
                  "none",
                  "mod10",
                  "mod11",
                  "mod1010",
                  "mod1110"
                ]
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "An Aztec barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "aztecBarcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "valueType": {
                "description": "Specifies if the value is a string or base 64 encoded byte array.",
                "type": "string",
                "enum": [
                  "string",
                  "base64EncodedBytes"
                ]
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "symbolSize": {
                "description": "Barcode value.",
                "type": "string",
                "enum": [
                  "auto",
                  "full",
                  "compact",
                  "rune",
                  "r15xC15Compact",
                  "r19xC19Compact",
                  "r19xC19",
                  "r23xC23Compact",
                  "r23xC23",
                  "r27xC27Compact",
                  "r27xC27",
                  "r31xC31",
                  "r37xC37",
                  "r41xC41",
                  "r45xC45",
                  "r49xC49",
                  "r53xC53",
                  "r57xC57",
                  "r61xC61",
                  "r67xC67",
                  "r71xC71",
                  "r75xC75",
                  "r79xC79",
                  "r83xC83",
                  "r87xC87",
                  "r91xC91",
                  "r95xC95",
                  "r101xC101",
                  "r105xC105",
                  "r109xC109",
                  "r113xC113",
                  "r117xC117",
                  "r121xC121",
                  "r125xC125",
                  "r131xC131",
                  "r135xC135",
                  "r139xC139",
                  "r143xC143",
                  "r147xC147",
                  "r151xC151"
                ]
              },
              "aztecErrorCorrection": {
                "description": "error correction value of the aztec barcode.",
                "type": "integer",
                "minimum": 5,
                "maximum": 95
              },
              "readerInitializationSymbol": {
                "description": "Specifies that a symbol is a reader initialization symbol.",
                "type": "boolean"
              },
              "processTilde": {
                "description": "Specifies tilde (~) characters should be processed to add FNC1 characters and to specify the code set.",
                "type": "boolean"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "A Data Matrix barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "dataMatrixBarcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "valueType": {
                "description": "Specifies if the value is a string or base 64 encoded byte array.",
                "type": "string",
                "enum": [
                  "string",
                  "base64EncodedBytes"
                ]
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "processTilde": {
                "description": "Specifies tilde (~) characters should be processed to add FNC1 characters and to specify the code set.",
                "type": "boolean"
              },
              "dataMatrixSymbolSize": {
                "description": "symbol size of the datamatrix barcode.",
                "type": "string",
                "enum": [
                  "auto",
                  "r10xC10",
                  "r12xC12",
                  "r14xC14",
                  "r16Xr16",
                  "r18xC18",
                  "r20xC20",
                  "r22xC22",
                  "r24xC24",
                  "r26xC26",
                  "r32xC32",
                  "r36xC36",
                  "r40xC40",
                  "r44xC44",
                  "r48xC48",
                  "r52xC52",
                  "r64xC64",
                  "r72xC72",
                  "r80xC80",
                  "r88xC88",
                  "r96xC96",
                  "r104xC104",
                  "r120xC120",
                  "R132xC132",
                  "r144xC144",
                  "r8xC18",
                  "r8xC32",
                  "r12xC26",
                  "r12xC36",
                  "r16xC36",
                  "r16xC48"
                ]
              },
              "dataMatrixEncodingType": {
                "description": "encoding type of the datamatrix barcode.",
                "type": "string",
                "enum": [
                  "auto",
                  "autoAscii",
                  "ascii",
                  "extendedAscii",
                  "doubleDigit",
                  "c40",
                  "text",
                  "ansiX12",
                  "edifact",
                  "base256"
                ]
              },
              "dataMatrixFunctionCharacter": {
                "description": "function character of the datamatrix barcode.",
                "type": "string",
                "enum": [
                  "none",
                  "macro05",
                  "macro06",
                  "readerProgramming",
                  "fnc1"
                ]
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "placement"
            ]
          },
          {
            "description": "A PDF417 barcode element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "pdf417Barcode"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "value": {
                "description": "Barcode value.",
                "type": "string"
              },
              "valueType": {
                "description": "Specifies if the value is a string or base 64 encoded byte array.",
                "type": "string",
                "enum": [
                  "string",
                  "base64EncodedBytes"
                ]
              },
              "xDimension": {
                "description": "Barcode x dimension.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "errorCorrection": {
                "description": "Barcode error correction level.",
                "type": "string",
                "enum": [
                  "auto",
                  "level0",
                  "level1",
                  "level2",
                  "level3",
                  "level4",
                  "level5",
                  "level6",
                  "level7",
                  "level8"
                ]
              },
              "compaction": {
                "description": "Barcode encoding computation.",
                "type": "string",
                "enum": [
                  "auto",
                  "byte",
                  "text",
                  "numeric"
                ]
              },
              "processTilde": {
                "description": "Specifies tilde (~) characters should be processed to add FNC1 characters and to specify the code set.",
                "type": "boolean"
              },
              "compactPdf417": {
                "description": "Barcode is a Compact PDF417 barcode.",
                "type": "boolean"
              },
              "columns": {
                "description": "Number of columns in the  PDF417 barcode.",
                "type": "integer"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "columns",
              "placement"
            ]
          },
          {
            "description": "An image element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "image"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "resourceName": {
                "description": "The resource file name or path of the image. Resides in your cloud environment or uploaded as resource.",
                "type": "string"
              },
              "maxWidth": {
                "description": "Maximum image width.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "maxHeight": {
                "description": "Maximum image height.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "scaleX": {
                "description": "The x scale of image.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "scaleY": {
                "description": "The y scale of image.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "resourceName",
              "placement"
            ]
          },
          {
            "description": "A line element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "line"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "X offset for the start of the line.",
                "type": "number"
              },
              "yOffset": {
                "description": "Y offset for the start of the line.",
                "type": "number"
              },
              "x2Offset": {
                "description": "X offset for the end of the line.",
                "type": "number"
              },
              "y2Offset": {
                "description": "Y offset for the end of the line.",
                "type": "number"
              },
              "width": {
                "description": "The width of the line.",
                "type": "number"
              },
              "color": {
                "description": "Element color.",
                "$ref": "#/definitions/color"
              },
              "lineStyle": {
                "description": "The style of the line.",
                "$ref": "#/definitions/lineStyle"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "x2Offset",
              "y2Offset",
              "placement"
            ]
          },
          {
            "description": "A rectangle element.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Element type.",
                "type": "string",
                "enum": [
                  "rectangle"
                ]
              },
              "placement": {
                "description": "Element placement location.",
                "type": "string",
                "enum": [
                  "topLeft",
                  "topCenter",
                  "topRight",
                  "bottomLeft",
                  "bottomCenter",
                  "bottomRight"
                ]
              },
              "xOffset": {
                "description": "Element x offset from placement point.",
                "type": "number"
              },
              "yOffset": {
                "description": "Element y offset from placement point.",
                "type": "number"
              },
              "width": {
                "description": "Width of the rectangle.",
                "type": "number"
              },
              "height": {
                "description": "Height of the rectangle.",
                "type": "number"
              },
              "cornerRadius": {
                "description": "The corner radius of the rectangle.",
                "type": "number"
              },
              "borderWidth": {
                "description": "Border width of the rectangle's border'.",
                "type": "number"
              },
              "borderStyle": {
                "description": "The style of the rectangle's border'.",
                "$ref": "#/definitions/lineStyle"
              },
              "borderColor": {
                "description": "Border color of the rectangle.",
                "$ref": "#/definitions/color"
              },
              "fillColor": {
                "description": "Fill color of the rectangle.",
                "$ref": "#/definitions/color"
              },
              "evenPages": {
                "description": "Specifies if the element should be added to even pages.",
                "type": "boolean"
              },
              "oddPages": {
                "description": "Specifies if the element should be added to odd pages.",
                "type": "boolean"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "width",
              "height",
              "placement"
            ]
          }
        ]
      }
    }
  },
  "properties": {
    "author": {
      "description": "The author property of PDF.",
      "type": "string"
    },
	"Tag": {
      "description": "The tag property of PDF.",
      "type": "boolean"
    },
    "title": {
      "description": "The title property of PDF.",
      "type": "string"
    },
    "subject": {
      "description": "The subject property of PDF.",
      "type": "string"
    },
    "creator": {
      "description": "The creator property of PDF.",
      "type": "string"
    },
	"producer": {
      "description": "The producer property of PDF.",
      "type": "string"
    },
    "keywords": {
      "description": "The keywords property of PDF (a comma-separated list)",
      "type": "string"
    },
    "fonts": {
      "description": "A list of fonts used by the PDF. This does not need to include fonts used by a DLEX.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Font name.",
            "type": "string",
            "pattern": "(?i)(?!^helvetica$|^helveticaBold$|^helveticaOblique$|^helveticaBoldOblique$|^times$|^timesBold$|^timesItalic$|^timesBoldItalic$|^courier$|^courierBold$|^courierOblique$|^courierBoldOblique$|^symbol$|^zapfDingbats$)(^[a-zA-Z0-9 _-]*$)"
          },
          "embed": {
            "description": "True will embed the font in the Pdf.",
            "type": "boolean"
          },
          "subset": {
            "description": "True will subset the font in the Pdf.",
            "type": "boolean"
          },
          "resourceName": {
            "description": "The resource file name or path of the font. Resides in your cloud environment or uploaded as resource.",
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "resourceName"
        ]
      }
    },
    "inputs": {
      "description": "The inputs used to create the PDF.",
      "type": "array",
      "items": {
        "oneOf": [
          {
            "description": "Adds a blank page to the PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "page"
                ]
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "templateId": {
                "description": "The ID of the template to apply to all pages of the DLEX layout.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "pageWidth": {
                "description": "Page width in points (1/72 inch).",
                "type": "number"
              },
              "pageHeight": {
                "description": "Page height in points (1/72 inch).",
                "type": "number"
              },
              "topMargin": {
                "description": "Image top margin in points.",
                "type": "number"
              },
              "leftMargin": {
                "description": "Image left margin in points.",
                "type": "number"
              },
              "bottomMargin": {
                "description": "Image bottom margin in points.",
                "type": "number"
              },
              "rightMargin": {
                "description": "Image right margin in points.",
                "type": "number"
              },
              "elements": {
                "$ref": "#/definitions/elements"
              }
            },
            "additionalProperties": false,
            "required": [
              "type"
            ]
          },
          {
            "description": "Converts a Html to the PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "html"
                ]
              },
              "htmlString": {
                "description": "The HTML embedded as a string.",
                "type": "string"
              },
              "resourceName": {
                "description": "The HTML file name uploaded along with request.",
                "type": "string"
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "basePath": {
                "type": "string"
              },
              "pageWidth": {
                "description": "Page width in points (1/72 inch).",
                "type": "number"
              },
              "pageHeight": {
                "description": "Page height in points (1/72 inch).",
                "type": "number"
              },
              "topMargin": {
                "description": "Image top margin in points.",
                "type": "number"
              },
              "leftMargin": {
                "description": "Image left margin in points.",
                "type": "number"
              },
              "bottomMargin": {
                "description": "Image bottom margin in points.",
                "type": "number"
              },
              "rightMargin": {
                "description": "Image right margin in points.",
                "type": "number"
              }
            },
            "additionalProperties": false,
            "oneOf": [
              {
                "required": [
                  "type",
                  "htmlString"
                ]
              },
              {
                "required": [
                  "type",
                  "resourceName"
                ]
              }
            ]
          },
		  {
            "description": "Converts word document to PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "word"
                ]
              },
              "resourceName": {
                "description": "The file name uploaded along with request.",
                "type": "string"
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },

              "textReplace":{
                "type": "array",
                "description": "The text replace information.",
				"items": {
					"type": "object",
					"properties": {
						"text": { "type": "string" },
						"replaceText": { "type": "string" },
						"matchCase": { "type": "boolean" }
					},
					"additionalProperties": false,
					"required": [
						"text", "replaceText"
					]
				}
              },
              "pageWidth": {
                "description": "Page width in points (1/72 inch).",
                "type": "number"
              },
              "pageHeight": {
                "description": "Page height in points (1/72 inch).",
                "type": "number"
              },
              "topMargin": {
                "description": "Image top margin in points.",
                "type": "number"
              },
              "leftMargin": {
                "description": "Image left margin in points.",
                "type": "number"
              },
              "bottomMargin": {
                "description": "Image bottom margin in points.",
                "type": "number"
              },
              "rightMargin": {
                "description": "Image right margin in points.",
                "type": "number"
              }
            },
            "additionalProperties": false
          },
          {
            "description": "Converts Excel document to PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "excel"
                ]
              },
              "resourceName": {
                "description": "The file name uploaded along with request.",
                "type": "string"
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "pageWidth": {
                "description": "Page width in points (1/72 inch).",
                "type": "number"
              },
              "pageHeight": {
                "description": "Page height in points (1/72 inch).",
                "type": "number"
              },
              "topMargin": {
                "description": "Image top margin in points.",
                "type": "number"
              },
              "leftMargin": {
                "description": "Image left margin in points.",
                "type": "number"
              },
              "bottomMargin": {
                "description": "Image bottom margin in points.",
                "type": "number"
              },
              "rightMargin": {
                "description": "Image right margin in points.",
                "type": "number"
              }
            },
            "additionalProperties": false
          },
          {
            "description": "Adds a DLEX layout to the PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "dlex"
                ]
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "resourceName": {
                "description": "The resource file name or path of the DLEX. Resides in your cloud environment or uploaded as resource.",
                "type": "string"
              },
              "layoutDataResourceName": {
                "description": "The resource file name of the JSON layout data. It must be uploaded as a resource.",
                "type": "string"
              },
              "templateId": {
                "description": "The ID of the template to apply to all pages of the DLEX layout.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "resourceName",
              "layoutDataResourceName"
            ]
          },
          {
            "description": "Adds a PDF to the PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "pdf"
                ]
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "resourceName": {
                "description": "The resource file name or path of PDF. Resides in your cloud environment or uploaded as resource.",
                "type": "string"
              },
              "mergeOptions": {
                "description": "The options to use when adding the PDF document.",
                "type": "object",
                "properties": {
                  "documentInfo": {
                    "description": "Include document info.",
                    "type": "boolean"
                  },
                  "documentJavaScript": {
                    "description": "Include document level JavaScript.",
                    "type": "boolean"
                  },
                  "documentProperties": {
                    "description": "Include document properties.",
                    "type": "boolean"
                  },
                  "embeddedFiles": {
                    "description": "Include embedded files.",
                    "type": "boolean"
                  },
                  "formFields": {
                    "description": "Include form fields.",
                    "type": "boolean"
                  },
                  "formsXfaData": {
                    "description": "Include XFA form data.",
                    "type": "boolean"
                  },
                  "logicalStructure": {
                    "description": "Include logical structure information.",
                    "type": "boolean"
                  },
                  "openAction": {
                    "description": "Include open action information.",
                    "type": "boolean"
                  },
                  "optionalContentInfo": {
                    "description": "Include optional content information.",
                    "type": "boolean"
                  },
                  "outlines": {
                    "description": "Include outlines/bookmarks.",
                    "type": "boolean"
                  },
                  "outputIntent": {
                    "description": "Include output intents.",
                    "type": "boolean"
                  },
                  "pageAnnotations": {
                    "description": "Include output page annotations.",
                    "type": "boolean"
                  },
                  "pageLabelsAndSections": {
                    "description": "Include output page lables and sections.",
                    "type": "boolean"
                  },
                  "rootFormField": {
                    "description": "Specifies a root form field for included form fields.",
                    "type": "string"
                  },
                  "xmpMetadata": {
                    "description": "Include XMP metadata.",
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "startPage": {
                "description": "The stating page to include (1s based).",
                "type": "integer",
                "minimum": 1
              },
              "pageCount": {
                "description": "The number of pages to include.",
                "type": "integer",
                "minimum": 1
              },
              "templateId": {
                "description": "The id of the template to apply to all pages of PDF.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "resourceName"
            ]
          },
          {
            "description": "Adds an image or multipage TIFF to the PDF.",
            "type": "object",
            "properties": {
              "type": {
                "description": "The input type.",
                "type": "string",
                "enum": [
                  "image"
                ]
              },
              "id": {
                "description": "The id used to refer to the input.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "resourceName": {
                "description": "The resource file name or path of the image. Resides in your cloud environment or uploaded as resource.",
                "type": "string"
              },
              "startPage": {
                "description": "The starting page of a multipage TIFF to include (1s based).",
                "type": "integer",
                "minimum": 1
              },
              "pageCount": {
                "description": "The number of pages from a multipage TIFF to include.",
                "type": "integer",
                "minimum": 1
              },
              "templateId": {
                "description": "The id of the template to apply to all pages of the image.",
                "type": "string",
                "pattern": "^[a-zA-Z0-9_-]*$"
              },
              "scaleX": {
                "description": "The x scale of image.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "scaleY": {
                "description": "The y scale of image.",
                "type": "number",
                "exclusiveMinimum": 0
              },
              "topMargin": {
                "description": "Image top margin in points.",
                "type": "number"
              },
              "leftMargin": {
                "description": "Image left margin in points.",
                "type": "number"
              },
              "bottomMargin": {
                "description": "Image bottom margin in points.",
                "type": "number"
              },
              "rightMargin": {
                "description": "Image right margin in points.",
                "type": "number"
              },
              "pageWidth": {
                "description": "Width of page containing image.",
                "type": "number"
              },
              "pageHeight": {
                "description": "Height of page containing image.",
                "type": "number"
              },
              "expandToFit": {
                "description": "Expand image to fit page.",
                "type": "boolean"
              },
              "shrinkToFit": {
                "description": "Shrink image to fit page.",
                "type": "boolean"
              },
              "align": {
                "description": "Horizontal alignment of image on page.",
                "type": "string",
                "enum": [
                  "left",
                  "center",
                  "right"
                ]
              },
              "vAlign": {
                "description": "Vertical alignment of image on page.",
                "type": "string",
                "enum": [
                  "top",
                  "center",
                  "bottom"
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "resourceName"
            ]
          }
        ]
      },
      "minItems": 1
    },
    "outlines": {
      "$ref": "#/definitions/outlines"
    },
    "templates": {
      "description": "Templates used by input items.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id used to refer to input.",
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]*$"
          },
          "elements": {
            "$ref": "#/definitions/elements"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      }
    },
    "security": {
      "description": "Encryption and security to apply to document..",
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "description": "AES 128 bit or 256 bit encryption.",
              "type": "string",
              "enum": [
                "aes128",
                "aes256"
              ]
            },
            "documentComponents": {
              "description": "Document components to encrypt.",
              "type": "string",
              "enum": [
                "all",
                "allExceptMetadata"
              ]
            },
            "allowAccessibility": {
              "description": "Enable accessibility features.",
              "type": "boolean"
            },
            "allowCopy": {
              "description": "Text can be copied from the PDF.",
              "type": "boolean"
            },
            "allowDocumentAssembly": {
              "description": "Document pages can be added or removed.",
              "type": "boolean"
            },
            "allowEdit": {
              "description": "PDF can be edited.",
              "type": "boolean"
            },
            "allowFormFilling": {
              "description": "Allow form filling.",
              "type": "boolean"
            },
            "allowHighResolutionPrinting": {
              "description": "PDF can be printed at high resolution.",
              "type": "boolean"
            },
            "allowPrint": {
              "description": "PDF can be printed..",
              "type": "boolean"
            },
            "allowUpdateAnnotsAndFields": {
              "description": "Allow updates to annotations and form fields.",
              "type": "boolean"
            },
            "ownerPassword": {
              "description": "PDF owner password.",
              "type": "string"
            },
            "userPassword": {
              "description": "PDF user password.",
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type"
          ]
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "description": "RC4, 128 bit encryption. AES encryption is highly recommended.",
              "type": "string",
              "enum": [
                "rc4128"
              ]
            },
            "allowAccessibility": {
              "description": "Enable accessibility features.",
              "type": "boolean"
            },
            "allowCopy": {
              "description": "Text can be copied from the PDF.",
              "type": "boolean"
            },
            "allowDocumentAssembly": {
              "description": "Document pages can be added or removed.",
              "type": "boolean"
            },
            "allowEdit": {
              "description": "PDF can be edited.",
              "type": "boolean"
            },
            "allowFormFilling": {
              "description": "Form filling allowed.",
              "type": "boolean"
            },
            "allowHighResolutionPrinting": {
              "description": "PDF can be printed at high resolution.",
              "type": "boolean"
            },
            "allowPrint": {
              "description": "PDF can be printed..",
              "type": "boolean"
            },
            "allowUpdateAnnotsAndFields": {
              "description": "Allow updates to annotations and form fields.",
              "type": "boolean"
            },
            "encryptMetadata": {
              "description": "Encrypt metadata.",
              "type": "boolean"
            },
            "ownerPassword": {
              "description": "PDF owner password.",
              "type": "string"
            },
            "userPassword": {
              "description": "PDF user password.",
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type"
          ]
        }
      ]
    },
    "formFields": {
      "description": "List of form fields to update.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Full name of form field.",
            "type": "string"
          },
          "value": {
            "description": "Value of form field.",
            "type": "string"
          },
          "flatten": {
            "description": "Flatten form field.",
            "type": "boolean"
          },
          "remove": {
            "description": "Remove form field.",
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ]
      }
    },
    "flattenAllFormFields": {
      "description": "Flatten form fields.",
      "type": "boolean"
    },
    "retainSignatureFormFields": {
      "description": "Retain signature fields.",
      "type": "boolean"
    }
  },
  "required": [
    "inputs"
  ]
}