{
    "openapi": "3.0.3",
    "info": {
        "title": "Registration Authority (RA)",
        "description": "",
        "license": {
            "name": ""
        },
        "version": "1.0.0"
    },
    "paths": {
        "/dcms/device/na": {
            "get": {
                "tags": [
                    "crate::ra_endpoint::ee_registration"
                ],
                "operationId": "handle_get_ee",
                "parameters": [
                    {
                        "name": "canonicalId",
                        "in": "query",
                        "description": "Canonical id",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    },
                    {
                        "name": "deviceId",
                        "in": "query",
                        "description": "Device id",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64",
                            "nullable": true,
                            "minimum": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Registration json with canonical id, device id and device policy",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PayloadEeRegistrationResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            },
            "post": {
                "tags": [
                    "crate::ra_endpoint::ee_registration"
                ],
                "operationId": "handle_ee_registration",
                "requestBody": {
                    "description": "PayloadEeRegistration",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PayloadEeRegistration"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Registration json with canonical id, device id and device policy",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PayloadEeRegistrationResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            },
            "patch": {
                "tags": [
                    "crate::ra_endpoint::ee_registration"
                ],
                "operationId": "handle_patch_ee",
                "requestBody": {
                    "description": "PayloadEePatchStatus",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PayloadEePatchStatus"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Device status updated successfully"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/dcms/policy/na": {
            "get": {
                "tags": [
                    "crate::ra_endpoint::ee_registration"
                ],
                "operationId": "handle_get_policy",
                "parameters": [
                    {
                        "name": "canonicalId",
                        "in": "query",
                        "description": "Canonical ID of the EE registration",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Policy file downloaded successfully"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/healthcheck": {
            "get": {
                "tags": [
                    "Service"
                ],
                "summary": "Provide a health-check endpoint for the service",
                "description": "Simply responds with an HTTP Status of 200",
                "operationId": "healthcheck",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v3/authorization-certificate": {
            "get": {
                "tags": [
                    "Authorization Certificates"
                ],
                "summary": "1609.2.1 SS 6.3.5.3 Authorization Certificate Downoad",
                "description": "Download a generated RA Certificate",
                "operationId": "download_auth_certificate",
                "parameters": [
                    {
                        "name": "filename",
                        "in": "query",
                        "description": "download filename",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    },
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": true
                    },
                    {
                        "name": "Ieee-1609.2.1-Authorization",
                        "in": "header",
                        "description": "EeRaDownloadRequestSpdu or EeDownloadRequestPlainSpdu",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Zip file content",
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "attachment filename"
                            }
                        },
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "Request range no satisfiable"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            },
            "post": {
                "tags": [
                    "Authorization Certificates"
                ],
                "summary": "1609.2.1 SS 6.3.5.2 Authorization Certificate Request",
                "description": "Initiate generation of an RA Certificate",
                "operationId": "request_auth_certificate",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    }
                ],
                "requestBody": {
                    "description": "EaRaCertRequestSpdu",
                    "content": {
                        "application/octet-stream": {
                            "schema": {
                                "type": "string",
                                "format": "binary"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "202": {
                        "description": "RaEeCertAckSpdu",
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/ca-certificate": {
            "get": {
                "tags": [
                    "Certificate Downloads"
                ],
                "summary": "1609.2.1 SS 6.3.5.9 Download Individual CA Certificate",
                "description": "Download the CA certificate specified by the certId query parameter.",
                "operationId": "download_ca_certificate",
                "parameters": [
                    {
                        "name": "certId",
                        "in": "query",
                        "description": "Certificate Id. 16 character hex string",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "maxLength": 16,
                            "minLength": 16,
                            "pattern": "^[a-fA-F0-9]{16}$"
                        },
                        "example": "0123456789ABCDEF"
                    },
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "C-OER encoded CA Certificate file",
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "attachment filename"
                            }
                        },
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "Request range no satisfiable"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/ccf-ctl": {
            "get": {
                "tags": [
                    "Certificate Downloads"
                ],
                "summary": "1609.2.1 SS 6.3.5.7 Download CCF including CTL",
                "description": "Download the CCF",
                "operationId": "download_certificate_chain_file",
                "parameters": [
                    {
                        "name": "ctlSeriesId",
                        "in": "query",
                        "description": "Id of the required CTL Series. 16 character hex string",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "maxLength": 16,
                            "minLength": 16,
                            "pattern": "^[a-fA-F0-9]{16}$"
                        },
                        "example": "0123456789ABCDEF"
                    },
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File containing a CertficiateChainSpdu",
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "attachment filename"
                            }
                        },
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "Request range no satisfiable"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/certificate-management-info-status": {
            "get": {
                "tags": [
                    "Certificate management information status download"
                ],
                "summary": "1609.2.1 SS6.3.5.14 Certificate management information status download; table 23",
                "description": "Download the RA Certificate management information status",
                "operationId": "certificate_management_info_status_download",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A certificate management information status file as defined in 8.7",
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "attachment filename"
                            }
                        },
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "Request range no satisfiable"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/composite-crl-ctl": {
            "get": {
                "tags": [
                    "Composite CRL including CTL download"
                ],
                "summary": "1609.2.1 SS 6.3.5.8 Composite CRL including CTL download; table 17",
                "operationId": "composite_crl_ctl",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    },
                    {
                        "name": "ctlSeriesId",
                        "in": "query",
                        "description": "Id of the required CTL Series. 16 character hex string",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "maxLength": 16,
                            "minLength": 16,
                            "pattern": "^[a-fA-F0-9]{16}$"
                        },
                        "example": "0123456789ABCDEF"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Composite CRL file",
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "requested range not satisfiable: retry without HTTP Range"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/crl": {
            "get": {
                "tags": [
                    "Individual CRL download"
                ],
                "summary": "1609.2.1 SS 6.3.5.10 Individual CRL download; table 19",
                "description": "Download the RA Certificate",
                "operationId": "individual_crl_download",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    },
                    {
                        "name": "craca",
                        "in": "query",
                        "description": "Id of the required CRL Series. 16 character hex string",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "maxLength": 16,
                            "minLength": 16,
                            "pattern": "^[a-fA-F0-9]{16}$"
                        },
                        "example": "0123456789ABCDEF"
                    },
                    {
                        "name": "crlSeries",
                        "in": "query",
                        "description": "Id of the required CRL Series. 16 character hex string",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "maxLength": 16,
                            "minLength": 16,
                            "pattern": "^[a-fA-F0-9]{16}$"
                        },
                        "example": "0123456789ABCDEF"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Individual CRL file",
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "requested range not satisfiable: retry without HTTP Range"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/ctl": {
            "get": {
                "tags": [
                    "Certificate Downloads"
                ],
                "summary": "1609.2.1 SS 6.3.5.11 Download Certificate Trust List (CTL)",
                "description": "Download the specified CTL",
                "operationId": "download_certificate_trust_list",
                "parameters": [
                    {
                        "name": "ctlSeriesId",
                        "in": "query",
                        "description": "Id ofr the required CTL Series. 16 character hex string",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "maxLength": 16,
                            "minLength": 16,
                            "pattern": "^[a-fA-F0-9]{16}$"
                        },
                        "example": "0123456789ABCDEF"
                    },
                    {
                        "name": "ctlSequenceNumber",
                        "in": "query",
                        "description": "Optional sequence number of the requested CTL",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "nullable": true,
                            "maximum": 65535,
                            "minimum": 0
                        }
                    },
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "It is a zip file The content is a single\n      directory containing individual CTL files. The content of each individual\n      CTL file is a C-OER encoded MultiSignedCtlSpdu",
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "attachment filename"
                            }
                        },
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "Request range no satisfiable"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/ra-certificate": {
            "get": {
                "tags": [
                    "Certificate Downloads"
                ],
                "summary": "",
                "description": "1609.2.1 SS 6.3.5.12 Download RA Certificate\n\nDownload the RA Certificate",
                "operationId": "download_ra_certificate",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificate raCert",
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "requested range not satisfiable: retry without HTTP Range"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        },
        "/v3/successor-enrollment-certificate": {
            "get": {
                "tags": [
                    "Successor Enrollment Certificates"
                ],
                "summary": "1609.2.1 SS 6.3.5.5 Successor Enrollment Certificate Download",
                "description": "Download generated successor enrollment certificate",
                "operationId": "download_successor_certificate",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    },
                    {
                        "name": "Ieee-1609.2.1-Authorization",
                        "in": "header",
                        "description": "EeRaDownloadRequestSpdu or EeDownloadRequestPlainSpdu",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "C-OER encoded EcaEeCertResponseSpdu",
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "attachment filename"
                            }
                        },
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "Indicates the issue: 400-<error code>"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "416": {
                        "description": "Request range no satisfiable"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            },
            "post": {
                "tags": [
                    "Successor Enrollment Certificates"
                ],
                "summary": "1609.2.1 SS 6.3.5.4 Successor Enrollment Certificate request",
                "description": "Initiate generation of a successor enrollment certificate",
                "operationId": "request_successor_enrollment_certificate",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Bearer [access-token/AT]",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "nullable": true
                        }
                    }
                ],
                "requestBody": {
                    "description": "EaRaSuccessorEnrollmentCertRequestSpdu",
                    "content": {
                        "application/octet-stream": {
                            "schema": {
                                "type": "string",
                                "format": "binary"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "202": {
                        "description": "RaEeEnrollmentCertAckSpdu",
                        "content": {
                            "application/octet-stream": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden",
                        "headers": {
                            "Ieee-1609.2.1-Error": {
                                "schema": {
                                    "type": "string"
                                },
                                "description": "returned if 'scmsv3Error=fine'"
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "429": {
                        "description": "Too many requests"
                    },
                    "500": {
                        "description": "Internal server error"
                    },
                    "503": {
                        "description": "Service unavailable"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "CanonicalIdParam": {
                "type": "object",
                "properties": {
                    "canonical_id": {
                        "type": "string",
                        "nullable": true
                    },
                    "device_id": {
                        "type": "integer",
                        "format": "int64",
                        "nullable": true,
                        "minimum": 0
                    }
                }
            },
            "Caterpillar": {
                "oneOf": [
                    {
                        "type": "object",
                        "required": [
                            "Obk"
                        ],
                        "properties": {
                            "Obk": {
                                "$ref": "#/components/schemas/CaterpillarObk"
                            }
                        }
                    },
                    {
                        "type": "object",
                        "required": [
                            "Ubk"
                        ],
                        "properties": {
                            "Ubk": {
                                "$ref": "#/components/schemas/CaterpillarUbk"
                            }
                        }
                    }
                ]
            },
            "CaterpillarObk": {
                "type": "object",
                "required": [
                    "vid",
                    "pub_key_sign",
                    "pub_key_encrypt",
                    "f_sign",
                    "f_encrypt",
                    "exp_type",
                    "hash_id",
                    "certificate_type"
                ],
                "properties": {
                    "certificate_type": {
                        "$ref": "#/components/schemas/CertificateType"
                    },
                    "exp_type": {
                        "$ref": "#/components/schemas/ExpansionType"
                    },
                    "f_encrypt": {
                        "type": "string",
                        "format": "binary"
                    },
                    "f_sign": {
                        "type": "string",
                        "format": "binary"
                    },
                    "hash_id": {
                        "type": "string"
                    },
                    "pub_key_encrypt": {
                        "$ref": "#/components/schemas/VerifyingKey"
                    },
                    "pub_key_sign": {
                        "$ref": "#/components/schemas/VerifyingKey"
                    },
                    "vid": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "CaterpillarStatus": {
                "type": "string",
                "description": "Initially all caterpillar are set as `ToBeProcessed`.\nThis status controls which records should be filtered when loading the\ncaterpillars for processing.",
                "enum": [
                    "Processed",
                    "Processing",
                    "Queued",
                    "ToBeProcessed"
                ]
            },
            "CaterpillarUbk": {
                "type": "object",
                "required": [
                    "vid",
                    "pub_key_sign",
                    "f_sign",
                    "exp_type",
                    "hash_id",
                    "certificate_type"
                ],
                "properties": {
                    "certificate_type": {
                        "$ref": "#/components/schemas/CertificateType"
                    },
                    "exp_type": {
                        "$ref": "#/components/schemas/ExpansionType"
                    },
                    "f_sign": {
                        "type": "string",
                        "format": "binary"
                    },
                    "hash_id": {
                        "type": "string"
                    },
                    "pub_key_sign": {
                        "$ref": "#/components/schemas/VerifyingKey"
                    },
                    "vid": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "CcfCtlQueryParams": {
                "type": "object",
                "required": [
                    "ctlSeriesId"
                ],
                "properties": {
                    "ctlSeriesId": {
                        "type": "string"
                    }
                }
            },
            "CertFilename": {
                "type": "object",
                "properties": {
                    "filename": {
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "CertificateConfigInfo": {
                "type": "object",
                "required": [
                    "name",
                    "crypto_algorithm",
                    "certificate_type",
                    "start",
                    "expiration",
                    "in_use",
                    "request_for_renewal",
                    "concurrently_valid_certificates"
                ],
                "properties": {
                    "certificate_type": {
                        "$ref": "#/components/schemas/CertificateType"
                    },
                    "concurrently_valid_certificates": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "crypto_algorithm": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CryptoAlgorithmType"
                        }
                    },
                    "expiration": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "in_use": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "name": {
                        "type": "string"
                    },
                    "request_for_renewal": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "start": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    }
                }
            },
            "CertificateId": {
                "type": "object",
                "description": "Certificate Id - 16 digit hexadecimal value",
                "required": [
                    "certId"
                ],
                "properties": {
                    "certId": {
                        "type": "string"
                    }
                }
            },
            "CertificateType": {
                "type": "string",
                "enum": [
                    "Explicit",
                    "Implicit"
                ]
            },
            "ClientRequestsMapping": {
                "type": "object",
                "description": "This struct is on the level of the certificate request, and the caterpillar.\nBecause there is one Caterpillar for each Certificate Request.\nEach Certificate Request will output multiple Certificates.\nEach vehicle could have made multiple certificate requests.\nGiven that it has a vid and hash_id values which are combined unique for each\nEE's certificate request.\nThe ClientRequestsMappingEntry on the other hand will be in the level of each\nCertificate.",
                "required": [
                    "requests",
                    "vid",
                    "hash_id",
                    "exp_type",
                    "req_id"
                ],
                "properties": {
                    "exp_type": {
                        "$ref": "#/components/schemas/ExpansionType"
                    },
                    "hash_id": {
                        "type": "string"
                    },
                    "req_id": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ClientRequestsMappingEntry"
                        }
                    },
                    "vid": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "ClientRequestsMappingEntry": {
                "type": "object",
                "description": "This struct is on the level of the Certificate. It has values for\ni_index and j_index.",
                "required": [
                    "i_index",
                    "j_index"
                ],
                "properties": {
                    "i_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "j_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "CocoonRequest": {
                "type": "object",
                "description": "There is one CocoonRequest for each Caterpillar (hence, for each EE request).",
                "required": [
                    "req_id",
                    "eplv_pair",
                    "i_index"
                ],
                "properties": {
                    "eplv_pair": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Eplv"
                        }
                    },
                    "i_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "private_key_info": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "pub_key_encrypt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/VerifyingKey"
                            }
                        ],
                        "nullable": true
                    },
                    "pub_key_sign": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/VerifyingKey"
                            }
                        ],
                        "nullable": true
                    },
                    "req_id": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "CompositeCrlCtlQueryParam": {
                "type": "object",
                "required": [
                    "ctlSeriesId"
                ],
                "properties": {
                    "ctlSeriesId": {
                        "type": "string"
                    }
                }
            },
            "CryptoAlgorithmType": {
                "type": "string",
                "enum": [
                    "NistP256",
                    "NistP384",
                    "BrainpoolP256",
                    "BrainpoolP384",
                    "Sha256",
                    "Sha384",
                    "Aes128Ccm",
                    "Sm2",
                    "Sm3",
                    "Sm4"
                ]
            },
            "CtlSeriesQueryParams": {
                "type": "object",
                "required": [
                    "ctlSeriesId"
                ],
                "properties": {
                    "ctlSequenceNumber": {
                        "type": "integer",
                        "format": "int32",
                        "nullable": true,
                        "minimum": 0
                    },
                    "ctlSeriesId": {
                        "type": "string"
                    }
                }
            },
            "DeviceConfigInfo": {
                "type": "object",
                "required": [
                    "ee_scms_v3_auth",
                    "ee_ra_butterfly_type",
                    "ee_download_url",
                    "ee_support_psid_ssp",
                    "ee_support_region",
                    "ee_count_cert_pseudonym",
                    "ee_heartbeat_interval"
                ],
                "properties": {
                    "ee_count_cert_pseudonym": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ee_download_url": {
                        "type": "string"
                    },
                    "ee_heartbeat_interval": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "ee_ra_butterfly_type": {
                        "$ref": "#/components/schemas/RaButterflyType"
                    },
                    "ee_scms_v3_auth": {
                        "$ref": "#/components/schemas/ScmsV3AuthConfig"
                    },
                    "ee_support_psid_ssp": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PsidConfigInfo"
                        }
                    },
                    "ee_support_region": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportRegionConfigInfo"
                        }
                    }
                }
            },
            "EeRegistrationDeviceType": {
                "type": "string",
                "enum": [
                    "OBU",
                    "RSU"
                ]
            },
            "EeRegistrationRequestType": {
                "type": "string",
                "enum": [
                    "NewEnrollment",
                    "UpdateSuccessorEnrollment",
                    "UpdateBlockStatus"
                ]
            },
            "Eplv": {
                "type": "object",
                "description": "This struct represents the encrypted value version of the Plv.",
                "required": [
                    "enc_value",
                    "public_key",
                    "nonce",
                    "i_index",
                    "j_index"
                ],
                "properties": {
                    "enc_value": {
                        "type": "string",
                        "format": "binary"
                    },
                    "i_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "j_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "nonce": {
                        "type": "string",
                        "format": "binary"
                    },
                    "public_key": {
                        "type": "string",
                        "format": "binary"
                    }
                }
            },
            "ExpansionType": {
                "type": "string",
                "enum": [
                    "Original",
                    "Unified",
                    "Compact",
                    "NonButterfly",
                    "NonButterflyEncrypted"
                ]
            },
            "GlobalConfigInfo": {
                "type": "object",
                "required": [
                    "quorum_count",
                    "ctl_series_id",
                    "crypto_algorithm",
                    "cert_elector",
                    "cert_root_ca",
                    "cert_ica",
                    "cert_eca",
                    "cert_aca",
                    "cert_pca",
                    "cert_crl_signer",
                    "cert_ra",
                    "cert_la",
                    "cert_la1",
                    "cert_la2",
                    "cert_ma",
                    "cert_pg",
                    "cert_dc",
                    "cert_enrollment",
                    "cert_pseudonym",
                    "cert_identification",
                    "support_region",
                    "support_psid_ssp",
                    "url_domain",
                    "eca_hostname",
                    "ra_hostname",
                    "dc_hostname",
                    "dcm_hostname",
                    "eca_url",
                    "ra_url",
                    "dc_url",
                    "dcm_url",
                    "time_i_period",
                    "time_i_period_epoch",
                    "time_i_period_init",
                    "time_i_period_length",
                    "time_overlap",
                    "time_base_cert_number",
                    "time_overlap_cert_number",
                    "session_scms_auth",
                    "session_ee_auth",
                    "web_api_name",
                    "web_api_ee_auth",
                    "scms_v3_ee_auth",
                    "scms_v3_error",
                    "scms_v3_options",
                    "eca_max_age",
                    "eca_max_reqs",
                    "eca_max_wait",
                    "eca_min_wait",
                    "ra_acpc_support",
                    "ra_butterfly_type",
                    "ra_max_age",
                    "ra_max_gen_delay",
                    "ra_max_reqs",
                    "ra_max_preload_time",
                    "ra_min_wait",
                    "download_max_age",
                    "download_max_reqs",
                    "download_min_wait",
                    "time_identification_cert_length",
                    "time_identification_cert_overlap",
                    "time_leap_seconds",
                    "web_api_connection_retries",
                    "web_api_between_retries",
                    "web_api_between_retries_info_status",
                    "web_api_tolerance_time",
                    "next_update_time_default",
                    "support_region_obu_default",
                    "support_region_rsu_default",
                    "support_psid_ssp_obu_default",
                    "support_psid_ssp_rsu_default",
                    "scms_v3_ee_auth_default",
                    "ra_butterfly_type_default",
                    "ra_encryption_key_default",
                    "download_url_default",
                    "count_cert_pseudonym_default",
                    "count_cert_identification_default",
                    "ee_heartbeat_interval"
                ],
                "properties": {
                    "cert_aca": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_crl_signer": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_dc": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_eca": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_elector": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_enrollment": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_ica": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_identification": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_la": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_la1": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_la2": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_ma": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_pca": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_pg": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_pseudonym": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_ra": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "cert_root_ca": {
                        "$ref": "#/components/schemas/CertificateConfigInfo"
                    },
                    "count_cert_identification_default": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "count_cert_pseudonym_default": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "crypto_algorithm": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CryptoAlgorithmType"
                        }
                    },
                    "ctl_series_id": {
                        "type": "string"
                    },
                    "dc_hostname": {
                        "type": "string"
                    },
                    "dc_url": {
                        "type": "string"
                    },
                    "dcm_hostname": {
                        "type": "string"
                    },
                    "dcm_url": {
                        "type": "string"
                    },
                    "download_max_age": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "download_max_reqs": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "download_min_wait": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "download_url_default": {
                        "type": "string"
                    },
                    "eca_hostname": {
                        "type": "string"
                    },
                    "eca_max_age": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "eca_max_reqs": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "eca_max_wait": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "eca_min_wait": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "eca_url": {
                        "type": "string"
                    },
                    "ee_heartbeat_interval": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "next_update_time_default": {
                        "$ref": "#/components/schemas/NextUpdateTimeDefault"
                    },
                    "quorum_count": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ra_acpc_support": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ra_butterfly_type": {
                        "$ref": "#/components/schemas/RaButterflyTypeConfig"
                    },
                    "ra_butterfly_type_default": {
                        "$ref": "#/components/schemas/RaButterflyType"
                    },
                    "ra_encryption_key_default": {
                        "type": "string"
                    },
                    "ra_hostname": {
                        "type": "string"
                    },
                    "ra_max_age": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ra_max_gen_delay": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ra_max_preload_time": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ra_max_reqs": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ra_min_wait": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "ra_url": {
                        "type": "string"
                    },
                    "scms_v3_ee_auth": {
                        "$ref": "#/components/schemas/ScmsV3AuthConfig"
                    },
                    "scms_v3_ee_auth_default": {
                        "$ref": "#/components/schemas/ScmsV3AuthConfig"
                    },
                    "scms_v3_error": {
                        "$ref": "#/components/schemas/ScmsErrorLevel"
                    },
                    "scms_v3_options": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "session_ee_auth": {
                        "$ref": "#/components/schemas/WebApiEeAuth"
                    },
                    "session_scms_auth": {
                        "type": "string"
                    },
                    "support_psid_ssp": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PsidConfigInfo"
                        }
                    },
                    "support_psid_ssp_obu_default": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PsidConfigInfo"
                        }
                    },
                    "support_psid_ssp_rsu_default": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PsidConfigInfo"
                        }
                    },
                    "support_region": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/RegionConfigInfo"
                        }
                    },
                    "support_region_obu_default": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportRegionConfigInfo"
                        }
                    },
                    "support_region_rsu_default": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportRegionConfigInfo"
                        }
                    },
                    "time_base_cert_number": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_i_period": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_i_period_epoch": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_i_period_init": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_i_period_length": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_identification_cert_length": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_identification_cert_overlap": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_leap_seconds": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_overlap": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "time_overlap_cert_number": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "url_domain": {
                        "type": "string"
                    },
                    "web_api_between_retries": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "web_api_between_retries_info_status": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "web_api_connection_retries": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "web_api_ee_auth": {
                        "$ref": "#/components/schemas/WebApiEeAuth"
                    },
                    "web_api_name": {
                        "type": "string"
                    },
                    "web_api_tolerance_time": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "IndividualCrlQueryParam": {
                "type": "object",
                "required": [
                    "craca",
                    "crlSeries"
                ],
                "properties": {
                    "craca": {
                        "type": "string"
                    },
                    "crlSeries": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    }
                }
            },
            "NextUpdateTimeDefault": {
                "type": "object",
                "required": [
                    "full_hash_crl",
                    "delta_hash_crl",
                    "full_linked_crl",
                    "delta_linked_crl",
                    "full_root_ctl",
                    "delta_root_ctl",
                    "full_domain_ctl",
                    "delta_domain_ctl"
                ],
                "properties": {
                    "delta_domain_ctl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "delta_hash_crl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "delta_linked_crl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "delta_root_ctl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "full_domain_ctl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "full_hash_crl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "full_linked_crl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "full_root_ctl": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    }
                }
            },
            "NonButterflyRequest": {
                "type": "object",
                "required": [
                    "vid",
                    "verifying_key_raw",
                    "hash_id",
                    "exp_type",
                    "certificate_type"
                ],
                "properties": {
                    "certificate_type": {
                        "$ref": "#/components/schemas/CertificateType"
                    },
                    "encryption_key_raw": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "exp_type": {
                        "$ref": "#/components/schemas/ExpansionType"
                    },
                    "hash_id": {
                        "type": "string"
                    },
                    "verifying_key_raw": {
                        "type": "string",
                        "format": "binary"
                    },
                    "vid": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "PayloadCertRequest": {
                "type": "object",
                "required": [
                    "name",
                    "nid",
                    "validity_duration_years"
                ],
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "nid": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "validity_duration_years": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    }
                }
            },
            "PayloadCertResponse": {
                "type": "object",
                "required": [
                    "name",
                    "nid",
                    "validity_duration_years",
                    "start",
                    "expiry",
                    "request_for_renewal",
                    "certificate_hash",
                    "encoded_certificate",
                    "public_key",
                    "private_key"
                ],
                "properties": {
                    "certificate_hash": {
                        "type": "string"
                    },
                    "enc_private_key": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "enc_public_key": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "encoded_certificate": {
                        "type": "string",
                        "format": "binary"
                    },
                    "expiry": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "name": {
                        "type": "string"
                    },
                    "nid": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "private_key": {
                        "type": "string",
                        "format": "binary"
                    },
                    "public_key": {
                        "type": "string",
                        "format": "binary"
                    },
                    "request_for_renewal": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "start": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    },
                    "validity_duration_years": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    }
                }
            },
            "PayloadEePatchStatus": {
                "type": "object",
                "required": [
                    "canonical_id",
                    "status"
                ],
                "properties": {
                    "canonical_id": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    }
                }
            },
            "PayloadEeRegistration": {
                "type": "object",
                "required": [
                    "device_type",
                    "canonical_public_key"
                ],
                "properties": {
                    "canonical_public_key": {
                        "type": "string"
                    },
                    "device_type": {
                        "$ref": "#/components/schemas/EeRegistrationDeviceType"
                    }
                }
            },
            "PayloadEeRegistrationResponse": {
                "type": "object",
                "required": [
                    "canonical_id",
                    "device_id",
                    "device_type",
                    "public_key",
                    "status",
                    "version",
                    "created_time",
                    "updated_time",
                    "device_policy"
                ],
                "properties": {
                    "canonical_id": {
                        "type": "string"
                    },
                    "created_time": {
                        "type": "string"
                    },
                    "device_id": {
                        "type": "string"
                    },
                    "device_policy": {
                        "$ref": "#/components/schemas/DeviceConfigInfo"
                    },
                    "device_type": {
                        "$ref": "#/components/schemas/EeRegistrationDeviceType"
                    },
                    "public_key": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "updated_time": {
                        "type": "string"
                    },
                    "version": {
                        "type": "string"
                    }
                }
            },
            "PayloadLaToRa": {
                "type": "object",
                "description": "There is one PayloadLaToRa per LA.\nPotentially inside the RA it needs to handle two PaylodLaToRa objects.",
                "required": [
                    "request_id",
                    "plv_payloads"
                ],
                "properties": {
                    "plv_payloads": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PlvPayload"
                        }
                    },
                    "request_id": {
                        "type": "string"
                    }
                }
            },
            "PayloadRaToAca": {
                "type": "object",
                "required": [
                    "exp_type",
                    "certificate_type",
                    "ra_id",
                    "cocoon_requests"
                ],
                "properties": {
                    "certificate_type": {
                        "$ref": "#/components/schemas/CertificateType"
                    },
                    "cocoon_requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CocoonRequest"
                        }
                    },
                    "exp_type": {
                        "$ref": "#/components/schemas/ExpansionType"
                    },
                    "non_butterfly_request": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/NonButterflyRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "ra_id": {
                        "type": "integer",
                        "format": "int32",
                        "minimum": 0
                    }
                }
            },
            "PayloadRaToLa": {
                "type": "object",
                "required": [
                    "request_id",
                    "plv_reqs"
                ],
                "properties": {
                    "plv_reqs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PlvReq"
                        }
                    },
                    "request_id": {
                        "type": "string"
                    }
                }
            },
            "Plv": {
                "type": "object",
                "required": [
                    "value",
                    "i_index",
                    "j_index"
                ],
                "properties": {
                    "i_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "j_index": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "value": {
                        "type": "string",
                        "format": "binary"
                    }
                }
            },
            "PlvPayload": {
                "type": "object",
                "description": "This struct is used to just bundle the req_id with a list of EPLVs.\nThe req_id identifies just one caterpillar.\nHence each caterpillar is associated with one list of EPLVs (per LA).\nIf we have two LAs, then the RA needs to deal with two list of EPLVs for each caterpillar.\nAnd each caterpillar is associated with one EE request.",
                "required": [
                    "req_id",
                    "eplvs"
                ],
                "properties": {
                    "eplvs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Eplv"
                        }
                    },
                    "req_id": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "PlvReq": {
                "type": "object",
                "required": [
                    "req_id",
                    "ra_id",
                    "i_min",
                    "i_max",
                    "j_max"
                ],
                "properties": {
                    "i_max": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "i_min": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "j_max": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "ra_id": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    },
                    "req_id": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 0
                    }
                }
            },
            "PsidConfigInfo": {
                "type": "object",
                "required": [
                    "all"
                ],
                "properties": {
                    "all": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "RaButterflyType": {
                "type": "string",
                "enum": [
                    "Original",
                    "Unified",
                    "CompactUnified"
                ]
            },
            "RaButterflyTypeConfig": {
                "type": "object",
                "required": [
                    "original",
                    "unified",
                    "compact_unified"
                ],
                "properties": {
                    "compact_unified": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "original": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "unified": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "RegionConfigInfo": {
                "type": "object",
                "required": [
                    "country",
                    "country_and_region",
                    "country_and_region_and_sub_region",
                    "circle"
                ],
                "properties": {
                    "circle": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country_and_region": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country_and_region_and_sub_region": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "ScmsEeAuth": {
                "type": "string",
                "enum": [
                    "Authorization",
                    "Canonical",
                    "Enrollment",
                    "NoAuth",
                    "X509"
                ]
            },
            "ScmsErrorLevel": {
                "type": "string",
                "enum": [
                    "Coarse",
                    "Fine"
                ]
            },
            "ScmsV3AuthConfig": {
                "type": "object",
                "required": [
                    "enrollment_certificate",
                    "authorization_certificate_request",
                    "authorization_certificate_download",
                    "authorization_certificate_download_filename",
                    "ccf_ctl",
                    "composite_crl_ctl",
                    "ca_certificate",
                    "crl",
                    "ctl",
                    "ra_certificate",
                    "certificate_management_info_status",
                    "successor_enrollment_certificate_request",
                    "successor_enrollment_certificate_download",
                    "misbehavior_report",
                    "ma_certificate"
                ],
                "properties": {
                    "authorization_certificate_download": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "authorization_certificate_download_filename": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "authorization_certificate_request": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "ca_certificate": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "ccf_ctl": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "certificate_management_info_status": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "composite_crl_ctl": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "crl": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "ctl": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "enrollment_certificate": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "ma_certificate": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "misbehavior_report": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "ra_certificate": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "successor_enrollment_certificate_download": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    },
                    "successor_enrollment_certificate_request": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ScmsEeAuth"
                        }
                    }
                }
            },
            "SupportRegionConfigInfo": {
                "type": "object",
                "required": [
                    "region"
                ],
                "properties": {
                    "region": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/RegionConfigInfo"
                        }
                    }
                }
            },
            "WebApiEeAuth": {
                "type": "string",
                "enum": [
                    "NoAuth",
                    "OAuth2"
                ]
            }
        }
    }
}