{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "region": {
            "type": "string"
        },
        "onDemandAutoScaleGroup": {
            "type": "string"
        },
        "spotAutoScaleGroup": {
            "type": "string"
        },
        "numberOfDaysBackToConsider": {
            "type": "integer"
        },
        "awsAccessKeyId": {
            "type": "string"
        },
        "awsSecretAccessKey": {
            "type": "string"
        },
        "maxSpotPerHour": {
            "type": "integer"
        },
        "scalesOn": {
            "type": "object",
            "properties": {
                "requestCount": {
                    "type": "object",
                    "properties": {
                        "perServerThresholdPerMin": {
                            "type": "integer"
                        }
                    },
                    "required": [
                        "perServerThresholdPerMin"
                    ]
                },
                "cpu": {
                    "type": "object",
                    "properties": {
                        "upperThresholdPercent": {
                            "type": "integer"
                        },
                        "scalesWhenGreaterThanThresholdForSecs": {
                            "type": "integer"
                        }
                    },
                    "required": [
                        "upperThresholdPercent",
                        "scalesWhenGreaterThanThresholdForSecs"
                    ]
                }
            }
        }
    },
    "required": [
        "region",
        "onDemandAutoScaleGroup",
        "spotAutoScaleGroup",
        "awsAccessKeyId",
        "awsSecretAccessKey",
        "maxSpotPerHour",
        "scalesOn"
    ]
}