{
    "$id": "PublishFirmwareRequest",
    "comment": "OCPP 2.0.1 FINAL",
    "definitions": {
        "CustomDataType": {
            "description": "Represents OCPP CustomData. Allows vendor-specific extension properties.",
            "javaType": "CustomData",
            "type": "object",
            "properties": {
                "vendorId": {
                    "type": "string",
                    "maxLength": 255
                }
            },
            "required": ["vendorId"]
        }
    },
    "type": "object",
    "additionalProperties": true,
    "properties": {
        "customData": {
            "$ref": "#/definitions/CustomDataType"
        },
        "location": {
            "description": "This contains a string containing a URI pointing to a\r\nlocation from which to retrieve the firmware.\r\n",
            "type": "string",
            "maxLength": 512
        },
        "retries": {
            "description": "This specifies how many times Charging Station must try\r\nto download the firmware before giving up. If this field is not\r\npresent, it is left to Charging Station to decide how many times it wants to retry.\r\n",
            "type": "integer",
            "minimum": -2147483648,
            "maximum": 2147483647
        },
        "checksum": {
            "description": "The MD5 checksum over the entire firmware file as a hexadecimal string of length 32. \r\n",
            "type": "string",
            "maxLength": 32
        },
        "requestId": {
            "description": "The Id of the request.\r\n",
            "type": "integer",
            "minimum": -2147483648,
            "maximum": 2147483647
        },
        "retryInterval": {
            "description": "The interval in seconds\r\nafter which a retry may be\r\nattempted. If this field is not\r\npresent, it is left to Charging\r\nStation to decide how long to wait\r\nbetween attempts.\r\n",
            "type": "integer",
            "minimum": -2147483648,
            "maximum": 2147483647
        }
    },
    "required": ["location", "checksum", "requestId"]
}
