"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2
import shared.shared_pb2
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class LocalSubjectAccessReview(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    API_VERSION_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    api_version: builtins.str
    kind: builtins.str
    @property
    def metadata(self) -> kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta: ...
    @property
    def spec(self) -> global___SubjectAccessReviewSpec: ...
    @property
    def status(self) -> global___SubjectAccessReviewStatus: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        api_version: builtins.str = ...,
        kind: builtins.str = ...,
        metadata: kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta | None = ...,
        spec: global___SubjectAccessReviewSpec | None = ...,
        status: global___SubjectAccessReviewStatus | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["api_version", b"api_version", "kind", b"kind", "metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> None: ...

global___LocalSubjectAccessReview = LocalSubjectAccessReview

@typing_extensions.final
class NonResourceAttributes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PATH_FIELD_NUMBER: builtins.int
    VERB_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    path: builtins.str
    verb: builtins.str
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        path: builtins.str = ...,
        verb: builtins.str = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["path", b"path", "resource_info", b"resource_info", "verb", b"verb"]) -> None: ...

global___NonResourceAttributes = NonResourceAttributes

@typing_extensions.final
class NonResourceRule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NON_RESOURCE_U_R_LS_FIELD_NUMBER: builtins.int
    VERBS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def non_resource_u_r_ls(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def verbs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        non_resource_u_r_ls: collections.abc.Iterable[builtins.str] | None = ...,
        verbs: collections.abc.Iterable[builtins.str] | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["non_resource_u_r_ls", b"non_resource_u_r_ls", "resource_info", b"resource_info", "verbs", b"verbs"]) -> None: ...

global___NonResourceRule = NonResourceRule

@typing_extensions.final
class ResourceAttributes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    NAMESPACE_FIELD_NUMBER: builtins.int
    RESOURCE_FIELD_NUMBER: builtins.int
    SUBRESOURCE_FIELD_NUMBER: builtins.int
    VERB_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    group: builtins.str
    name: builtins.str
    namespace: builtins.str
    resource: builtins.str
    subresource: builtins.str
    verb: builtins.str
    version: builtins.str
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        group: builtins.str = ...,
        name: builtins.str = ...,
        namespace: builtins.str = ...,
        resource: builtins.str = ...,
        subresource: builtins.str = ...,
        verb: builtins.str = ...,
        version: builtins.str = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["group", b"group", "name", b"name", "namespace", b"namespace", "resource", b"resource", "resource_info", b"resource_info", "subresource", b"subresource", "verb", b"verb", "version", b"version"]) -> None: ...

global___ResourceAttributes = ResourceAttributes

@typing_extensions.final
class ResourceRule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    API_GROUPS_FIELD_NUMBER: builtins.int
    RESOURCE_NAMES_FIELD_NUMBER: builtins.int
    RESOURCES_FIELD_NUMBER: builtins.int
    VERBS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def api_groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def resource_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def resources(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def verbs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        api_groups: collections.abc.Iterable[builtins.str] | None = ...,
        resource_names: collections.abc.Iterable[builtins.str] | None = ...,
        resources: collections.abc.Iterable[builtins.str] | None = ...,
        verbs: collections.abc.Iterable[builtins.str] | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["api_groups", b"api_groups", "resource_info", b"resource_info", "resource_names", b"resource_names", "resources", b"resources", "verbs", b"verbs"]) -> None: ...

global___ResourceRule = ResourceRule

