export interface IpRoute {
    /** IP address block in CIDR format, such as 10.0.0.0/24. This is often the address block of the DNS server used for your self-managed domain. For a single IP address, use a CIDR address block with /32. F */
    CidrIp?: string;
    /** IPv6 address block in CIDR format, such as 2001:db8::/32. This is often the address block of the DNS server used for your self-managed domain. For a single IPv6 address, use a CIDR address block with  */
    CidrIpv6?: string;
    /** Description of the address block. */
    Description?: string;
}
export interface DirectoryVpcSettings {
    /** The identifier of the VPC in which to create the directory. */
    VpcId: string;
    /** The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. Directory Service creates a directory server and a DNS server in each of these subnet */
    SubnetIds: string[];
}
export interface Tag {
    /** Required name of the tag. The string value can be Unicode characters and cannot be prefixed with "aws:". The string can contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=' */
    Key: string;
    /** The optional value of the tag. The string value can be Unicode characters. The string can contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-', ':', '@' (Java reg */
    Value: string;
}
export interface DirectoryConnectSettings {
    /** The identifier of the VPC in which the AD Connector is created. */
    VpcId: string;
    /** A list of subnet identifiers in the VPC in which the AD Connector is created. */
    SubnetIds: string[];
    /** The IP addresses of DNS servers or domain controllers in your self-managed directory. */
    CustomerDnsIps?: string[];
    /** The IPv6 addresses of DNS servers or domain controllers in your self-managed directory. */
    CustomerDnsIpsV6?: string[];
    /** The user name of an account in your self-managed directory that is used to connect to the directory. This account must have the following permissions: Read users and groups Create computer objects Joi */
    CustomerUserName: string;
}
export interface Attribute {
    /** The name of the attribute. */
    Name?: string;
    /** The value of the attribute. */
    Value?: string;
}
export interface RadiusSettings {
    /** The fully qualified domain name (FQDN) or IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses of your RADIUS server load balancer. */
    RadiusServers?: string[];
    /** The IPv6 addresses of the RADIUS server endpoints or RADIUS server load balancer. */
    RadiusServersIpv6?: string[];
    /** The port that your RADIUS server is using for communications. Your self-managed network must allow inbound traffic over this port from the Directory Service servers. */
    RadiusPort?: number;
    /** The amount of time, in seconds, to wait for the RADIUS server to respond. */
    RadiusTimeout?: number;
    /** The maximum number of times that communication with the RADIUS server is retried after the initial attempt. */
    RadiusRetries?: number;
    /** Required for enabling RADIUS on the directory. */
    SharedSecret?: string;
    /** The protocol specified for your RADIUS endpoints. */
    AuthenticationProtocol?: 'PAP' | 'CHAP' | 'MS-CHAPv1' | 'MS-CHAPv2';
    /** Not currently used. */
    DisplayLabel?: string;
    /** Not currently used. */
    UseSameUsername?: boolean;
}
export interface ClientCertAuthSettings {
    /** Specifies the URL of the default OCSP server used to check for revocation status. A secondary value to any OCSP address found in the AIA extension of the user certificate. */
    OCSPUrl?: string;
}
export interface ShareTarget {
    /** Identifier of the directory consumer account. */
    Id: string;
    /** Type of identifier to be used in the Id field. */
    Type: 'ACCOUNT';
}
export interface AssessmentConfiguration {
    /** A list of IP addresses for the DNS servers or domain controllers in your self-managed AD that are tested during the assessment. */
    CustomerDnsIps: string[];
    /** The fully qualified domain name (FQDN) of the self-managed AD domain to assess. */
    DnsName: string;
    VpcSettings: DirectoryVpcSettings;
    /** The identifiers of the self-managed instances with SSM that are used to perform connectivity and validation tests. */
    InstanceIds: string[];
    /** By default, the service attaches a security group to allow network access to the self-managed nodes in your Amazon VPC. You can optionally supply your own security group that allows network traffic to */
    SecurityGroupIds?: string[];
}
export interface UnshareTarget {
    /** Identifier of the directory consumer account. */
    Id: string;
    /** Type of identifier to be used in the Id field. */
    Type: 'ACCOUNT';
}
export interface OSUpdateSettings {
    /** OS version that the directory needs to be updated to. */
    OSVersion?: 'SERVER_2012' | 'SERVER_2019';
}
export interface DirectorySizeUpdateSettings {
    /** The target directory size for the update operation. */
    DirectorySize?: 'Small' | 'Large';
}
export interface NetworkUpdateSettings {
    /** The target network type for the directory update. */
    NetworkType?: 'Dual-stack' | 'IPv4' | 'IPv6';
    /** IPv6 addresses of DNS servers or domain controllers in the self-managed directory. Required only when updating an AD Connector directory. */
    CustomerDnsIpsV6?: string[];
}
export interface HybridAdministratorAccountUpdate {
    /** The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials for the AD administrator user, and enables hybrid domain controllers to join the managed  */
    SecretArn: string;
}
export interface HybridCustomerInstancesSettings {
    /** The IP addresses of the DNS servers or domain controllers in your self-managed AD environment. */
    CustomerDnsIps: string[];
    /** The identifiers of the self-managed instances with SSM used in hybrid directory. */
    InstanceIds: string[];
}
export interface Setting {
    /** The name of the directory setting. For example: TLS_1_0 */
    Name: string;
    /** The value of the directory setting for which to retrieve information. For example, for TLS_1_0, the valid values are: Enable and Disable. */
    Value: string;
}
export interface AcceptSharedDirectoryInput {
    /** Identifier of the shared directory in the directory consumer account. This identifier is different for each directory owner account. */
    SharedDirectoryId: string;
}
export interface AddIpRoutesInput {
    /** Identifier (ID) of the directory to which to add the address block. */
    DirectoryId: string;
    /** IP address blocks, using CIDR format, of the traffic to route. This is often the IP address block of the DNS server used for your self-managed domain. */
    IpRoutes: IpRoute[];
    /** If set to true, updates the inbound and outbound rules of the security group that has the description: "Amazon Web Services created security group for directory ID directory controllers." Following ar */
    UpdateSecurityGroupForDirectoryControllers?: boolean;
}
export interface AddRegionInput {
    /** The identifier of the directory to which you want to add Region replication. */
    DirectoryId: string;
    /** The name of the Region where you want to add domain controllers for replication. For example, us-east-1. */
    RegionName: string;
    VPCSettings: DirectoryVpcSettings;
}
export interface AddTagsToResourceInput {
    /** Identifier (ID) for the directory to which to add the tag. */
    ResourceId: string;
    /** The tags to be assigned to the directory. */
    Tags: Tag[];
}
export interface CancelSchemaExtensionInput {
    /** The identifier of the directory whose schema extension will be canceled. */
    DirectoryId: string;
    /** The identifier of the schema extension that will be canceled. */
    SchemaExtensionId: string;
}
/** Contains the inputs for the ConnectDirectory operation. */
export interface ConnectDirectoryInput {
    /** A DirectoryConnectSettings object that contains additional information for the operation. */
    ConnectSettings: DirectoryConnectSettings;
    /** The fully qualified name of your self-managed directory, such as corp.example.com. */
    Name: string;
    /** The password for your self-managed user account. */
    Password: string;
    /** The size of the directory. */
    Size: 'Small' | 'Large';
    /** A description for the directory. */
    Description?: string;
    /** The network type for your directory. The default value is IPv4 or IPv6 based on the provided subnet capabilities. */
    NetworkType?: 'Dual-stack' | 'IPv4' | 'IPv6';
    /** The NetBIOS name of your self-managed directory, such as CORP. */
    ShortName?: string;
    /** The tags to be assigned to AD Connector. */
    Tags?: Tag[];
}
/** Contains the inputs for the CreateAlias operation. */
export interface CreateAliasInput {
    /** The requested alias. The alias must be unique amongst all aliases in Amazon Web Services. This operation throws an EntityAlreadyExistsException error if the alias already exists. */
    Alias: string;
    /** The identifier of the directory for which to create the alias. */
    DirectoryId: string;
}
/** Contains the inputs for the CreateComputer operation. */
export interface CreateComputerInput {
    /** The name of the computer account. */
    ComputerName: string;
    /** The identifier of the directory in which to create the computer account. */
    DirectoryId: string;
    /** A one-time password that is used to join the computer to the directory. You should generate a random, strong password to use for this parameter. */
    Password: string;
    /** An array of Attribute objects that contain any LDAP attributes to apply to the computer account. */
    ComputerAttributes?: Attribute[];
    /** The fully-qualified distinguished name of the organizational unit to place the computer account in. */
    OrganizationalUnitDistinguishedName?: string;
}
/** Initiates the creation of a conditional forwarder for your Directory Service for Microsoft Active Directory. Conditional forwarders are required in order to set up a trust relationship with another do */
export interface CreateConditionalForwarderInput {
    /** The directory ID of the Amazon Web Services directory for which you are creating the conditional forwarder. */
    DirectoryId: string;
    /** The fully qualified domain name (FQDN) of the remote domain with which you will set up a trust relationship. */
    RemoteDomainName: string;
    /** The IP addresses of the remote DNS server associated with RemoteDomainName. */
    DnsIpAddrs?: string[];
    /** The IPv6 addresses of the remote DNS server associated with RemoteDomainName. */
    DnsIpv6Addrs?: string[];
}
/** Contains the inputs for the CreateDirectory operation. */
export interface CreateDirectoryInput {
    /** The fully qualified name for the directory, such as corp.example.com. */
    Name: string;
    /** The password for the directory administrator. The directory creation process creates a directory administrator account with the user name Administrator and this password. If you need to change the pas */
    Password: string;
    /** The size of the directory. */
    Size: 'Small' | 'Large';
    /** A description for the directory. */
    Description?: string;
    /** The network type for your directory. Simple AD supports IPv4 and Dual-stack only. */
    NetworkType?: 'Dual-stack' | 'IPv4' | 'IPv6';
    /** The NetBIOS name of the directory, such as CORP. */
    ShortName?: string;
    /** The tags to be assigned to the Simple AD directory. */
    Tags?: Tag[];
    /** A DirectoryVpcSettings object that contains additional information for the operation. */
    VpcSettings?: DirectoryVpcSettings;
}
export interface CreateHybridADInput {
    /** The unique identifier of the successful directory assessment that validates your self-managed AD environment. You must have a successful directory assessment before you create a hybrid directory. */
    AssessmentId: string;
    /** The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials for the service account used to join hybrid domain controllers to your self-managed AD do */
    SecretArn: string;
    /** The tags to be assigned to the directory. Each tag consists of a key and value pair. You can specify multiple tags as a list. */
    Tags?: Tag[];
}
export interface CreateLogSubscriptionInput {
    /** Identifier of the directory to which you want to subscribe and receive real-time logs to your specified CloudWatch log group. */
    DirectoryId: string;
    /** The name of the CloudWatch log group where the real-time domain controller logs are forwarded. */
    LogGroupName: string;
}
/** Creates an Managed Microsoft AD directory. */
export interface CreateMicrosoftADInput {
    /** The fully qualified domain name for the Managed Microsoft AD directory, such as corp.example.com. This name will resolve inside your VPC only. It does not need to be publicly resolvable. */
    Name: string;
    /** The password for the default administrative user named Admin. If you need to change the password for the administrator account, you can use the ResetUserPassword API call. */
    Password: string;
    /** Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation. */
    VpcSettings: DirectoryVpcSettings;
    /** A description for the directory. This label will appear on the Amazon Web Services console Directory Details page after the directory is created. */
    Description?: string;
    /** Managed Microsoft AD is available in two editions: Standard and Enterprise. Enterprise is the default. */
    Edition?: 'Enterprise' | 'Standard' | 'Hybrid';
    /** The network type for your domain. The default value is IPv4 or IPv6 based on the provided subnet capabilities. */
    NetworkType?: 'Dual-stack' | 'IPv4' | 'IPv6';
    /** The NetBIOS name for your domain, such as CORP. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS. For example, CORP for the directory DNS corp.example.com. */
    ShortName?: string;
    /** The tags to be assigned to the Managed Microsoft AD directory. */
    Tags?: Tag[];
}
/** Contains the inputs for the CreateSnapshot operation. */
export interface CreateSnapshotInput {
    /** The identifier of the directory of which to take a snapshot. */
    DirectoryId: string;
    /** The descriptive name to apply to the snapshot. */
    Name?: string;
}
/** Directory Service for Microsoft Active Directory allows you to configure trust relationships. For example, you can establish a trust between your Managed Microsoft AD directory, and your existing self */
export interface CreateTrustInput {
    /** The Directory ID of the Managed Microsoft AD directory for which to establish the trust relationship. */
    DirectoryId: string;
    /** The Fully Qualified Domain Name (FQDN) of the external domain for which to create the trust relationship. */
    RemoteDomainName: string;
    /** The direction of the trust relationship. */
    TrustDirection: 'One-Way: Outgoing' | 'One-Way: Incoming' | 'Two-Way';
    /** The trust password. The trust password must be the same password that was used when creating the trust relationship on the external domain. */
    TrustPassword: string;
    /** The IP addresses of the remote DNS server associated with RemoteDomainName. */
    ConditionalForwarderIpAddrs?: string[];
    /** The IPv6 addresses of the remote DNS server associated with RemoteDomainName. */
    ConditionalForwarderIpv6Addrs?: string[];
    /** Optional parameter to enable selective authentication for the trust. */
    SelectiveAuth?: 'Enabled' | 'Disabled';
    /** The trust relationship type. Forest is the default. */
    TrustType?: 'Forest' | 'External';
}
export interface DeleteADAssessmentInput {
    /** The unique identifier of the directory assessment to delete. */
    AssessmentId: string;
}
/** Deletes a conditional forwarder. */
export interface DeleteConditionalForwarderInput {
    /** The directory ID for which you are deleting the conditional forwarder. */
    DirectoryId: string;
    /** The fully qualified domain name (FQDN) of the remote domain with which you are deleting the conditional forwarder. */
    RemoteDomainName: string;
}
/** Contains the inputs for the DeleteDirectory operation. */
export interface DeleteDirectoryInput {
    /** The identifier of the directory to delete. */
    DirectoryId: string;
}
export interface DeleteLogSubscriptionInput {
    /** Identifier of the directory whose log subscription you want to delete. */
    DirectoryId: string;
}
/** Contains the inputs for the DeleteSnapshot operation. */
export interface DeleteSnapshotInput {
    /** The identifier of the directory snapshot to be deleted. */
    SnapshotId: string;
}
/** Deletes the local side of an existing trust relationship between the Managed Microsoft AD directory and the external domain. */
export interface DeleteTrustInput {
    /** The Trust ID of the trust relationship to be deleted. */
    TrustId: string;
    /** Delete a conditional forwarder as part of a DeleteTrustRequest. */
    DeleteAssociatedConditionalForwarder?: boolean;
}
export interface DeregisterCertificateInput {
    /** The identifier of the certificate. */
    CertificateId: string;
    /** The identifier of the directory. */
    DirectoryId: string;
}
/** Removes the specified directory as a publisher to the specified Amazon SNS topic. */
export interface DeregisterEventTopicInput {
    /** The Directory ID to remove as a publisher. This directory will no longer send messages to the specified Amazon SNS topic. */
    DirectoryId: string;
    /** The name of the Amazon SNS topic from which to remove the directory as a publisher. */
    TopicName: string;
}
export interface DescribeADAssessmentInput {
    /** The identifier of the directory assessment to describe. */
    AssessmentId: string;
}
/** Contains the inputs for the DescribeCAEnrollmentPolicy operation. */
export interface DescribeCAEnrollmentPolicyInput {
    /** The identifier of the directory for which to retrieve the CA enrollment policy information. */
    DirectoryId: string;
}
export interface DescribeCertificateInput {
    /** The identifier of the certificate. */
    CertificateId: string;
    /** The identifier of the directory. */
    DirectoryId: string;
}
export interface DescribeClientAuthenticationSettingsInput {
    /** The identifier of the directory for which to retrieve information. */
    DirectoryId: string;
    /** The maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation. */
    Limit?: number;
    /** The DescribeClientAuthenticationSettingsResult.NextToken value from a previous call to DescribeClientAuthenticationSettings. Pass null if this is the first call. */
    NextToken?: string;
    /** The type of client authentication for which to retrieve information. If no type is specified, a list of all client authentication types that are supported for the specified directory is retrieved. */
    Type?: 'SmartCard' | 'SmartCardOrPassword';
}
/** Describes a conditional forwarder. */
export interface DescribeConditionalForwardersInput {
    /** The directory ID for which to get the list of associated conditional forwarders. */
    DirectoryId: string;
    /** The fully qualified domain names (FQDN) of the remote domains for which to get the list of associated conditional forwarders. If this member is null, all conditional forwarders are returned. */
    RemoteDomainNames?: string[];
}
/** Contains the inputs for the DescribeDirectories operation. */
export interface DescribeDirectoriesInput {
    /** A list of identifiers of the directories for which to obtain the information. If this member is null, all directories that belong to the current account are returned. An empty list results in an Inval */
    DirectoryIds?: string[];
    /** The maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation. */
    Limit?: number;
    /** The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories. Pass null if this is the first call. */
    NextToken?: string;
}
export interface DescribeDirectoryDataAccessInput {
    /** The directory identifier. */
    DirectoryId: string;
}
export interface DescribeDomainControllersInput {
    /** Identifier of the directory for which to retrieve the domain controller information. */
    DirectoryId: string;
    /** A list of identifiers for the domain controllers whose information will be provided. */
    DomainControllerIds?: string[];
    /** The maximum number of items to return. */
    Limit?: number;
    /** The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers. Pass null if this is the first call. */
    NextToken?: string;
}
/** Describes event topics. */
export interface DescribeEventTopicsInput {
    /** The Directory ID for which to get the list of associated Amazon SNS topics. If this member is null, associations for all Directory IDs are returned. */
    DirectoryId?: string;
    /** A list of Amazon SNS topic names for which to obtain the information. If this member is null, all associations for the specified Directory ID are returned. An empty list results in an InvalidParameter */
    TopicNames?: string[];
}
export interface DescribeHybridADUpdateInput {
    /** The identifier of the hybrid directory for which to retrieve update information. */
    DirectoryId: string;
    /** The pagination token from a previous request to DescribeHybridADUpdate. Pass null if this is the first request. */
    NextToken?: string;
    /** The type of update activities to retrieve. Valid values include SelfManagedInstances and HybridAdministratorAccount. */
    UpdateType?: 'SelfManagedInstances' | 'HybridAdministratorAccount';
}
export interface DescribeLDAPSSettingsInput {
    /** The identifier of the directory. */
    DirectoryId: string;
    /** Specifies the number of items that should be displayed on one page. */
    Limit?: number;
    /** The type of next token used for pagination. */
    NextToken?: string;
    /** The type of LDAP security to enable. Currently only the value Client is supported. */
    Type?: 'Client';
}
export interface DescribeRegionsInput {
    /** The identifier of the directory. */
    DirectoryId: string;
    /** The DescribeRegionsResult.NextToken value from a previous call to DescribeRegions. Pass null if this is the first call. */
    NextToken?: string;
    /** The name of the Region. For example, us-east-1. */
    RegionName?: string;
}
export interface DescribeSettingsInput {
    /** The identifier of the directory for which to retrieve information. */
    DirectoryId: string;
    /** The DescribeSettingsResult.NextToken value from a previous call to DescribeSettings. Pass null if this is the first call. */
    NextToken?: string;
    /** The status of the directory settings for which to retrieve information. */
    Status?: 'Requested' | 'Updating' | 'Updated' | 'Failed' | 'Default';
}
export interface DescribeSharedDirectoriesInput {
    /** Returns the identifier of the directory in the directory owner account. */
    OwnerDirectoryId: string;
    /** The number of shared directories to return in the response object. */
    Limit?: number;
    /** The DescribeSharedDirectoriesResult.NextToken value from a previous call to DescribeSharedDirectories. Pass null if this is the first call. */
    NextToken?: string;
    /** A list of identifiers of all shared directories in your account. */
    SharedDirectoryIds?: string[];
}
/** Contains the inputs for the DescribeSnapshots operation. */
export interface DescribeSnapshotsInput {
    /** The identifier of the directory for which to retrieve snapshot information. */
    DirectoryId?: string;
    /** The maximum number of objects to return. */
    Limit?: number;
    /** The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots. Pass null if this is the first call. */
    NextToken?: string;
    /** A list of identifiers of the snapshots to obtain the information for. If this member is null or empty, all snapshots are returned using the Limit and NextToken members. */
    SnapshotIds?: string[];
}
/** Describes the trust relationships for a particular Managed Microsoft AD directory. If no input parameters are provided, such as directory ID or trust ID, this request describes all the trust relations */
export interface DescribeTrustsInput {
    /** The Directory ID of the Amazon Web Services directory that is a part of the requested trust relationship. */
    DirectoryId?: string;
    /** The maximum number of objects to return. */
    Limit?: number;
    /** The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts. Pass null if this is the first call. */
    NextToken?: string;
    /** A list of identifiers of the trust relationships for which to obtain the information. If this member is null, all trust relationships that belong to the current account are returned. An empty list res */
    TrustIds?: string[];
}
export interface DescribeUpdateDirectoryInput {
    /** The unique identifier of the directory. */
    DirectoryId: string;
    /** The type of updates you want to describe for the directory. */
    UpdateType: 'OS' | 'NETWORK' | 'SIZE';
    /** The DescribeUpdateDirectoryResult. NextToken value from a previous call to DescribeUpdateDirectory. Pass null if this is the first call. */
    NextToken?: string;
    /** The name of the Region. */
    RegionName?: string;
}
/** Contains the inputs for the DisableCAEnrollmentPolicy operation. */
export interface DisableCAEnrollmentPolicyInput {
    /** The identifier of the directory for which to disable the CA enrollment policy. */
    DirectoryId: string;
}
export interface DisableClientAuthenticationInput {
    /** The identifier of the directory */
    DirectoryId: string;
    /** The type of client authentication to disable. Currently the only parameter "SmartCard" is supported. */
    Type: 'SmartCard' | 'SmartCardOrPassword';
}
export interface DisableDirectoryDataAccessInput {
    /** The directory identifier. */
    DirectoryId: string;
}
export interface DisableLDAPSInput {
    /** The identifier of the directory. */
    DirectoryId: string;
    /** The type of LDAP security to enable. Currently only the value Client is supported. */
    Type: 'Client';
}
/** Contains the inputs for the DisableRadius operation. */
export interface DisableRadiusInput {
    /** The identifier of the directory for which to disable MFA. */
    DirectoryId: string;
}
/** Contains the inputs for the DisableSso operation. */
export interface DisableSsoInput {
    /** The identifier of the directory for which to disable single-sign on. */
    DirectoryId: string;
    /** The password of an alternate account to use to disable single-sign on. This is only used for AD Connector directories. For more information, see the UserName parameter. */
    Password?: string;
    /** The username of an alternate account to use to disable single-sign on. This is only used for AD Connector directories. This account must have privileges to remove a service principal name. If the AD C */
    UserName?: string;
}
/** Contains the inputs for the EnableCAEnrollmentPolicy operation. */
export interface EnableCAEnrollmentPolicyInput {
    /** The identifier of the directory for which to enable the CA enrollment policy. */
    DirectoryId: string;
    /** The Amazon Resource Name (ARN) of the Private Certificate Authority (PCA) connector to use for automatic certificate enrollment. This connector must be properly configured and accessible from the dire */
    PcaConnectorArn: string;
}
export interface EnableClientAuthenticationInput {
    /** The identifier of the specified directory. */
    DirectoryId: string;
    /** The type of client authentication to enable. Currently only the value SmartCard is supported. Smart card authentication in AD Connector requires that you enable Kerberos Constrained Delegation for the */
    Type: 'SmartCard' | 'SmartCardOrPassword';
}
export interface EnableDirectoryDataAccessInput {
    /** The directory identifier. */
    DirectoryId: string;
}
export interface EnableLDAPSInput {
    /** The identifier of the directory. */
    DirectoryId: string;
    /** The type of LDAP security to enable. Currently only the value Client is supported. */
    Type: 'Client';
}
/** Contains the inputs for the EnableRadius operation. */
export interface EnableRadiusInput {
    /** The identifier of the directory for which to enable MFA. */
    DirectoryId: string;
    /** A RadiusSettings object that contains information about the RADIUS server. */
    RadiusSettings: RadiusSettings;
}
/** Contains the inputs for the EnableSso operation. */
export interface EnableSsoInput {
    /** The identifier of the directory for which to enable single-sign on. */
    DirectoryId: string;
    /** The password of an alternate account to use to enable single-sign on. This is only used for AD Connector directories. For more information, see the UserName parameter. */
    Password?: string;
    /** The username of an alternate account to use to enable single-sign on. This is only used for AD Connector directories. This account must have privileges to add a service principal name. If the AD Conne */
    UserName?: string;
}
/** Contains the inputs for the GetSnapshotLimits operation. */
export interface GetSnapshotLimitsInput {
    /** Contains the identifier of the directory to obtain the limits for. */
    DirectoryId: string;
}
export interface ListADAssessmentsInput {
    /** The identifier of the directory for which to list assessments. If not specified, all assessments in your account are returned. */
    DirectoryId?: string;
    /** The maximum number of assessment summaries to return. */
    Limit?: number;
    /** The pagination token from a previous request to ListADAssessments. Pass null if this is the first request. */
    NextToken?: string;
}
export interface ListCertificatesInput {
    /** The identifier of the directory. */
    DirectoryId: string;
    /** The number of items that should show up on one page */
    Limit?: number;
    /** A token for requesting another page of certificates if the NextToken response element indicates that more certificates are available. Use the value of the returned NextToken element in your request un */
    NextToken?: string;
}
export interface ListIpRoutesInput {
    /** Identifier (ID) of the directory for which you want to retrieve the IP addresses. */
    DirectoryId: string;
    /** Maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation. */
    Limit?: number;
    /** The ListIpRoutes.NextToken value from a previous call to ListIpRoutes. Pass null if this is the first call. */
    NextToken?: string;
}
export interface ListLogSubscriptionsInput {
    /** If a DirectoryID is provided, lists only the log subscription associated with that directory. If no DirectoryId is provided, lists all log subscriptions associated with your Amazon Web Services accoun */
    DirectoryId?: string;
    /** The maximum number of items returned. */
    Limit?: number;
    /** The token for the next set of items to return. */
    NextToken?: string;
}
export interface ListSchemaExtensionsInput {
    /** The identifier of the directory from which to retrieve the schema extension information. */
    DirectoryId: string;
    /** The maximum number of items to return. */
    Limit?: number;
    /** The ListSchemaExtensions.NextToken value from a previous call to ListSchemaExtensions. Pass null if this is the first call. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** Identifier (ID) of the directory for which you want to retrieve tags. */
    ResourceId: string;
    /** Reserved for future use. */
    Limit?: number;
    /** Reserved for future use. */
    NextToken?: string;
}
export interface RegisterCertificateInput {
    /** The certificate PEM string that needs to be registered. */
    CertificateData: string;
    /** The identifier of the directory. */
    DirectoryId: string;
    /** A ClientCertAuthSettings object that contains client certificate authentication settings. */
    ClientCertAuthSettings?: ClientCertAuthSettings;
    /** The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS. */
    Type?: 'ClientCertAuth' | 'ClientLDAPS';
}
/** Registers a new event topic. */
export interface RegisterEventTopicInput {
    /** The Directory ID that will publish status messages to the Amazon SNS topic. */
    DirectoryId: string;
    /** The Amazon SNS topic name to which the directory will publish status messages. This Amazon SNS topic must be in the same region as the specified Directory ID. */
    TopicName: string;
}
export interface RejectSharedDirectoryInput {
    /** Identifier of the shared directory in the directory consumer account. This identifier is different for each directory owner account. */
    SharedDirectoryId: string;
}
export interface RemoveIpRoutesInput {
    /** Identifier (ID) of the directory from which you want to remove the IP addresses. */
    DirectoryId: string;
    /** IP address blocks that you want to remove. */
    CidrIps?: string[];
    /** IPv6 address blocks that you want to remove. */
    CidrIpv6s?: string[];
}
export interface RemoveRegionInput {
    /** The identifier of the directory for which you want to remove Region replication. */
    DirectoryId: string;
}
export interface RemoveTagsFromResourceInput {
    /** Identifier (ID) of the directory from which to remove the tag. */
    ResourceId: string;
    /** The tag key (name) of the tag to be removed. */
    TagKeys: string[];
}
export interface ResetUserPasswordInput {
    /** Identifier of the Managed Microsoft AD or Simple AD directory in which the user resides. */
    DirectoryId: string;
    /** The new password that will be reset. */
    NewPassword: string;
    /** The user name of the user whose password will be reset. */
    UserName: string;
}
/** An object representing the inputs for the RestoreFromSnapshot operation. */
export interface RestoreFromSnapshotInput {
    /** The identifier of the snapshot to restore from. */
    SnapshotId: string;
}
export interface ShareDirectoryInput {
    /** Identifier of the Managed Microsoft AD directory that you want to share with other Amazon Web Services accounts. */
    DirectoryId: string;
    /** The method used when sharing a directory to determine whether the directory should be shared within your Amazon Web Services organization (ORGANIZATIONS) or with any Amazon Web Services account by sen */
    ShareMethod: 'ORGANIZATIONS' | 'HANDSHAKE';
    /** Identifier for the directory consumer account with whom the directory is to be shared. */
    ShareTarget: ShareTarget;
    /** A directory share request that is sent by the directory owner to the directory consumer. The request includes a typed message to help the directory consumer administrator determine whether to approve  */
    ShareNotes?: string;
}
export interface StartADAssessmentInput {
    /** Configuration parameters for the directory assessment, including DNS server information, domain name, Amazon VPC subnet, and Amazon Web Services System Manager managed node details. */
    AssessmentConfiguration?: AssessmentConfiguration;
    /** The identifier of the directory for which to perform the assessment. This should be an existing directory. If the assessment is not for an existing directory, this parameter should be omitted. */
    DirectoryId?: string;
}
export interface StartSchemaExtensionInput {
    /** If true, creates a snapshot of the directory before applying the schema extension. */
    CreateSnapshotBeforeSchemaExtension: boolean;
    /** A description of the schema extension. */
    Description: string;
    /** The identifier of the directory for which the schema extension will be applied to. */
    DirectoryId: string;
    /** The LDIF file represented as a string. To construct the LdifContent string, precede each line as it would be formatted in an ldif file with \n. See the example request below for more details. The file */
    LdifContent: string;
}
export interface UnshareDirectoryInput {
    /** The identifier of the Managed Microsoft AD directory that you want to stop sharing. */
    DirectoryId: string;
    /** Identifier for the directory consumer account with whom the directory has to be unshared. */
    UnshareTarget: UnshareTarget;
}
/** Updates a conditional forwarder. */
export interface UpdateConditionalForwarderInput {
    /** The directory ID of the Amazon Web Services directory for which to update the conditional forwarder. */
    DirectoryId: string;
    /** The fully qualified domain name (FQDN) of the remote domain with which you will set up a trust relationship. */
    RemoteDomainName: string;
    /** The updated IP addresses of the remote DNS server associated with the conditional forwarder. */
    DnsIpAddrs?: string[];
    /** The updated IPv6 addresses of the remote DNS server associated with the conditional forwarder. */
    DnsIpv6Addrs?: string[];
}
export interface UpdateDirectorySetupInput {
    /** The identifier of the directory to update. */
    DirectoryId: string;
    /** The type of update to perform on the directory. */
    UpdateType: 'OS' | 'NETWORK' | 'SIZE';
    /** Specifies whether to create a directory snapshot before performing the update. */
    CreateSnapshotBeforeUpdate?: boolean;
    /** Directory size configuration to apply during the update operation. */
    DirectorySizeUpdateSettings?: DirectorySizeUpdateSettings;
    /** Network configuration to apply during the directory update operation. */
    NetworkUpdateSettings?: NetworkUpdateSettings;
    /** Operating system configuration to apply during the directory update operation. */
    OSUpdateSettings?: OSUpdateSettings;
}
export interface UpdateHybridADInput {
    /** The identifier of the hybrid directory to update. */
    DirectoryId: string;
    /** We create a hybrid directory administrator account when we create a hybrid directory. Use HybridAdministratorAccountUpdate to recover the hybrid directory administrator account if you have deleted it. */
    HybridAdministratorAccountUpdate?: HybridAdministratorAccountUpdate;
    /** Updates to the self-managed AD configuration, including DNS server IP addresses and Amazon Web Services System Manager managed node identifiers. */
    SelfManagedInstancesSettings?: HybridCustomerInstancesSettings;
}
export interface UpdateNumberOfDomainControllersInput {
    /** The number of domain controllers desired in the directory. */
    DesiredNumber: number;
    /** Identifier of the directory to which the domain controllers will be added or removed. */
    DirectoryId: string;
}
/** Contains the inputs for the UpdateRadius operation. */
export interface UpdateRadiusInput {
    /** The identifier of the directory for which to update the RADIUS server information. */
    DirectoryId: string;
    /** A RadiusSettings object that contains information about the RADIUS server. */
    RadiusSettings: RadiusSettings;
}
export interface UpdateSettingsInput {
    /** The identifier of the directory for which to update settings. */
    DirectoryId: string;
    /** The list of Setting objects. */
    Settings: Setting[];
}
export interface UpdateTrustInput {
    /** Identifier of the trust relationship. */
    TrustId: string;
    /** Updates selective authentication for the trust. */
    SelectiveAuth?: 'Enabled' | 'Disabled';
}
/** Initiates the verification of an existing trust relationship between an Managed Microsoft AD directory and an external domain. */
export interface VerifyTrustInput {
    /** The unique Trust ID of the trust relationship to verify. */
    TrustId: string;
}
/** Directory Service service binding for Step Functions SDK integrations. */
export declare class DirectoryService {
    constructor();
    acceptSharedDirectory<T>(params: AcceptSharedDirectoryInput): Promise<T>;
    addIpRoutes<T>(params: AddIpRoutesInput): Promise<T>;
    addRegion<T>(params: AddRegionInput): Promise<T>;
    addTagsToResource<T>(params: AddTagsToResourceInput): Promise<T>;
    cancelSchemaExtension<T>(params: CancelSchemaExtensionInput): Promise<T>;
    connectDirectory<T>(params: ConnectDirectoryInput): Promise<T>;
    createAlias<T>(params: CreateAliasInput): Promise<T>;
    createComputer<T>(params: CreateComputerInput): Promise<T>;
    createConditionalForwarder<T>(params: CreateConditionalForwarderInput): Promise<T>;
    createDirectory<T>(params: CreateDirectoryInput): Promise<T>;
    createHybridAD<T>(params: CreateHybridADInput): Promise<T>;
    createLogSubscription<T>(params: CreateLogSubscriptionInput): Promise<T>;
    createMicrosoftAD<T>(params: CreateMicrosoftADInput): Promise<T>;
    createSnapshot<T>(params: CreateSnapshotInput): Promise<T>;
    createTrust<T>(params: CreateTrustInput): Promise<T>;
    deleteADAssessment<T>(params: DeleteADAssessmentInput): Promise<T>;
    deleteConditionalForwarder<T>(params: DeleteConditionalForwarderInput): Promise<T>;
    deleteDirectory<T>(params: DeleteDirectoryInput): Promise<T>;
    deleteLogSubscription<T>(params: DeleteLogSubscriptionInput): Promise<T>;
    deleteSnapshot<T>(params: DeleteSnapshotInput): Promise<T>;
    deleteTrust<T>(params: DeleteTrustInput): Promise<T>;
    deregisterCertificate<T>(params: DeregisterCertificateInput): Promise<T>;
    deregisterEventTopic<T>(params: DeregisterEventTopicInput): Promise<T>;
    describeADAssessment<T>(params: DescribeADAssessmentInput): Promise<T>;
    describeCAEnrollmentPolicy<T>(params: DescribeCAEnrollmentPolicyInput): Promise<T>;
    describeCertificate<T>(params: DescribeCertificateInput): Promise<T>;
    describeClientAuthenticationSettings<T>(params: DescribeClientAuthenticationSettingsInput): Promise<T>;
    describeConditionalForwarders<T>(params: DescribeConditionalForwardersInput): Promise<T>;
    describeDirectories<T>(params: DescribeDirectoriesInput): Promise<T>;
    describeDirectoryDataAccess<T>(params: DescribeDirectoryDataAccessInput): Promise<T>;
    describeDomainControllers<T>(params: DescribeDomainControllersInput): Promise<T>;
    describeEventTopics<T>(params: DescribeEventTopicsInput): Promise<T>;
    describeHybridADUpdate<T>(params: DescribeHybridADUpdateInput): Promise<T>;
    describeLDAPSSettings<T>(params: DescribeLDAPSSettingsInput): Promise<T>;
    describeRegions<T>(params: DescribeRegionsInput): Promise<T>;
    describeSettings<T>(params: DescribeSettingsInput): Promise<T>;
    describeSharedDirectories<T>(params: DescribeSharedDirectoriesInput): Promise<T>;
    describeSnapshots<T>(params: DescribeSnapshotsInput): Promise<T>;
    describeTrusts<T>(params: DescribeTrustsInput): Promise<T>;
    describeUpdateDirectory<T>(params: DescribeUpdateDirectoryInput): Promise<T>;
    disableCAEnrollmentPolicy<T>(params: DisableCAEnrollmentPolicyInput): Promise<T>;
    disableClientAuthentication<T>(params: DisableClientAuthenticationInput): Promise<T>;
    disableDirectoryDataAccess<T>(params: DisableDirectoryDataAccessInput): Promise<T>;
    disableLDAPS<T>(params: DisableLDAPSInput): Promise<T>;
    disableRadius<T>(params: DisableRadiusInput): Promise<T>;
    disableSso<T>(params: DisableSsoInput): Promise<T>;
    enableCAEnrollmentPolicy<T>(params: EnableCAEnrollmentPolicyInput): Promise<T>;
    enableClientAuthentication<T>(params: EnableClientAuthenticationInput): Promise<T>;
    enableDirectoryDataAccess<T>(params: EnableDirectoryDataAccessInput): Promise<T>;
    enableLDAPS<T>(params: EnableLDAPSInput): Promise<T>;
    enableRadius<T>(params: EnableRadiusInput): Promise<T>;
    enableSso<T>(params: EnableSsoInput): Promise<T>;
    getDirectoryLimits<T>(params: Record<string, any>): Promise<T>;
    getSnapshotLimits<T>(params: GetSnapshotLimitsInput): Promise<T>;
    listADAssessments<T>(params: ListADAssessmentsInput): Promise<T>;
    listCertificates<T>(params: ListCertificatesInput): Promise<T>;
    listIpRoutes<T>(params: ListIpRoutesInput): Promise<T>;
    listLogSubscriptions<T>(params: ListLogSubscriptionsInput): Promise<T>;
    listSchemaExtensions<T>(params: ListSchemaExtensionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    registerCertificate<T>(params: RegisterCertificateInput): Promise<T>;
    registerEventTopic<T>(params: RegisterEventTopicInput): Promise<T>;
    rejectSharedDirectory<T>(params: RejectSharedDirectoryInput): Promise<T>;
    removeIpRoutes<T>(params: RemoveIpRoutesInput): Promise<T>;
    removeRegion<T>(params: RemoveRegionInput): Promise<T>;
    removeTagsFromResource<T>(params: RemoveTagsFromResourceInput): Promise<T>;
    resetUserPassword<T>(params: ResetUserPasswordInput): Promise<T>;
    restoreFromSnapshot<T>(params: RestoreFromSnapshotInput): Promise<T>;
    shareDirectory<T>(params: ShareDirectoryInput): Promise<T>;
    startADAssessment<T>(params: StartADAssessmentInput): Promise<T>;
    startSchemaExtension<T>(params: StartSchemaExtensionInput): Promise<T>;
    unshareDirectory<T>(params: UnshareDirectoryInput): Promise<T>;
    updateConditionalForwarder<T>(params: UpdateConditionalForwarderInput): Promise<T>;
    updateDirectorySetup<T>(params: UpdateDirectorySetupInput): Promise<T>;
    updateHybridAD<T>(params: UpdateHybridADInput): Promise<T>;
    updateNumberOfDomainControllers<T>(params: UpdateNumberOfDomainControllersInput): Promise<T>;
    updateRadius<T>(params: UpdateRadiusInput): Promise<T>;
    updateSettings<T>(params: UpdateSettingsInput): Promise<T>;
    updateTrust<T>(params: UpdateTrustInput): Promise<T>;
    verifyTrust<T>(params: VerifyTrustInput): Promise<T>;
}
//# sourceMappingURL=DirectoryService.d.ts.map