{
    "$id": "SetNetworkProfileRequest",
    "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"]
        },
        "APNAuthenticationEnumType": {
            "description": "APN. APN_ Authentication. APN_ Authentication_ Code\r\nurn:x-oca:ocpp:uid:1:568828\r\nAuthentication method.\r\n",
            "javaType": "APNAuthenticationEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": ["CHAP", "NONE", "PAP", "AUTO"],
            "tsEnumNames": ["CHAP", "NONE", "PAP", "AUTO"]
        },
        "OCPPInterfaceEnumType": {
            "description": "Applicable Network Interface.\r\n",
            "javaType": "OCPPInterfaceEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": [
                "Wired0",
                "Wired1",
                "Wired2",
                "Wired3",
                "Wireless0",
                "Wireless1",
                "Wireless2",
                "Wireless3"
            ],
            "tsEnumNames": [
                "Wired0",
                "Wired1",
                "Wired2",
                "Wired3",
                "Wireless0",
                "Wireless1",
                "Wireless2",
                "Wireless3"
            ]
        },
        "OCPPTransportEnumType": {
            "description": "Communication_ Function. OCPP_ Transport. OCPP_ Transport_ Code\r\nurn:x-oca:ocpp:uid:1:569356\r\nDefines the transport protocol (e.g. SOAP or JSON). Note: SOAP is not supported in OCPP 2.0, but is supported by other versions of OCPP.\r\n",
            "javaType": "OCPPTransportEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": ["JSON", "SOAP"],
            "tsEnumNames": ["JSON", "SOAP"]
        },
        "OCPPVersionEnumType": {
            "description": "Communication_ Function. OCPP_ Version. OCPP_ Version_ Code\r\nurn:x-oca:ocpp:uid:1:569355\r\nDefines the OCPP version used for this communication function.\r\n",
            "javaType": "OCPPVersionEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": ["OCPP12", "OCPP15", "OCPP16", "OCPP20"],
            "tsEnumNames": ["OCPP12", "OCPP15", "OCPP16", "OCPP20"]
        },
        "VPNEnumType": {
            "description": "VPN. Type. VPN_ Code\r\nurn:x-oca:ocpp:uid:1:569277\r\nType of VPN\r\n",
            "javaType": "VPNEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": ["IKEv2", "IPSec", "L2TP", "PPTP"],
            "tsEnumNames": ["IKEv2", "IPSec", "L2TP", "PPTP"]
        },
        "APNType": {
            "description": "APN\r\nurn:x-oca:ocpp:uid:2:233134\r\nCollection of configuration data needed to make a data-connection over a cellular network.\r\n\r\nNOTE: When asking a GSM modem to dial in, it is possible to specify which mobile operator should be used. This can be done with the mobile country code (MCC) in combination with a mobile network code (MNC). Example: If your preferred network is Vodafone Netherlands, the MCC=204 and the MNC=04 which means the key PreferredNetwork = 20404 Some modems allows to specify a preferred network, which means, if this network is not available, a different network is used. If you specify UseOnlyPreferredNetwork and this network is not available, the modem will not dial in.\r\n",
            "javaType": "APN",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "apn": {
                    "description": "APN. APN. URI\r\nurn:x-oca:ocpp:uid:1:568814\r\nThe Access Point Name as an URL.\r\n",
                    "type": "string",
                    "maxLength": 512
                },
                "apnUserName": {
                    "description": "APN. APN. User_ Name\r\nurn:x-oca:ocpp:uid:1:568818\r\nAPN username.\r\n",
                    "type": "string",
                    "maxLength": 20
                },
                "apnPassword": {
                    "description": "APN. APN. Password\r\nurn:x-oca:ocpp:uid:1:568819\r\nAPN Password.\r\n",
                    "type": "string",
                    "maxLength": 20
                },
                "simPin": {
                    "description": "APN. SIMPIN. PIN_ Code\r\nurn:x-oca:ocpp:uid:1:568821\r\nSIM card pin code.\r\n",
                    "type": "integer"
                },
                "preferredNetwork": {
                    "description": "APN. Preferred_ Network. Mobile_ Network_ ID\r\nurn:x-oca:ocpp:uid:1:568822\r\nPreferred network, written as MCC and MNC concatenated. See note.\r\n",
                    "type": "string",
                    "maxLength": 6
                },
                "useOnlyPreferredNetwork": {
                    "description": "APN. Use_ Only_ Preferred_ Network. Indicator\r\nurn:x-oca:ocpp:uid:1:568824\r\nDefault: false. Use only the preferred Network, do\r\nnot dial in when not available. See Note.\r\n",
                    "type": "boolean",
                    "default": false
                },
                "apnAuthentication": {
                    "$ref": "#/definitions/APNAuthenticationEnumType"
                }
            },
            "required": ["apn", "apnAuthentication"]
        },
        "NetworkConnectionProfileType": {
            "description": "Communication_ Function\r\nurn:x-oca:ocpp:uid:2:233304\r\nThe NetworkConnectionProfile defines the functional and technical parameters of a communication link.\r\n",
            "javaType": "NetworkConnectionProfile",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "apn": {
                    "$ref": "#/definitions/APNType"
                },
                "ocppVersion": {
                    "$ref": "#/definitions/OCPPVersionEnumType"
                },
                "ocppTransport": {
                    "$ref": "#/definitions/OCPPTransportEnumType"
                },
                "ocppCsmsUrl": {
                    "description": "Communication_ Function. OCPP_ Central_ System_ URL. URI\r\nurn:x-oca:ocpp:uid:1:569357\r\nURL of the CSMS(s) that this Charging Station  communicates with.\r\n",
                    "type": "string",
                    "maxLength": 512
                },
                "messageTimeout": {
                    "description": "Duration in seconds before a message send by the Charging Station via this network connection times-out.\r\nThe best setting depends on the underlying network and response times of the CSMS.\r\nIf you are looking for a some guideline: use 30 seconds as a starting point.\r\n",
                    "type": "integer"
                },
                "securityProfile": {
                    "description": "This field specifies the security profile used when connecting to the CSMS with this NetworkConnectionProfile.\r\n",
                    "type": "integer"
                },
                "ocppInterface": {
                    "$ref": "#/definitions/OCPPInterfaceEnumType"
                },
                "vpn": {
                    "$ref": "#/definitions/VPNType"
                }
            },
            "required": [
                "ocppVersion",
                "ocppTransport",
                "ocppCsmsUrl",
                "messageTimeout",
                "securityProfile",
                "ocppInterface"
            ]
        },
        "VPNType": {
            "description": "VPN\r\nurn:x-oca:ocpp:uid:2:233268\r\nVPN Configuration settings\r\n",
            "javaType": "VPN",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                },
                "server": {
                    "description": "VPN. Server. URI\r\nurn:x-oca:ocpp:uid:1:569272\r\nVPN Server Address\r\n",
                    "type": "string",
                    "maxLength": 512
                },
                "user": {
                    "description": "VPN. User. User_ Name\r\nurn:x-oca:ocpp:uid:1:569273\r\nVPN User\r\n",
                    "type": "string",
                    "maxLength": 20
                },
                "group": {
                    "description": "VPN. Group. Group_ Name\r\nurn:x-oca:ocpp:uid:1:569274\r\nVPN group.\r\n",
                    "type": "string",
                    "maxLength": 20
                },
                "password": {
                    "description": "VPN. Password. Password\r\nurn:x-oca:ocpp:uid:1:569275\r\nVPN Password.\r\n",
                    "type": "string",
                    "maxLength": 20
                },
                "key": {
                    "description": "VPN. Key. VPN_ Key\r\nurn:x-oca:ocpp:uid:1:569276\r\nVPN shared secret.\r\n",
                    "type": "string",
                    "maxLength": 255
                },
                "type": {
                    "$ref": "#/definitions/VPNEnumType"
                }
            },
            "required": ["server", "user", "password", "key", "type"]
        }
    },
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "customData": {
            "$ref": "#/definitions/CustomDataType"
        },
        "configurationSlot": {
            "description": "Slot in which the configuration should be stored.\r\n",
            "type": "integer"
        },
        "connectionData": {
            "$ref": "#/definitions/NetworkConnectionProfileType"
        }
    },
    "required": ["configurationSlot", "connectionData"]
}
