# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
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__ = [
    'ActiveDirectoryAddGroupsGroupArgs',
    'ActiveDirectoryAddGroupsGroupArgsDict',
    'ActiveDirectoryJoinDomainWithAllNodesAdditionalDataArgs',
    'ActiveDirectoryJoinDomainWithAllNodesAdditionalDataArgsDict',
    'ActiveDirectoryJoinPointAttributeArgs',
    'ActiveDirectoryJoinPointAttributeArgsDict',
    'ActiveDirectoryJoinPointGroupArgs',
    'ActiveDirectoryJoinPointGroupArgsDict',
    'ActiveDirectoryJoinPointRewriteRuleArgs',
    'ActiveDirectoryJoinPointRewriteRuleArgsDict',
    'IdentitySourceSequenceIdentitySourceArgs',
    'IdentitySourceSequenceIdentitySourceArgsDict',
]

MYPY = False

if not MYPY:
    class ActiveDirectoryAddGroupsGroupArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Required for each group in the group list with no duplication between groups
        """
        sid: pulumi.Input[_builtins.str]
        """
        Required for each group in the group list with no duplication between groups
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
elif False:
    ActiveDirectoryAddGroupsGroupArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ActiveDirectoryAddGroupsGroupArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 sid: pulumi.Input[_builtins.str],
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Required for each group in the group list with no duplication between groups
        :param pulumi.Input[_builtins.str] sid: Required for each group in the group list with no duplication between groups
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "sid", sid)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each group in the group list with no duplication between groups
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def sid(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each group in the group list with no duplication between groups
        """
        return pulumi.get(self, "sid")

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

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "type")

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


if not MYPY:
    class ActiveDirectoryJoinDomainWithAllNodesAdditionalDataArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Additional attribute name
        """
        value: pulumi.Input[_builtins.str]
        """
        Additional attribute value
        """
elif False:
    ActiveDirectoryJoinDomainWithAllNodesAdditionalDataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ActiveDirectoryJoinDomainWithAllNodesAdditionalDataArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Additional attribute name
        :param pulumi.Input[_builtins.str] value: Additional attribute value
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Additional attribute name
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        """
        Additional attribute value
        """
        return pulumi.get(self, "value")

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


if not MYPY:
    class ActiveDirectoryJoinPointAttributeArgsDict(TypedDict):
        default_value: pulumi.Input[_builtins.str]
        """
        Required for each attribute in the attribute list. Can contain an empty string.
        """
        internal_name: pulumi.Input[_builtins.str]
        """
        Required for each attribute in the attribute list
        """
        name: pulumi.Input[_builtins.str]
        """
        Required for each attribute in the attribute list with no duplication between attributes
        """
        type: pulumi.Input[_builtins.str]
        """
        Required for each group in the group list
          - Choices: `STRING`, `IP`, `BOOLEAN`, `INT`, `OCTET_STRING`
        """
elif False:
    ActiveDirectoryJoinPointAttributeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ActiveDirectoryJoinPointAttributeArgs:
    def __init__(__self__, *,
                 default_value: pulumi.Input[_builtins.str],
                 internal_name: pulumi.Input[_builtins.str],
                 name: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] default_value: Required for each attribute in the attribute list. Can contain an empty string.
        :param pulumi.Input[_builtins.str] internal_name: Required for each attribute in the attribute list
        :param pulumi.Input[_builtins.str] name: Required for each attribute in the attribute list with no duplication between attributes
        :param pulumi.Input[_builtins.str] type: Required for each group in the group list
                 - Choices: `STRING`, `IP`, `BOOLEAN`, `INT`, `OCTET_STRING`
        """
        pulumi.set(__self__, "default_value", default_value)
        pulumi.set(__self__, "internal_name", internal_name)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each attribute in the attribute list. Can contain an empty string.
        """
        return pulumi.get(self, "default_value")

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

    @_builtins.property
    @pulumi.getter(name="internalName")
    def internal_name(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each attribute in the attribute list
        """
        return pulumi.get(self, "internal_name")

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

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each attribute in the attribute list with no duplication between attributes
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each group in the group list
          - Choices: `STRING`, `IP`, `BOOLEAN`, `INT`, `OCTET_STRING`
        """
        return pulumi.get(self, "type")

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


if not MYPY:
    class ActiveDirectoryJoinPointGroupArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Required for each group in the group list with no duplication between groups
        """
        sid: pulumi.Input[_builtins.str]
        """
        Required for each group in the group list with no duplication between groups
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
elif False:
    ActiveDirectoryJoinPointGroupArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ActiveDirectoryJoinPointGroupArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 sid: pulumi.Input[_builtins.str],
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Required for each group in the group list with no duplication between groups
        :param pulumi.Input[_builtins.str] sid: Required for each group in the group list with no duplication between groups
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "sid", sid)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each group in the group list with no duplication between groups
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def sid(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each group in the group list with no duplication between groups
        """
        return pulumi.get(self, "sid")

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

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "type")

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


if not MYPY:
    class ActiveDirectoryJoinPointRewriteRuleArgsDict(TypedDict):
        rewrite_match: pulumi.Input[_builtins.str]
        """
        Required for each rule in the list with no duplication between rules
        """
        rewrite_result: pulumi.Input[_builtins.str]
        """
        Required for each rule in the list
        """
        row_id: pulumi.Input[_builtins.str]
        """
        Required for each rule in the list in serial order
        """
elif False:
    ActiveDirectoryJoinPointRewriteRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ActiveDirectoryJoinPointRewriteRuleArgs:
    def __init__(__self__, *,
                 rewrite_match: pulumi.Input[_builtins.str],
                 rewrite_result: pulumi.Input[_builtins.str],
                 row_id: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] rewrite_match: Required for each rule in the list with no duplication between rules
        :param pulumi.Input[_builtins.str] rewrite_result: Required for each rule in the list
        :param pulumi.Input[_builtins.str] row_id: Required for each rule in the list in serial order
        """
        pulumi.set(__self__, "rewrite_match", rewrite_match)
        pulumi.set(__self__, "rewrite_result", rewrite_result)
        pulumi.set(__self__, "row_id", row_id)

    @_builtins.property
    @pulumi.getter(name="rewriteMatch")
    def rewrite_match(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each rule in the list with no duplication between rules
        """
        return pulumi.get(self, "rewrite_match")

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

    @_builtins.property
    @pulumi.getter(name="rewriteResult")
    def rewrite_result(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each rule in the list
        """
        return pulumi.get(self, "rewrite_result")

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

    @_builtins.property
    @pulumi.getter(name="rowId")
    def row_id(self) -> pulumi.Input[_builtins.str]:
        """
        Required for each rule in the list in serial order
        """
        return pulumi.get(self, "row_id")

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


if not MYPY:
    class IdentitySourceSequenceIdentitySourceArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the identity source
        """
        order: pulumi.Input[_builtins.int]
        """
        Order of the identity source in the sequence
        """
elif False:
    IdentitySourceSequenceIdentitySourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IdentitySourceSequenceIdentitySourceArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 order: pulumi.Input[_builtins.int]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the identity source
        :param pulumi.Input[_builtins.int] order: Order of the identity source in the sequence
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "order", order)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the identity source
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def order(self) -> pulumi.Input[_builtins.int]:
        """
        Order of the identity source in the sequence
        """
        return pulumi.get(self, "order")

    @order.setter
    def order(self, value: pulumi.Input[_builtins.int]):
        pulumi.set(self, "order", value)


