{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "windowSize": {
            "type": "object",
            "properties": {
                "width": {
                    "type": "integer",
                    "default": 1024
                },
                "height": {
                    "type": "integer",
                    "default": 768
                }
            }
        },
        "shotSize": {
            "type": "object",
            "properties": {
                "width": {
                    "type": [
                        "integer",
                        "string"
                    ],
                    "default": 1024
                },
                "height": {
                    "type": [
                        "integer",
                        "string"
                    ],
                    "default": 768
                }
            }
        },
        "shotOffset": {
            "type": "object",
            "properties": {
                "left": {
                    "type": "integer",
                    "default": 0
                },
                "right": {
                    "type": "integer",
                    "default": 0
                },
                "top": {
                    "type": "integer",
                    "default": 0
                },
                "bottom": {
                    "type": "integer",
                    "default": 0
                }
            }
        },
        "phantomConfig": {
            "type": "object",
            "properties": {
                "ignore-ssl-errors": {
                    "type": "string",
                    "default": "false"
                }
            }
        },
        "cookies": {
            "type": "array",
            "items": {}
        },
        "customHeaders": {
            "type": [
                "null",
                "object"
            ],
            "default": null
        },
        "defaultWhiteBackground": {
            "type": "boolean",
            "default": false
        },
        "customCSS": {
            "type": "string",
            "default": ""
        },
        "quality": {
            "type": "integer",
            "default": 75
        },
        "streamType": {
            "type": "string",
            "default": "png"
        },
        "renderDelay": {
            "type": "integer",
            "default": 0
        },
        "timeout": {
            "type": "integer",
            "default": 0
        },
        "takeShotOnCallback": {
            "type": "boolean",
            "default": false
        },
        "errorIfStatusIsNot200": {
            "type": "boolean",
            "default": false
        },
        "errorIfJSException": {
            "type": "boolean",
            "default": false
        },
        "captureSelector": {
            "type": [
                "boolean",
                "string"
            ],
            "default": false
        }
    },
    "oneOf": [
        {
            "properties": {
                "siteType": {
                    "type": "string",
                    "enum": [
                        "url"
                    ]
                },
                "url": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "siteType",
                "url"
            ]
        },
        {
            "properties": {
                "siteType": {
                    "type": "string",
                    "enum": [
                        "html"
                    ]
                },
                "html": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "siteType",
                "html"
            ]
        }
    ]
}