{
    "id": "https://letsencrypt.org/schema/01/challengeobject#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Subschema for an individual challenge (within challenge)",
    "anyOf": [
        {
            "type": "object",
            "required": [
                "type",
                "token"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "simpleHttps"
                    ]
                },
                "token": {
                    "type": "string"
                }
            }
        },
        {
            "type": "object",
            "required": [
                "type",
                "r",
                "nonce"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "dvsni"
                    ]
                },
                "r": {
                    "type": [
                        "string"
                    ],
                    "pattern": "^[-_=0-9A-Za-z]+$"
                },
                "nonce": {
                    "type": "string",
                    "pattern": "^[0-9a-f]+$"
                }
            }
        },
        {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "recoveryContact"
                    ]
                },
                "activationURL": {
                    "type": "string"
                },
                "successURL": {
                    "type": "string"
                },
                "contact": {
                    "type": "string"
                }
            }
        },
        {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "recoveryToken"
                    ]
                }
            }
        },
        {
            "type": "object",
            "required": [
                "type",
                "alg",
                "nonce",
                "hints"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "proofOfPossession"
                    ]
                },
                "alg": {
                    "type": "string"
                },
                "nonce": {
                    "type": "string",
                    "pattern": "^[-_=0-9A-Za-z]+$"
                },
                "hints": {
                    "type": "object",
                    "properties": {
                        "jwk": {
                            "type": "object"
                        },
                        "certFingerprints": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "string",
                                "pattern": "^[0-9a-f]+$"
                            }
                        },
                        "subjectKeyIdentifiers": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "string",
                                "pattern": "^[0-9a-f]+$"
                            }
                        },
                        "serialNumbers": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "integer"
                            }
                        },
                        "issuers": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "string"
                            }
                        },
                        "authorizedFor": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        {
            "type": "object",
            "required": [
                "type",
                "token"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "dns"
                    ]
                },
                "token": {
                    "type": "string"
                }
            }
        }
    ]
}