# 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__ = ['UserProvisioningArgs', 'UserProvisioning']

@pulumi.input_type
class UserProvisioningArgs:
    def __init__(__self__, *,
                 deletion_strategy: pulumi.Input[builtins.str],
                 duplication_strategy: pulumi.Input[builtins.str],
                 identity_source_strategy: pulumi.Input[builtins.str],
                 principal_id: pulumi.Input[builtins.str],
                 principal_type: pulumi.Input[builtins.str],
                 target_id: pulumi.Input[builtins.str],
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_suffix: Optional[pulumi.Input[builtins.str]] = None):
        """
        The set of arguments for constructing a UserProvisioning resource.
        :param pulumi.Input[builtins.str] deletion_strategy: 删除策略。
        :param pulumi.Input[builtins.str] duplication_strategy: 用户名冲突策略。
        :param pulumi.Input[builtins.str] identity_source_strategy: 身份源冲突策略。
        :param pulumi.Input[builtins.str] principal_id: 身份id。
        :param pulumi.Input[builtins.str] principal_type: 身份类型。
        :param pulumi.Input[builtins.str] target_id: 目标id。
        :param pulumi.Input[builtins.str] description: 任务描述。
        :param pulumi.Input[builtins.str] duplication_suffix: 本次同步IAM用户名称后缀。
        """
        pulumi.set(__self__, "deletion_strategy", deletion_strategy)
        pulumi.set(__self__, "duplication_strategy", duplication_strategy)
        pulumi.set(__self__, "identity_source_strategy", identity_source_strategy)
        pulumi.set(__self__, "principal_id", principal_id)
        pulumi.set(__self__, "principal_type", principal_type)
        pulumi.set(__self__, "target_id", target_id)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if duplication_suffix is not None:
            pulumi.set(__self__, "duplication_suffix", duplication_suffix)

    @property
    @pulumi.getter(name="deletionStrategy")
    def deletion_strategy(self) -> pulumi.Input[builtins.str]:
        """
        删除策略。
        """
        return pulumi.get(self, "deletion_strategy")

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

    @property
    @pulumi.getter(name="duplicationStrategy")
    def duplication_strategy(self) -> pulumi.Input[builtins.str]:
        """
        用户名冲突策略。
        """
        return pulumi.get(self, "duplication_strategy")

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

    @property
    @pulumi.getter(name="identitySourceStrategy")
    def identity_source_strategy(self) -> pulumi.Input[builtins.str]:
        """
        身份源冲突策略。
        """
        return pulumi.get(self, "identity_source_strategy")

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

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> pulumi.Input[builtins.str]:
        """
        身份id。
        """
        return pulumi.get(self, "principal_id")

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

    @property
    @pulumi.getter(name="principalType")
    def principal_type(self) -> pulumi.Input[builtins.str]:
        """
        身份类型。
        """
        return pulumi.get(self, "principal_type")

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

    @property
    @pulumi.getter(name="targetId")
    def target_id(self) -> pulumi.Input[builtins.str]:
        """
        目标id。
        """
        return pulumi.get(self, "target_id")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        任务描述。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="duplicationSuffix")
    def duplication_suffix(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        本次同步IAM用户名称后缀。
        """
        return pulumi.get(self, "duplication_suffix")

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


@pulumi.input_type
class _UserProvisioningState:
    def __init__(__self__, *,
                 created_time: Optional[pulumi.Input[builtins.str]] = None,
                 deletion_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_suffix: Optional[pulumi.Input[builtins.str]] = None,
                 identity_source_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 principal_id: Optional[pulumi.Input[builtins.str]] = None,
                 principal_name: Optional[pulumi.Input[builtins.str]] = None,
                 principal_type: Optional[pulumi.Input[builtins.str]] = None,
                 provision_status: Optional[pulumi.Input[builtins.str]] = None,
                 target_id: Optional[pulumi.Input[builtins.str]] = None,
                 updated_time: Optional[pulumi.Input[builtins.str]] = None,
                 user_provisioning_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        Input properties used for looking up and filtering UserProvisioning resources.
        :param pulumi.Input[builtins.str] created_time: 创建时间。
        :param pulumi.Input[builtins.str] deletion_strategy: 删除策略。
        :param pulumi.Input[builtins.str] description: 任务描述。
        :param pulumi.Input[builtins.str] duplication_strategy: 用户名冲突策略。
        :param pulumi.Input[builtins.str] duplication_suffix: 本次同步IAM用户名称后缀。
        :param pulumi.Input[builtins.str] identity_source_strategy: 身份源冲突策略。
        :param pulumi.Input[builtins.str] principal_id: 身份id。
        :param pulumi.Input[builtins.str] principal_name: 目标名称。
        :param pulumi.Input[builtins.str] principal_type: 身份类型。
        :param pulumi.Input[builtins.str] provision_status: 授权任务状态。Provisioned 授权成功，Provisioning 正在授权，DeleteProvisioning 授权解除中，DeleteProvisioned 授权解除成功
        :param pulumi.Input[builtins.str] target_id: 目标id。
        :param pulumi.Input[builtins.str] updated_time: 更新时间。
        :param pulumi.Input[builtins.str] user_provisioning_id: IAM 用户同步任务ID。
        """
        if created_time is not None:
            pulumi.set(__self__, "created_time", created_time)
        if deletion_strategy is not None:
            pulumi.set(__self__, "deletion_strategy", deletion_strategy)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if duplication_strategy is not None:
            pulumi.set(__self__, "duplication_strategy", duplication_strategy)
        if duplication_suffix is not None:
            pulumi.set(__self__, "duplication_suffix", duplication_suffix)
        if identity_source_strategy is not None:
            pulumi.set(__self__, "identity_source_strategy", identity_source_strategy)
        if principal_id is not None:
            pulumi.set(__self__, "principal_id", principal_id)
        if principal_name is not None:
            pulumi.set(__self__, "principal_name", principal_name)
        if principal_type is not None:
            pulumi.set(__self__, "principal_type", principal_type)
        if provision_status is not None:
            pulumi.set(__self__, "provision_status", provision_status)
        if target_id is not None:
            pulumi.set(__self__, "target_id", target_id)
        if updated_time is not None:
            pulumi.set(__self__, "updated_time", updated_time)
        if user_provisioning_id is not None:
            pulumi.set(__self__, "user_provisioning_id", user_provisioning_id)

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建时间。
        """
        return pulumi.get(self, "created_time")

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

    @property
    @pulumi.getter(name="deletionStrategy")
    def deletion_strategy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        删除策略。
        """
        return pulumi.get(self, "deletion_strategy")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        任务描述。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="duplicationStrategy")
    def duplication_strategy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户名冲突策略。
        """
        return pulumi.get(self, "duplication_strategy")

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

    @property
    @pulumi.getter(name="duplicationSuffix")
    def duplication_suffix(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        本次同步IAM用户名称后缀。
        """
        return pulumi.get(self, "duplication_suffix")

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

    @property
    @pulumi.getter(name="identitySourceStrategy")
    def identity_source_strategy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        身份源冲突策略。
        """
        return pulumi.get(self, "identity_source_strategy")

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

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        身份id。
        """
        return pulumi.get(self, "principal_id")

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

    @property
    @pulumi.getter(name="principalName")
    def principal_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        目标名称。
        """
        return pulumi.get(self, "principal_name")

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

    @property
    @pulumi.getter(name="principalType")
    def principal_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        身份类型。
        """
        return pulumi.get(self, "principal_type")

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

    @property
    @pulumi.getter(name="provisionStatus")
    def provision_status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        授权任务状态。Provisioned 授权成功，Provisioning 正在授权，DeleteProvisioning 授权解除中，DeleteProvisioned 授权解除成功
        """
        return pulumi.get(self, "provision_status")

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

    @property
    @pulumi.getter(name="targetId")
    def target_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        目标id。
        """
        return pulumi.get(self, "target_id")

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

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        更新时间。
        """
        return pulumi.get(self, "updated_time")

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

    @property
    @pulumi.getter(name="userProvisioningId")
    def user_provisioning_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        IAM 用户同步任务ID。
        """
        return pulumi.get(self, "user_provisioning_id")

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


