{
    "description": "OAuthClient describes an OAuth client \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).",
    "properties": {
        "accessTokenInactivityTimeoutSeconds": {
            "description": "AccessTokenInactivityTimeoutSeconds overrides the default token inactivity timeout for tokens granted to this client. The value represents the maximum amount of time that can occur between consecutive uses of the token. Tokens become invalid if they are not used within this temporal window. The user will need to acquire a new token to regain access once a token times out. This value needs to be set only if the default set in configuration is not appropriate for this client. Valid values are: - 0: Tokens for this client never time out - X: Tokens time out if there is no activity for X seconds The current minimum allowed value for X is 300 (5 minutes) \n WARNING: existing tokens' timeout will not be affected (lowered) by changing this value",
            "format": "int32",
            "type": "integer",
            "minimum": -2147483648,
            "maximum": 2147483647
        },
        "accessTokenMaxAgeSeconds": {
            "description": "AccessTokenMaxAgeSeconds overrides the default access token max age for tokens granted to this client. 0 means no expiration.",
            "format": "int32",
            "type": "integer",
            "minimum": -2147483648,
            "maximum": 2147483647
        },
        "additionalSecrets": {
            "description": "AdditionalSecrets holds other secrets that may be used to identify the client.  This is useful for rotation and for service account token validation",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "apiVersion": {
            "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
            "type": "string"
        },
        "grantMethod": {
            "description": "GrantMethod is a required field which determines how to handle grants for this client. Valid grant handling methods are:  - auto:   always approves grant requests, useful for trusted clients  - prompt: prompts the end user for approval of grant requests, useful for third-party clients",
            "type": "string"
        },
        "kind": {
            "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
            "type": "string"
        },
        "metadata": {
            "type": "object"
        },
        "redirectURIs": {
            "description": "RedirectURIs is the valid redirection URIs associated with a client",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "respondWithChallenges": {
            "description": "RespondWithChallenges indicates whether the client wants authentication needed responses made in the form of challenges instead of redirects",
            "type": "boolean"
        },
        "scopeRestrictions": {
            "description": "ScopeRestrictions describes which scopes this client can request.  Each requested scope is checked against each restriction.  If any restriction matches, then the scope is allowed. If no restriction matches, then the scope is denied.",
            "items": {
                "description": "ScopeRestriction describe one restriction on scopes.  Exactly one option must be non-nil.",
                "properties": {
                    "clusterRole": {
                        "description": "ClusterRole describes a set of restrictions for cluster role scoping.",
                        "properties": {
                            "allowEscalation": {
                                "description": "AllowEscalation indicates whether you can request roles and their escalating resources",
                                "type": "boolean"
                            },
                            "namespaces": {
                                "description": "Namespaces is the list of namespaces that can be referenced.  * means any of them (including *)",
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "roleNames": {
                                "description": "RoleNames is the list of cluster roles that can referenced.  * means anything",
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            }
                        },
                        "required": [
                            "allowEscalation",
                            "namespaces",
                            "roleNames"
                        ],
                        "type": "object",
                        "additionalProperties": false
                    },
                    "literals": {
                        "description": "ExactValues means the scope has to match a particular set of strings exactly",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "type": "object",
                "additionalProperties": false
            },
            "type": "array"
        },
        "secret": {
            "description": "Secret is the unique secret associated with a client",
            "type": "string"
        }
    },
    "type": "object",
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-04/schema#"
}
