"""
@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 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 Alias(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___Alias = Alias

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

    ALIAS_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    CUSTOM_KEY_STORE_FIELD_NUMBER: builtins.int
    GRANT_FIELD_NUMBER: builtins.int
    @property
    def alias(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Alias]: ...
    @property
    def key(self) -> global___Key: ...
    @property
    def custom_key_store(self) -> global___CustomKeyStore: ...
    @property
    def grant(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Grant]: ...
    def __init__(
        self,
        *,
        alias: collections.abc.Iterable[global___Alias] | None = ...,
        key: global___Key | None = ...,
        custom_key_store: global___CustomKeyStore | None = ...,
        grant: collections.abc.Iterable[global___Grant] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["custom_key_store", b"custom_key_store", "key", b"key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias", b"alias", "custom_key_store", b"custom_key_store", "grant", b"grant", "key", b"key"]) -> None: ...

global___KMS = KMS

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

    CLOUD_HSM_CLUSTER_ID_FIELD_NUMBER: builtins.int
    CUSTOM_KEY_STORE_NAME_FIELD_NUMBER: builtins.int
    KEY_STORE_PASSWORD_FIELD_NUMBER: builtins.int
    TRUST_ANCHOR_CERTIFICATE_FIELD_NUMBER: builtins.int
    cloud_hsm_cluster_id: builtins.str
    custom_key_store_name: builtins.str
    key_store_password: builtins.str
    trust_anchor_certificate: builtins.str
    def __init__(
        self,
        *,
        cloud_hsm_cluster_id: builtins.str = ...,
        custom_key_store_name: builtins.str = ...,
        key_store_password: builtins.str = ...,
        trust_anchor_certificate: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cloud_hsm_cluster_id", b"cloud_hsm_cluster_id", "custom_key_store_name", b"custom_key_store_name", "key_store_password", b"key_store_password", "trust_anchor_certificate", b"trust_anchor_certificate"]) -> None: ...

global___CustomKeyStore = CustomKeyStore

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

    @typing_extensions.final
    class ConstraintsEntry(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: ...

    GRANTEE_PRINCIPAL_FIELD_NUMBER: builtins.int
    RETIRING_PRINCIPAL_FIELD_NUMBER: builtins.int
    GRANT_TOKENS_FIELD_NUMBER: builtins.int
    KEY_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    OPERATIONS_FIELD_NUMBER: builtins.int
    CONSTRAINTS_FIELD_NUMBER: builtins.int
    grantee_principal: builtins.str
    retiring_principal: builtins.str
    @property
    def grant_tokens(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    key_id: builtins.str
    name: builtins.str
    @property
    def operations(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def constraints(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        grantee_principal: builtins.str = ...,
        retiring_principal: builtins.str = ...,
        grant_tokens: collections.abc.Iterable[builtins.str] | None = ...,
        key_id: builtins.str = ...,
        name: builtins.str = ...,
        operations: collections.abc.Iterable[builtins.str] | None = ...,
        constraints: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["constraints", b"constraints", "grant_tokens", b"grant_tokens", "grantee_principal", b"grantee_principal", "key_id", b"key_id", "name", b"name", "operations", b"operations", "retiring_principal", b"retiring_principal"]) -> None: ...

global___Grant = Grant

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

    @typing_extensions.final
    class TagsEntry(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: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    ENABLED_FIELD_NUMBER: builtins.int
    ENABLE_KEY_ROTATION_FIELD_NUMBER: builtins.int
    KEY_USAGE_FIELD_NUMBER: builtins.int
    PENDING_WINDOW_IN_DAYS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    CUSTOM_KEY_STORE_ID_FIELD_NUMBER: builtins.int
    BYPASS_POLICY_LOCKOUT_SAFETY_CHECK_FIELD_NUMBER: builtins.int
    KEY_SPEC_FIELD_NUMBER: builtins.int
    MULTI_REGION_FIELD_NUMBER: builtins.int
    ORIGIN_FIELD_NUMBER: builtins.int
    KEY_POLICY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    description: builtins.str
    enabled: builtins.bool
    enable_key_rotation: builtins.bool
    key_usage: builtins.str
    pending_window_in_days: builtins.int
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    custom_key_store_id: builtins.str
    bypass_policy_lockout_safety_check: builtins.bool
    key_spec: builtins.str
    multi_region: builtins.bool
    origin: builtins.str
    key_policy: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        description: builtins.str = ...,
        enabled: builtins.bool = ...,
        enable_key_rotation: builtins.bool = ...,
        key_usage: builtins.str = ...,
        pending_window_in_days: builtins.int = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        custom_key_store_id: builtins.str = ...,
        bypass_policy_lockout_safety_check: builtins.bool = ...,
        key_spec: builtins.str = ...,
        multi_region: builtins.bool = ...,
        origin: builtins.str = ...,
        key_policy: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bypass_policy_lockout_safety_check", b"bypass_policy_lockout_safety_check", "custom_key_store_id", b"custom_key_store_id", "description", b"description", "enable_key_rotation", b"enable_key_rotation", "enabled", b"enabled", "key_policy", b"key_policy", "key_spec", b"key_spec", "key_usage", b"key_usage", "multi_region", b"multi_region", "origin", b"origin", "pending_window_in_days", b"pending_window_in_days", "resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___Key = Key
