{
    "definitions": {
        "https:__kubernetesjsonschema_dev_master__defs_json_defs_io_k8s_api_flowcontrol_v1alpha1_GroupSubject": {
            "description": "GroupSubject holds detailed information for group-kind subject.",
            "properties": {
                "name": {
                    "description": "name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        },
        "https:__kubernetesjsonschema_dev_master__defs_json_defs_io_k8s_api_flowcontrol_v1alpha1_ServiceAccountSubject": {
            "description": "ServiceAccountSubject holds detailed information for service-account-kind subject.",
            "properties": {
                "name": {
                    "description": "`name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.",
                    "type": "string"
                },
                "namespace": {
                    "description": "`namespace` is the namespace of matching ServiceAccount objects. Required.",
                    "type": "string"
                }
            },
            "required": [
                "namespace",
                "name"
            ],
            "type": "object"
        },
        "https:__kubernetesjsonschema_dev_master__defs_json_defs_io_k8s_api_flowcontrol_v1alpha1_UserSubject": {
            "description": "UserSubject holds detailed information for user-kind subject.",
            "properties": {
                "name": {
                    "description": "`name` is the username that matches, or \"*\" to match all usernames. Required.",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        }
    },
    "description": "Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.",
    "properties": {
        "group": {
            "$ref": "#/definitions/https:__kubernetesjsonschema_dev_master__defs_json_defs_io_k8s_api_flowcontrol_v1alpha1_GroupSubject"
        },
        "kind": {
            "description": "Required",
            "type": [
                "string",
                "null"
            ]
        },
        "serviceAccount": {
            "$ref": "#/definitions/https:__kubernetesjsonschema_dev_master__defs_json_defs_io_k8s_api_flowcontrol_v1alpha1_ServiceAccountSubject"
        },
        "user": {
            "$ref": "#/definitions/https:__kubernetesjsonschema_dev_master__defs_json_defs_io_k8s_api_flowcontrol_v1alpha1_UserSubject"
        }
    },
    "required": [
        "kind"
    ],
    "type": "object",
    "x-kubernetes-unions": [
        {
            "discriminator": "kind",
            "fields-to-discriminateBy": {
                "group": "Group",
                "serviceAccount": "ServiceAccount",
                "user": "User"
            }
        }
    ]
}