# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'KeyMultiRegionConfigurationArgs',
    'KeyMultiRegionConfigurationArgsDict',
    'KeyMultiRegionConfigurationPrimaryKeyArgs',
    'KeyMultiRegionConfigurationPrimaryKeyArgsDict',
    'KeyMultiRegionConfigurationReplicaKeyArgs',
    'KeyMultiRegionConfigurationReplicaKeyArgsDict',
    'KeyTagArgs',
    'KeyTagArgsDict',
]

MYPY = False

if not MYPY:
    class KeyMultiRegionConfigurationArgsDict(TypedDict):
        multi_region_key_type: NotRequired[pulumi.Input[builtins.str]]
        """
        多区域密钥的类型。
        """
        primary_key: NotRequired[pulumi.Input['KeyMultiRegionConfigurationPrimaryKeyArgsDict']]
        """
        主多区域键的事务识别号和区域 ID。
        """
        replica_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input['KeyMultiRegionConfigurationReplicaKeyArgsDict']]]]
elif False:
    KeyMultiRegionConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KeyMultiRegionConfigurationArgs:
    def __init__(__self__, *,
                 multi_region_key_type: Optional[pulumi.Input[builtins.str]] = None,
                 primary_key: Optional[pulumi.Input['KeyMultiRegionConfigurationPrimaryKeyArgs']] = None,
                 replica_keys: Optional[pulumi.Input[Sequence[pulumi.Input['KeyMultiRegionConfigurationReplicaKeyArgs']]]] = None):
        """
        :param pulumi.Input[builtins.str] multi_region_key_type: 多区域密钥的类型。
        :param pulumi.Input['KeyMultiRegionConfigurationPrimaryKeyArgs'] primary_key: 主多区域键的事务识别号和区域 ID。
        """
        if multi_region_key_type is not None:
            pulumi.set(__self__, "multi_region_key_type", multi_region_key_type)
        if primary_key is not None:
            pulumi.set(__self__, "primary_key", primary_key)
        if replica_keys is not None:
            pulumi.set(__self__, "replica_keys", replica_keys)

    @property
    @pulumi.getter(name="multiRegionKeyType")
    def multi_region_key_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        多区域密钥的类型。
        """
        return pulumi.get(self, "multi_region_key_type")

    @multi_region_key_type.setter
    def multi_region_key_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "multi_region_key_type", value)

    @property
    @pulumi.getter(name="primaryKey")
    def primary_key(self) -> Optional[pulumi.Input['KeyMultiRegionConfigurationPrimaryKeyArgs']]:
        """
        主多区域键的事务识别号和区域 ID。
        """
        return pulumi.get(self, "primary_key")

    @primary_key.setter
    def primary_key(self, value: Optional[pulumi.Input['KeyMultiRegionConfigurationPrimaryKeyArgs']]):
        pulumi.set(self, "primary_key", value)

    @property
    @pulumi.getter(name="replicaKeys")
    def replica_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['KeyMultiRegionConfigurationReplicaKeyArgs']]]]:
        return pulumi.get(self, "replica_keys")

    @replica_keys.setter
    def replica_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['KeyMultiRegionConfigurationReplicaKeyArgs']]]]):
        pulumi.set(self, "replica_keys", value)


if not MYPY:
    class KeyMultiRegionConfigurationPrimaryKeyArgsDict(TypedDict):
        region: NotRequired[pulumi.Input[builtins.str]]
        """
        多区域密钥的区域 ID。
        """
        trn: NotRequired[pulumi.Input[builtins.str]]
        """
        多区域密钥的 TRN。
        """
elif False:
    KeyMultiRegionConfigurationPrimaryKeyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KeyMultiRegionConfigurationPrimaryKeyArgs:
    def __init__(__self__, *,
                 region: Optional[pulumi.Input[builtins.str]] = None,
                 trn: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] region: 多区域密钥的区域 ID。
        :param pulumi.Input[builtins.str] trn: 多区域密钥的 TRN。
        """
        if region is not None:
            pulumi.set(__self__, "region", region)
        if trn is not None:
            pulumi.set(__self__, "trn", trn)

    @property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        多区域密钥的区域 ID。
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "region", value)

    @property
    @pulumi.getter
    def trn(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        多区域密钥的 TRN。
        """
        return pulumi.get(self, "trn")

    @trn.setter
    def trn(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "trn", value)


if not MYPY:
    class KeyMultiRegionConfigurationReplicaKeyArgsDict(TypedDict):
        region: NotRequired[pulumi.Input[builtins.str]]
        """
        多区域密钥的区域 ID。
        """
        trn: NotRequired[pulumi.Input[builtins.str]]
        """
        多区域密钥的转换。
        """
elif False:
    KeyMultiRegionConfigurationReplicaKeyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KeyMultiRegionConfigurationReplicaKeyArgs:
    def __init__(__self__, *,
                 region: Optional[pulumi.Input[builtins.str]] = None,
                 trn: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] region: 多区域密钥的区域 ID。
        :param pulumi.Input[builtins.str] trn: 多区域密钥的转换。
        """
        if region is not None:
            pulumi.set(__self__, "region", region)
        if trn is not None:
            pulumi.set(__self__, "trn", trn)

    @property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        多区域密钥的区域 ID。
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "region", value)

    @property
    @pulumi.getter
    def trn(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        多区域密钥的转换。
        """
        return pulumi.get(self, "trn")

    @trn.setter
    def trn(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "trn", value)


if not MYPY:
    class KeyTagArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        KMS密钥的标签键
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        KMS密钥的标签值
        """
elif False:
    KeyTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KeyTagArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: KMS密钥的标签键
        :param pulumi.Input[builtins.str] value: KMS密钥的标签值
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        KMS密钥的标签键
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        KMS密钥的标签值
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "value", value)


