{
    "$id": "GetVariablesResponse",
    "comment": "OCPP 2.0.1 FINAL",
    "definitions": {
        "CustomDataType": {
            "description": "This class does not get 'AdditionalProperties = false' in the schema generation, so it can be extended with arbitrary JSON properties to allow adding custom data.",
            "javaType": "CustomData",
            "type": "object",
            "properties": {
                "vendorId": {
                    "type": "string",
                    "maxLength": 255
                }
            },
            "required": ["vendorId"]
        },
        "AttributeEnumType": {
            "description": "Attribute type for which value is requested. When absent, default Actual is assumed.\r\n",
            "javaType": "AttributeEnum",
            "type": "string",
            "default": "Actual",
            "additionalProperties": false,
            "enum": ["Actual", "Target", "MinSet", "MaxSet"],
            "tsEnumNames": ["Actual", "Target", "MinSet", "MaxSet"]
        },
        "GetVariableStatusEnumType": {
            "description": "Result status of getting the variable.\r\n\r\n",
            "javaType": "GetVariableStatusEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": [
                "Accepted",
                "Rejected",
                "UnknownComponent",
                "UnknownVariable",
                "NotSupportedAttributeType"
            ],
            "tsEnumNames": [
                "Accepted",
                "Rejected",
                "UnknownComponent",
                "UnknownVariable",
                "NotSupportedAttributeType"
            ]
        },
        "ComponentType": {
            "description": "A physical or logical component\r\n",
            "javaType": "Component",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "evse": {
                    "$ref": "#/definitions/EVSEType"
                },
                "name": {
                    "description": "Name of the component. Name should be taken from the list of standardized component names whenever possible. Case Insensitive. strongly advised to use Camel Case.\r\n",
                    "type": "string",
                    "maxLength": 50
                },
                "instance": {
                    "description": "Name of instance in case the component exists as multiple instances. Case Insensitive. strongly advised to use Camel Case.\r\n",
                    "type": "string",
                    "maxLength": 50
                }
            },
            "required": ["name"]
        },
        "EVSEType": {
            "description": "EVSE\r\nurn:x-oca:ocpp:uid:2:233123\r\nElectric Vehicle Supply Equipment\r\n",
            "javaType": "EVSE",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "id": {
                    "description": "Identified_ Object. MRID. Numeric_ Identifier\r\nurn:x-enexis:ecdm:uid:1:569198\r\nEVSE Identifier. This contains a number (&gt; 0) designating an EVSE of the Charging Station.\r\n",
                    "type": "integer"
                },
                "connectorId": {
                    "description": "An id to designate a specific connector (on an EVSE) by connector index number.\r\n",
                    "type": "integer"
                }
            },
            "required": ["id"]
        },
        "GetVariableResultType": {
            "description": "Class to hold results of GetVariables request.\r\n",
            "javaType": "GetVariableResult",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "attributeStatusInfo": {
                    "$ref": "#/definitions/StatusInfoType"
                },
                "attributeStatus": {
                    "$ref": "#/definitions/GetVariableStatusEnumType"
                },
                "attributeType": {
                    "$ref": "#/definitions/AttributeEnumType"
                },
                "attributeValue": {
                    "description": "Value of requested attribute type of component-variable. This field can only be empty when the given status is NOT accepted.\r\n\r\nThe Configuration Variable &lt;&lt;configkey-reporting-value-size,ReportingValueSize&gt;&gt; can be used to limit GetVariableResult.attributeValue, VariableAttribute.value and EventData.actualValue. The max size of these values will always remain equal. \r\n\r\n",
                    "type": "string",
                    "maxLength": 2500
                },
                "component": {
                    "$ref": "#/definitions/ComponentType"
                },
                "variable": {
                    "$ref": "#/definitions/VariableType"
                }
            },
            "required": ["attributeStatus", "component", "variable"]
        },
        "StatusInfoType": {
            "description": "Element providing more information about the status.\r\n",
            "javaType": "StatusInfo",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "reasonCode": {
                    "description": "A predefined code for the reason why the status is returned in this response. The string is case-insensitive.\r\n",
                    "type": "string",
                    "maxLength": 20
                },
                "additionalInfo": {
                    "description": "Additional text to provide detailed information.\r\n",
                    "type": "string",
                    "maxLength": 512
                }
            },
            "required": ["reasonCode"]
        },
        "VariableType": {
            "description": "Reference key to a component-variable.\r\n",
            "javaType": "Variable",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "name": {
                    "description": "Name of the variable. Name should be taken from the list of standardized variable names whenever possible. Case Insensitive. strongly advised to use Camel Case.\r\n",
                    "type": "string",
                    "maxLength": 50
                },
                "instance": {
                    "description": "Name of instance in case the variable exists as multiple instances. Case Insensitive. strongly advised to use Camel Case.\r\n",
                    "type": "string",
                    "maxLength": 50
                }
            },
            "required": ["name"]
        }
    },
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "customData": {
            "$ref": "#/definitions/CustomDataType"
        },
        "getVariableResult": {
            "type": "array",
            "additionalItems": false,
            "items": {
                "$ref": "#/definitions/GetVariableResultType"
            },
            "minItems": 1
        }
    },
    "required": ["getVariableResult"]
}
