{
    "$id": "GetCertificateChainStatusRequest",
    "comment": "OCPP 2.1 Edition 1 (c) OCA, Creative Commons Attribution-NoDerivatives 4.0 International Public License",
    "definitions": {
        "CertificateStatusSourceEnumType": {
            "description": "Source of status: OCSP, CRL\r\n",
            "javaType": "CertificateStatusSourceEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": ["CRL", "OCSP"],
            "tsEnumNames": ["CRL", "OCSP"]
        },
        "HashAlgorithmEnumType": {
            "description": "Used algorithms for the hashes provided.\r\n",
            "javaType": "HashAlgorithmEnum",
            "type": "string",
            "additionalProperties": false,
            "enum": ["SHA256", "SHA384", "SHA512"],
            "tsEnumNames": ["SHA256", "SHA384", "SHA512"]
        },
        "CertificateHashDataType": {
            "javaType": "CertificateHashData",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "hashAlgorithm": {
                    "$ref": "#/definitions/HashAlgorithmEnumType"
                },
                "issuerNameHash": {
                    "description": "The hash of the issuer’s distinguished\r\nname (DN), that must be calculated over the DER\r\nencoding of the issuer’s name field in the certificate\r\nbeing checked.\r\n\r\n",
                    "type": "string",
                    "maxLength": 128
                },
                "issuerKeyHash": {
                    "description": "The hash of the DER encoded public key:\r\nthe value (excluding tag and length) of the subject\r\npublic key field in the issuer’s certificate.\r\n",
                    "type": "string",
                    "maxLength": 128
                },
                "serialNumber": {
                    "description": "The string representation of the\r\nhexadecimal value of the serial number without the\r\nprefix \"0x\" and without leading zeroes.\r\n",
                    "type": "string",
                    "maxLength": 40
                },
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                }
            },
            "required": ["hashAlgorithm", "issuerNameHash", "issuerKeyHash", "serialNumber"]
        },
        "CertificateStatusRequestInfoType": {
            "description": "Data necessary to request the revocation status of a certificate.\r\n",
            "javaType": "CertificateStatusRequestInfo",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "certificateHashData": {
                    "$ref": "#/definitions/CertificateHashDataType"
                },
                "source": {
                    "$ref": "#/definitions/CertificateStatusSourceEnumType"
                },
                "urls": {
                    "description": "URL(s) of _source_.\r\n",
                    "type": "array",
                    "additionalItems": false,
                    "items": {
                        "type": "string",
                        "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 5
                },
                "customData": {
                    "$ref": "#/definitions/CustomDataType"
                }
            },
            "required": ["source", "urls", "certificateHashData"]
        },
        "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"]
        }
    },
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "certificateStatusRequests": {
            "type": "array",
            "additionalItems": false,
            "items": {
                "$ref": "#/definitions/CertificateStatusRequestInfoType"
            },
            "minItems": 1,
            "maxItems": 4
        },
        "customData": {
            "$ref": "#/definitions/CustomDataType"
        }
    },
    "required": ["certificateStatusRequests"]
}