@typing_extensions.final
class SelfSubjectAccessReview(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    API_VERSION_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    api_version: builtins.str
    kind: builtins.str
    @property
    def metadata(self) -> kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta: ...
    @property
    def spec(self) -> global___SelfSubjectAccessReviewSpec: ...
    @property
    def status(self) -> global___SubjectAccessReviewStatus: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        api_version: builtins.str = ...,
        kind: builtins.str = ...,
        metadata: kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta | None = ...,
        spec: global___SelfSubjectAccessReviewSpec | None = ...,
        status: global___SubjectAccessReviewStatus | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["api_version", b"api_version", "kind", b"kind", "metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> None: ...

global___SelfSubjectAccessReview = SelfSubjectAccessReview

@typing_extensions.final
class SelfSubjectAccessReviewSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NON_RESOURCE_ATTRIBUTES_FIELD_NUMBER: builtins.int
    RESOURCE_ATTRIBUTES_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def non_resource_attributes(self) -> global___NonResourceAttributes: ...
    @property
    def resource_attributes(self) -> global___ResourceAttributes: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        non_resource_attributes: global___NonResourceAttributes | None = ...,
        resource_attributes: global___ResourceAttributes | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["non_resource_attributes", b"non_resource_attributes", "resource_attributes", b"resource_attributes", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["non_resource_attributes", b"non_resource_attributes", "resource_attributes", b"resource_attributes", "resource_info", b"resource_info"]) -> None: ...

global___SelfSubjectAccessReviewSpec = SelfSubjectAccessReviewSpec

@typing_extensions.final
class SelfSubjectRulesReview(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    API_VERSION_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    api_version: builtins.str
    kind: builtins.str
    @property
    def metadata(self) -> kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta: ...
    @property
    def spec(self) -> global___SelfSubjectRulesReviewSpec: ...
    @property
    def status(self) -> global___SubjectRulesReviewStatus: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        api_version: builtins.str = ...,
        kind: builtins.str = ...,
        metadata: kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta | None = ...,
        spec: global___SelfSubjectRulesReviewSpec | None = ...,
        status: global___SubjectRulesReviewStatus | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["api_version", b"api_version", "kind", b"kind", "metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> None: ...

global___SelfSubjectRulesReview = SelfSubjectRulesReview

@typing_extensions.final
class SelfSubjectRulesReviewSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAMESPACE_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    namespace: builtins.str
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        namespace: builtins.str = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["namespace", b"namespace", "resource_info", b"resource_info"]) -> None: ...

global___SelfSubjectRulesReviewSpec = SelfSubjectRulesReviewSpec

@typing_extensions.final
class SubjectAccessReview(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    API_VERSION_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    api_version: builtins.str
    kind: builtins.str
    @property
    def metadata(self) -> kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta: ...
    @property
    def spec(self) -> global___SubjectAccessReviewSpec: ...
    @property
    def status(self) -> global___SubjectAccessReviewStatus: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        api_version: builtins.str = ...,
        kind: builtins.str = ...,
        metadata: kubernetes.kubernetes_io.k8s.apimachinery.pkg.apis.meta.v1_pb2.ObjectMeta | None = ...,
        spec: global___SubjectAccessReviewSpec | None = ...,
        status: global___SubjectAccessReviewStatus | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["api_version", b"api_version", "kind", b"kind", "metadata", b"metadata", "resource_info", b"resource_info", "spec", b"spec", "status", b"status"]) -> None: ...

global___SubjectAccessReview = SubjectAccessReview

@typing_extensions.final
class SubjectAccessReviewSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class ExtraEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    EXTRA_FIELD_NUMBER: builtins.int
    GROUPS_FIELD_NUMBER: builtins.int
    NON_RESOURCE_ATTRIBUTES_FIELD_NUMBER: builtins.int
    RESOURCE_ATTRIBUTES_FIELD_NUMBER: builtins.int
    UID_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def extra(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def non_resource_attributes(self) -> global___NonResourceAttributes: ...
    @property
    def resource_attributes(self) -> global___ResourceAttributes: ...
    uid: builtins.str
    user: builtins.str
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        extra: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        groups: collections.abc.Iterable[builtins.str] | None = ...,
        non_resource_attributes: global___NonResourceAttributes | None = ...,
        resource_attributes: global___ResourceAttributes | None = ...,
        uid: builtins.str = ...,
        user: builtins.str = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["non_resource_attributes", b"non_resource_attributes", "resource_attributes", b"resource_attributes", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["extra", b"extra", "groups", b"groups", "non_resource_attributes", b"non_resource_attributes", "resource_attributes", b"resource_attributes", "resource_info", b"resource_info", "uid", b"uid", "user", b"user"]) -> None: ...

global___SubjectAccessReviewSpec = SubjectAccessReviewSpec

@typing_extensions.final
class SubjectAccessReviewStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALLOWED_FIELD_NUMBER: builtins.int
    DENIED_FIELD_NUMBER: builtins.int
    EVALUATION_ERROR_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    allowed: builtins.bool
    denied: builtins.bool
    evaluation_error: builtins.str
    reason: builtins.str
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        allowed: builtins.bool = ...,
        denied: builtins.bool = ...,
        evaluation_error: builtins.str = ...,
        reason: builtins.str = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allowed", b"allowed", "denied", b"denied", "evaluation_error", b"evaluation_error", "reason", b"reason", "resource_info", b"resource_info"]) -> None: ...

global___SubjectAccessReviewStatus = SubjectAccessReviewStatus

@typing_extensions.final
class SubjectRulesReviewStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVALUATION_ERROR_FIELD_NUMBER: builtins.int
    INCOMPLETE_FIELD_NUMBER: builtins.int
    NON_RESOURCE_RULES_FIELD_NUMBER: builtins.int
    RESOURCE_RULES_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    evaluation_error: builtins.str
    incomplete: builtins.bool
    @property
    def non_resource_rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NonResourceRule]: ...
    @property
    def resource_rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceRule]: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        evaluation_error: builtins.str = ...,
        incomplete: builtins.bool = ...,
        non_resource_rules: collections.abc.Iterable[global___NonResourceRule] | None = ...,
        resource_rules: collections.abc.Iterable[global___ResourceRule] | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["evaluation_error", b"evaluation_error", "incomplete", b"incomplete", "non_resource_rules", b"non_resource_rules", "resource_info", b"resource_info", "resource_rules", b"resource_rules"]) -> None: ...

global___SubjectRulesReviewStatus = SubjectRulesReviewStatus
