{
  "additionalProperties": false,
  "properties": {
    "expectedContentType": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "expectedSha256": {
      "pattern": "^[a-f0-9]{64}$",
      "type": "string"
    },
    "expectedStatus": {
      "anyOf": [
        {
          "maximum": 599,
          "minimum": 200,
          "type": "integer"
        },
        {
          "items": {
            "maximum": 599,
            "minimum": 200,
            "type": "integer"
          },
          "maxItems": 8,
          "minItems": 1,
          "type": "array",
          "uniqueItems": true
        }
      ]
    },
    "forbiddenHeaders": {
      "items": {
        "maxLength": 128,
        "minLength": 1,
        "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$",
        "type": "string"
      },
      "maxItems": 20,
      "minItems": 1,
      "type": "array",
      "uniqueItems": true
    },
    "forbiddenText": {
      "items": {
        "maxLength": 1024,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "type": "array"
    },
    "jsonAssertions": {
      "items": {
        "oneOf": [
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "exists"
              },
              "pointer": {
                "maxLength": 512,
                "minLength": 0,
                "type": "string"
              },
              "value": {
                "type": "boolean"
              }
            },
            "required": [
              "pointer",
              "op",
              "value"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "equals"
              },
              "pointer": {
                "maxLength": 512,
                "minLength": 0,
                "type": "string"
              },
              "value": {}
            },
            "required": [
              "pointer",
              "op",
              "value"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "type"
              },
              "pointer": {
                "maxLength": 512,
                "minLength": 0,
                "type": "string"
              },
              "value": {
                "enum": [
                  "null",
                  "boolean",
                  "number",
                  "integer",
                  "string",
                  "array",
                  "object"
                ]
              }
            },
            "required": [
              "pointer",
              "op",
              "value"
            ],
            "type": "object"
          }
        ]
      },
      "maxItems": 20,
      "minItems": 1,
      "type": "array"
    },
    "requiredHeaders": {
      "additionalProperties": {
        "additionalProperties": false,
        "properties": {
          "match": {
            "enum": [
              "exact",
              "contains"
            ]
          },
          "value": {
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "match",
          "value"
        ],
        "type": "object"
      },
      "maxProperties": 20,
      "minProperties": 1,
      "propertyNames": {
        "maxLength": 128,
        "minLength": 1,
        "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$",
        "type": "string"
      },
      "type": "object"
    },
    "requiredText": {
      "items": {
        "maxLength": 1024,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "type": "array"
    },
    "url": {
      "maxLength": 2048,
      "minLength": 1,
      "pattern": "^https?://",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "type": "object"
}
