# autogenerated module
from typing import List, Optional

from ._schema import dataclass, field, DictMixin

from . import meta_v1
from . import authentication_v1


@dataclass
class SelfSubjectReview(DictMixin):
    """SelfSubjectReview contains the user information that the kube-apiserver has
      about the user making this request. When using impersonation, users will
      receive the user info of the user being impersonated.

      **parameters**

      * **apiVersion** ``Optional[str]`` - 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
      * **kind** ``Optional[str]`` - 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
      * **metadata** ``Optional[meta_v1.ObjectMeta]`` - Standard object's metadata. More info:
        https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
      * **status** ``Optional[SelfSubjectReviewStatus]`` - Status is filled in by the server with the user attributes.
    """
    apiVersion: 'Optional[str]' = None
    kind: 'Optional[str]' = None
    metadata: 'Optional[meta_v1.ObjectMeta]' = None
    status: 'Optional[SelfSubjectReviewStatus]' = None


@dataclass
class SelfSubjectReviewStatus(DictMixin):
    """SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a
      user.

      **parameters**

      * **userInfo** ``Optional[authentication_v1.UserInfo]`` - User attributes of the user making this request.
    """
    userInfo: 'Optional[authentication_v1.UserInfo]' = None


