{
    "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.",
    "properties": {
        "extra": {
            "additionalProperties": {
                "items": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "type": [
                    "array",
                    "null"
                ]
            },
            "description": "Extra information about the requesting user. See user.Info interface for details.",
            "type": [
                "object",
                "null"
            ]
        },
        "groups": {
            "description": "Group information about the requesting user. See user.Info interface for details.",
            "items": {
                "type": [
                    "string",
                    "null"
                ]
            },
            "type": [
                "array",
                "null"
            ]
        },
        "request": {
            "description": "Base64-encoded PKCS#10 CSR data",
            "format": "byte",
            "type": [
                "string",
                "null"
            ]
        },
        "signerName": {
            "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n    \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n    \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.",
            "type": [
                "string",
                "null"
            ]
        },
        "uid": {
            "description": "UID information about the requesting user. See user.Info interface for details.",
            "type": [
                "string",
                "null"
            ]
        },
        "usages": {
            "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n     https://tools.ietf.org/html/rfc5280#section-4.2.1.12",
            "items": {
                "type": [
                    "string",
                    "null"
                ]
            },
            "type": [
                "array",
                "null"
            ]
        },
        "username": {
            "description": "Information about the requesting user. See user.Info interface for details.",
            "type": [
                "string",
                "null"
            ]
        }
    },
    "required": [
        "request"
    ],
    "type": "object"
}