export interface AddGroupMemberInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** The name of the group. */
    GroupName: string;
    /** The SAMAccountName of the user, group, or computer to add as a group member. */
    MemberName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
    /** The domain name that's associated with the group member. This parameter is required only when adding a member outside of your Managed Microsoft AD domain to a group inside of your Managed Microsoft AD */
    MemberRealm?: string;
}
export interface CreateGroupInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** The name of the group. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
    /** The scope of the AD group. For details, see Active Directory security group scope. */
    GroupScope?: 'DomainLocal' | 'Global' | 'Universal' | 'BuiltinLocal';
    /** The AD group type. For details, see Active Directory security group type. */
    GroupType?: 'Distribution' | 'Security';
    /** An expression that defines one or more attributes with the data type and value of each attribute. */
    OtherAttributes?: Record<string, {
        S?: string;
    } | {
        N?: number;
    } | {
        BOOL?: boolean;
    } | {
        SS?: any[];
    }>;
}
export interface CreateUserInput {
    /** The identifier (ID) of the directory that’s associated with the user. */
    DirectoryId: string;
    /** The name of the user. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
    /** The email address of the user. */
    EmailAddress?: string;
    /** The first name of the user. */
    GivenName?: string;
    /** An expression that defines one or more attribute names with the data type and value of each attribute. A key is an attribute name, and the value is a list of maps. For a list of supported attributes,  */
    OtherAttributes?: Record<string, {
        S?: string;
    } | {
        N?: number;
    } | {
        BOOL?: boolean;
    } | {
        SS?: any[];
    }>;
    /** The last name of the user. */
    Surname?: string;
}
export interface DeleteGroupInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** The name of the group. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
}
export interface DeleteUserInput {
    /** The identifier (ID) of the directory that's associated with the user. */
    DirectoryId: string;
    /** The name of the user. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
}
export interface DescribeGroupInput {
    /** The Identifier (ID) of the directory associated with the group. */
    DirectoryId: string;
    /** The name of the group. */
    SAMAccountName: string;
    /** One or more attributes to be returned for the group. For a list of supported attributes, see Directory Service Data Attributes. */
    OtherAttributes?: string[];
    /** The domain name that's associated with the group. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsof */
    Realm?: string;
}
export interface DescribeUserInput {
    /** The identifier (ID) of the directory that's associated with the user. */
    DirectoryId: string;
    /** The name of the user. */
    SAMAccountName: string;
    /** One or more attribute names to be returned for the user. A key is an attribute name, and the value is a list of maps. For a list of supported attributes, see Directory Service Data Attributes. */
    OtherAttributes?: string[];
    /** The domain name that's associated with the user. This parameter is optional, so you can return users outside your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD  */
    Realm?: string;
}
export interface DisableUserInput {
    /** The identifier (ID) of the directory that's associated with the user. */
    DirectoryId: string;
    /** The name of the user. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
}
export interface ListGroupMembersInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** The name of the group. */
    SAMAccountName: string;
    /** The maximum number of results to be returned per request. */
    MaxResults?: number;
    /** The domain name that's associated with the group member. This parameter defaults to the Managed Microsoft AD domain. This parameter is optional and case insensitive. */
    MemberRealm?: string;
    /** An encoded paging token for paginated calls that can be passed back to retrieve the next page. */
    NextToken?: string;
    /** The domain name that's associated with the group. This parameter is optional, so you can return members from a group outside of your Managed Microsoft AD domain. When no value is defined, only members */
    Realm?: string;
}
export interface ListGroupsInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** The maximum number of results to be returned per request. */
    MaxResults?: number;
    /** An encoded paging token for paginated calls that can be passed back to retrieve the next page. */
    NextToken?: string;
    /** The domain name associated with the directory. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft A */
    Realm?: string;
}
export interface ListGroupsForMemberInput {
    /** The identifier (ID) of the directory that's associated with the member. */
    DirectoryId: string;
    /** The SAMAccountName of the user, group, or computer that's a member of the group. */
    SAMAccountName: string;
    /** The maximum number of results to be returned per request. */
    MaxResults?: number;
    /** The domain name that's associated with the group member. This parameter is optional, so you can limit your results to the group members in a specific domain. This parameter is case insensitive and def */
    MemberRealm?: string;
    /** An encoded paging token for paginated calls that can be passed back to retrieve the next page. */
    NextToken?: string;
    /** The domain name that's associated with the group. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsof */
    Realm?: string;
}
export interface ListUsersInput {
    /** The identifier (ID) of the directory that's associated with the user. */
    DirectoryId: string;
    /** The maximum number of results to be returned per request. */
    MaxResults?: number;
    /** An encoded paging token for paginated calls that can be passed back to retrieve the next page. */
    NextToken?: string;
    /** The domain name that's associated with the user. This parameter is optional, so you can return users outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft  */
    Realm?: string;
}
export interface RemoveGroupMemberInput {
    /** The identifier (ID) of the directory that's associated with the member. */
    DirectoryId: string;
    /** The name of the group. */
    GroupName: string;
    /** The SAMAccountName of the user, group, or computer to remove from the group. */
    MemberName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
    /** The domain name that's associated with the group member. This parameter defaults to the Managed Microsoft AD domain. This parameter is optional and case insensitive. */
    MemberRealm?: string;
}
export interface SearchGroupsInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** One or more data attributes that are used to search for a group. For a list of supported attributes, see Directory Service Data Attributes. */
    SearchAttributes: string[];
    /** The attribute value that you want to search for. Wildcard (*) searches aren't supported. For a list of supported attributes, see Directory Service Data Attributes. */
    SearchString: string;
    /** The maximum number of results to be returned per request. */
    MaxResults?: number;
    /** An encoded paging token for paginated calls that can be passed back to retrieve the next page. */
    NextToken?: string;
    /** The domain name that's associated with the group. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsof */
    Realm?: string;
}
export interface SearchUsersInput {
    /** The identifier (ID) of the directory that's associated with the user. */
    DirectoryId: string;
    /** One or more data attributes that are used to search for a user. For a list of supported attributes, see Directory Service Data Attributes. */
    SearchAttributes: string[];
    /** The attribute value that you want to search for. Wildcard (*) searches aren't supported. For a list of supported attributes, see Directory Service Data Attributes. */
    SearchString: string;
    /** The maximum number of results to be returned per request. */
    MaxResults?: number;
    /** An encoded paging token for paginated calls that can be passed back to retrieve the next page. */
    NextToken?: string;
    /** The domain name that's associated with the user. This parameter is optional, so you can return users outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft  */
    Realm?: string;
}
export interface UpdateGroupInput {
    /** The identifier (ID) of the directory that's associated with the group. */
    DirectoryId: string;
    /** The name of the group. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
    /** The scope of the AD group. For details, see Active Directory security groups. */
    GroupScope?: 'DomainLocal' | 'Global' | 'Universal' | 'BuiltinLocal';
    /** The AD group type. For details, see Active Directory security group type. */
    GroupType?: 'Distribution' | 'Security';
    /** An expression that defines one or more attributes with the data type and the value of each attribute. */
    OtherAttributes?: Record<string, {
        S?: string;
    } | {
        N?: number;
    } | {
        BOOL?: boolean;
    } | {
        SS?: any[];
    }>;
    /** The type of update to be performed. If no value exists for the attribute, use ADD. Otherwise, use REPLACE to change an attribute value or REMOVE to clear the attribute value. */
    UpdateType?: 'ADD' | 'REPLACE' | 'REMOVE';
}
export interface UpdateUserInput {
    /** The identifier (ID) of the directory that's associated with the user. */
    DirectoryId: string;
    /** The name of the user. */
    SAMAccountName: string;
    /** A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8  */
    ClientToken?: string;
    /** The email address of the user. */
    EmailAddress?: string;
    /** The first name of the user. */
    GivenName?: string;
    /** An expression that defines one or more attribute names with the data type and value of each attribute. A key is an attribute name, and the value is a list of maps. For a list of supported attributes,  */
    OtherAttributes?: Record<string, {
        S?: string;
    } | {
        N?: number;
    } | {
        BOOL?: boolean;
    } | {
        SS?: any[];
    }>;
    /** The last name of the user. */
    Surname?: string;
    /** The type of update to be performed. If no value exists for the attribute, use ADD. Otherwise, use REPLACE to change an attribute value or REMOVE to clear the attribute value. */
    UpdateType?: 'ADD' | 'REPLACE' | 'REMOVE';
}
/** Directory Service Data service binding for Step Functions SDK integrations. */
export declare class DirectoryServiceData {
    constructor();
    addGroupMember<T>(params: AddGroupMemberInput): Promise<T>;
    createGroup<T>(params: CreateGroupInput): Promise<T>;
    createUser<T>(params: CreateUserInput): Promise<T>;
    deleteGroup<T>(params: DeleteGroupInput): Promise<T>;
    deleteUser<T>(params: DeleteUserInput): Promise<T>;
    describeGroup<T>(params: DescribeGroupInput): Promise<T>;
    describeUser<T>(params: DescribeUserInput): Promise<T>;
    disableUser<T>(params: DisableUserInput): Promise<T>;
    listGroupMembers<T>(params: ListGroupMembersInput): Promise<T>;
    listGroups<T>(params: ListGroupsInput): Promise<T>;
    listGroupsForMember<T>(params: ListGroupsForMemberInput): Promise<T>;
    listUsers<T>(params: ListUsersInput): Promise<T>;
    removeGroupMember<T>(params: RemoveGroupMemberInput): Promise<T>;
    searchGroups<T>(params: SearchGroupsInput): Promise<T>;
    searchUsers<T>(params: SearchUsersInput): Promise<T>;
    updateGroup<T>(params: UpdateGroupInput): Promise<T>;
    updateUser<T>(params: UpdateUserInput): Promise<T>;
}
//# sourceMappingURL=DirectoryServiceData.d.ts.map