@pulumi.type_token("bytepluscc:cloudidentity/userProvisioning:UserProvisioning")
class UserProvisioning(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 deletion_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_suffix: Optional[pulumi.Input[builtins.str]] = None,
                 identity_source_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 principal_id: Optional[pulumi.Input[builtins.str]] = None,
                 principal_type: Optional[pulumi.Input[builtins.str]] = None,
                 target_id: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        """
        当您创建好云身份中心用户后，需要授予用户访问到各账号的登录访问权限。

        ## Example Usage

        ```python
        import pulumi
        import pulumi_bytepluscc as bytepluscc

        cloud_identity_user_provisioning_demo = bytepluscc.index.CloudidentityUserprovisioning("CloudIdentityUserProvisioningDemo",
            target_id=2103612***,
            principal_type=Group,
            principal_id=8990752****,
            duplication_strategy=KeepBoth,
            deletion_strategy=Delete,
            identity_source_strategy=BindConflictUser,
            description=ccapi-test,
            duplication_suffix=-cctest)
        ```

        ## Import

        ```sh
        $ pulumi import bytepluscc:cloudidentity/userProvisioning:UserProvisioning example "user_provisioning_id"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] deletion_strategy: 删除策略。
        :param pulumi.Input[builtins.str] description: 任务描述。
        :param pulumi.Input[builtins.str] duplication_strategy: 用户名冲突策略。
        :param pulumi.Input[builtins.str] duplication_suffix: 本次同步IAM用户名称后缀。
        :param pulumi.Input[builtins.str] identity_source_strategy: 身份源冲突策略。
        :param pulumi.Input[builtins.str] principal_id: 身份id。
        :param pulumi.Input[builtins.str] principal_type: 身份类型。
        :param pulumi.Input[builtins.str] target_id: 目标id。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: UserProvisioningArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        当您创建好云身份中心用户后，需要授予用户访问到各账号的登录访问权限。

        ## Example Usage

        ```python
        import pulumi
        import pulumi_bytepluscc as bytepluscc

        cloud_identity_user_provisioning_demo = bytepluscc.index.CloudidentityUserprovisioning("CloudIdentityUserProvisioningDemo",
            target_id=2103612***,
            principal_type=Group,
            principal_id=8990752****,
            duplication_strategy=KeepBoth,
            deletion_strategy=Delete,
            identity_source_strategy=BindConflictUser,
            description=ccapi-test,
            duplication_suffix=-cctest)
        ```

        ## Import

        ```sh
        $ pulumi import bytepluscc:cloudidentity/userProvisioning:UserProvisioning example "user_provisioning_id"
        ```

        :param str resource_name: The name of the resource.
        :param UserProvisioningArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(UserProvisioningArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 deletion_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 duplication_suffix: Optional[pulumi.Input[builtins.str]] = None,
                 identity_source_strategy: Optional[pulumi.Input[builtins.str]] = None,
                 principal_id: Optional[pulumi.Input[builtins.str]] = None,
                 principal_type: Optional[pulumi.Input[builtins.str]] = None,
                 target_id: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = UserProvisioningArgs.__new__(UserProvisioningArgs)

            if deletion_strategy is None and not opts.urn:
                raise TypeError("Missing required property 'deletion_strategy'")
            __props__.__dict__["deletion_strategy"] = deletion_strategy
            __props__.__dict__["description"] = description
            if duplication_strategy is None and not opts.urn:
                raise TypeError("Missing required property 'duplication_strategy'")
            __props__.__dict__["duplication_strategy"] = duplication_strategy
            __props__.__dict__["duplication_suffix"] = duplication_suffix
            if identity_source_strategy is None and not opts.urn:
                raise TypeError("Missing required property 'identity_source_strategy'")
            __props__.__dict__["identity_source_strategy"] = identity_source_strategy
            if principal_id is None and not opts.urn:
                raise TypeError("Missing required property 'principal_id'")
            __props__.__dict__["principal_id"] = principal_id
            if principal_type is None and not opts.urn:
                raise TypeError("Missing required property 'principal_type'")
            __props__.__dict__["principal_type"] = principal_type
            if target_id is None and not opts.urn:
                raise TypeError("Missing required property 'target_id'")
            __props__.__dict__["target_id"] = target_id
            __props__.__dict__["created_time"] = None
            __props__.__dict__["principal_name"] = None
            __props__.__dict__["provision_status"] = None
            __props__.__dict__["updated_time"] = None
            __props__.__dict__["user_provisioning_id"] = None
        super(UserProvisioning, __self__).__init__(
            'bytepluscc:cloudidentity/userProvisioning:UserProvisioning',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            created_time: Optional[pulumi.Input[builtins.str]] = None,
            deletion_strategy: Optional[pulumi.Input[builtins.str]] = None,
            description: Optional[pulumi.Input[builtins.str]] = None,
            duplication_strategy: Optional[pulumi.Input[builtins.str]] = None,
            duplication_suffix: Optional[pulumi.Input[builtins.str]] = None,
            identity_source_strategy: Optional[pulumi.Input[builtins.str]] = None,
            principal_id: Optional[pulumi.Input[builtins.str]] = None,
            principal_name: Optional[pulumi.Input[builtins.str]] = None,
            principal_type: Optional[pulumi.Input[builtins.str]] = None,
            provision_status: Optional[pulumi.Input[builtins.str]] = None,
            target_id: Optional[pulumi.Input[builtins.str]] = None,
            updated_time: Optional[pulumi.Input[builtins.str]] = None,
            user_provisioning_id: Optional[pulumi.Input[builtins.str]] = None) -> 'UserProvisioning':
        """
        Get an existing UserProvisioning resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] created_time: 创建时间。
        :param pulumi.Input[builtins.str] deletion_strategy: 删除策略。
        :param pulumi.Input[builtins.str] description: 任务描述。
        :param pulumi.Input[builtins.str] duplication_strategy: 用户名冲突策略。
        :param pulumi.Input[builtins.str] duplication_suffix: 本次同步IAM用户名称后缀。
        :param pulumi.Input[builtins.str] identity_source_strategy: 身份源冲突策略。
        :param pulumi.Input[builtins.str] principal_id: 身份id。
        :param pulumi.Input[builtins.str] principal_name: 目标名称。
        :param pulumi.Input[builtins.str] principal_type: 身份类型。
        :param pulumi.Input[builtins.str] provision_status: 授权任务状态。Provisioned 授权成功，Provisioning 正在授权，DeleteProvisioning 授权解除中，DeleteProvisioned 授权解除成功
        :param pulumi.Input[builtins.str] target_id: 目标id。
        :param pulumi.Input[builtins.str] updated_time: 更新时间。
        :param pulumi.Input[builtins.str] user_provisioning_id: IAM 用户同步任务ID。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _UserProvisioningState.__new__(_UserProvisioningState)

        __props__.__dict__["created_time"] = created_time
        __props__.__dict__["deletion_strategy"] = deletion_strategy
        __props__.__dict__["description"] = description
        __props__.__dict__["duplication_strategy"] = duplication_strategy
        __props__.__dict__["duplication_suffix"] = duplication_suffix
        __props__.__dict__["identity_source_strategy"] = identity_source_strategy
        __props__.__dict__["principal_id"] = principal_id
        __props__.__dict__["principal_name"] = principal_name
        __props__.__dict__["principal_type"] = principal_type
        __props__.__dict__["provision_status"] = provision_status
        __props__.__dict__["target_id"] = target_id
        __props__.__dict__["updated_time"] = updated_time
        __props__.__dict__["user_provisioning_id"] = user_provisioning_id
        return UserProvisioning(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> pulumi.Output[builtins.str]:
        """
        创建时间。
        """
        return pulumi.get(self, "created_time")

    @property
    @pulumi.getter(name="deletionStrategy")
    def deletion_strategy(self) -> pulumi.Output[builtins.str]:
        """
        删除策略。
        """
        return pulumi.get(self, "deletion_strategy")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[builtins.str]:
        """
        任务描述。
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="duplicationStrategy")
    def duplication_strategy(self) -> pulumi.Output[builtins.str]:
        """
        用户名冲突策略。
        """
        return pulumi.get(self, "duplication_strategy")

    @property
    @pulumi.getter(name="duplicationSuffix")
    def duplication_suffix(self) -> pulumi.Output[builtins.str]:
        """
        本次同步IAM用户名称后缀。
        """
        return pulumi.get(self, "duplication_suffix")

    @property
    @pulumi.getter(name="identitySourceStrategy")
    def identity_source_strategy(self) -> pulumi.Output[builtins.str]:
        """
        身份源冲突策略。
        """
        return pulumi.get(self, "identity_source_strategy")

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> pulumi.Output[builtins.str]:
        """
        身份id。
        """
        return pulumi.get(self, "principal_id")

    @property
    @pulumi.getter(name="principalName")
    def principal_name(self) -> pulumi.Output[builtins.str]:
        """
        目标名称。
        """
        return pulumi.get(self, "principal_name")

    @property
    @pulumi.getter(name="principalType")
    def principal_type(self) -> pulumi.Output[builtins.str]:
        """
        身份类型。
        """
        return pulumi.get(self, "principal_type")

    @property
    @pulumi.getter(name="provisionStatus")
    def provision_status(self) -> pulumi.Output[builtins.str]:
        """
        授权任务状态。Provisioned 授权成功，Provisioning 正在授权，DeleteProvisioning 授权解除中，DeleteProvisioned 授权解除成功
        """
        return pulumi.get(self, "provision_status")

    @property
    @pulumi.getter(name="targetId")
    def target_id(self) -> pulumi.Output[builtins.str]:
        """
        目标id。
        """
        return pulumi.get(self, "target_id")

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> pulumi.Output[builtins.str]:
        """
        更新时间。
        """
        return pulumi.get(self, "updated_time")

    @property
    @pulumi.getter(name="userProvisioningId")
    def user_provisioning_id(self) -> pulumi.Output[builtins.str]:
        """
        IAM 用户同步任务ID。
        """
        return pulumi.get(self, "user_provisioning_id")

