export interface ActiveDirectoryIdentityProvider {
    /** The directory ID for an Active Directory identity provider. */
    DirectoryId?: string;
    /** The ActiveDirectorySettings resource contains details about the Active Directory, including network access details such as domain name and IP addresses, and the credential provider for user administra */
    ActiveDirectorySettings?: any;
    /** The type of Active Directory – either a self-managed Active Directory or an Amazon Web Services Managed Active Directory. */
    ActiveDirectoryType?: 'SELF_MANAGED' | 'AWS_MANAGED';
    /** Whether this directory is shared from an Amazon Web Services Managed Active Directory. The default value is false. */
    IsSharedActiveDirectory?: boolean;
}
export interface LicenseServerSettings {
    /** The type of license server. */
    ServerType: 'RDS_SAL';
    /** The ServerSettings resource contains the settings for your server. */
    ServerSettings: {
        RdsSalSettings?: any;
    };
}
export interface Filter {
    /** The name of an attribute to use as a filter. */
    Attribute?: string;
    /** The type of search (For example, eq, geq, leq) */
    Operation?: string;
    /** Value of the filter. */
    Value?: string;
}
export interface Settings {
    /** The subnets defined for the registered identity provider. */
    Subnets: string[];
    /** A security group ID that allows inbound TCP port 1688 communication between resources in your VPC and the VPC endpoint for activation servers. */
    SecurityGroupId: string;
}
export interface UpdateSettings {
    /** The ID of one or more subnets in which License Manager will create a VPC endpoint for products that require connectivity to activation servers. */
    AddSubnets: string[];
    /** The ID of one or more subnets to remove. */
    RemoveSubnets: string[];
    /** A security group ID that allows inbound TCP port 1688 communication between resources in your VPC and the VPC endpoints for activation servers. */
    SecurityGroupId?: string;
}
export interface AssociateUserInput {
    /** The identity provider for the user. */
    IdentityProvider: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The ID of the EC2 instance that provides the user-based subscription. */
    InstanceId: string;
    /** The user name from the identity provider. */
    Username: string;
    /** The domain name of the Active Directory that contains information for the user to associate. */
    Domain?: string;
    /** The tags that apply for the user association. */
    Tags?: Record<string, string>;
}
export interface CreateLicenseServerEndpointInput {
    /** The Amazon Resource Name (ARN) that identifies the IdentityProvider resource that contains details about a registered identity provider. In the case of Active Directory, that can be a self-managed Act */
    IdentityProviderArn: string;
    /** The LicenseServerSettings resource to create for the endpoint. The settings include the type of license server and the Secrets Manager secret that enables administrators to add or remove users associa */
    LicenseServerSettings: LicenseServerSettings;
    /** The tags that apply for the license server endpoint. */
    Tags?: Record<string, string>;
}
export interface DeleteLicenseServerEndpointInput {
    /** The Amazon Resource Name (ARN) that identifies the LicenseServerEndpoint resource to delete. */
    LicenseServerEndpointArn: string;
    /** The type of License Server that the delete request refers to. */
    ServerType: 'RDS_SAL';
}
export interface DeregisterIdentityProviderInput {
    /** An object that specifies details for the Active Directory identity provider. */
    IdentityProvider?: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The Amazon Resource Name (ARN) that identifies the identity provider to deregister. */
    IdentityProviderArn?: string;
    /** The name of the user-based subscription product. Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS | REMOTE_DESKTOP_SERVICES */
    Product?: string;
}
export interface DisassociateUserInput {
    /** The domain name of the Active Directory that contains information for the user to disassociate. */
    Domain?: string;
    /** An object that specifies details for the Active Directory identity provider. */
    IdentityProvider?: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The ID of the EC2 instance which provides user-based subscriptions. */
    InstanceId?: string;
    /** The Amazon Resource Name (ARN) of the user to disassociate from the EC2 instance. */
    InstanceUserArn?: string;
    /** The user name from the Active Directory identity provider for the user. */
    Username?: string;
}
export interface ListIdentityProvidersInput {
    /** You can use the following filters to streamline results: Product DirectoryId */
    Filters?: Filter[];
    /** The maximum number of results to return from a single request. */
    MaxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    NextToken?: string;
}
export interface ListInstancesInput {
    /** You can use the following filters to streamline results: Status InstanceId */
    Filters?: Filter[];
    /** The maximum number of results to return from a single request. */
    MaxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    NextToken?: string;
}
export interface ListLicenseServerEndpointsInput {
    /** You can use the following filters to streamline results: IdentityProviderArn */
    Filters?: Filter[];
    /** The maximum number of results to return from a single request. */
    MaxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    NextToken?: string;
}
export interface ListProductSubscriptionsInput {
    /** An object that specifies details for the identity provider. */
    IdentityProvider: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** You can use the following filters to streamline results: Status Username Domain */
    Filters?: Filter[];
    /** The maximum number of results to return from a single request. */
    MaxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    NextToken?: string;
    /** The name of the user-based subscription product. Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS | REMOTE_DESKTOP_SERVICES */
    Product?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve. */
    ResourceArn: string;
}
export interface ListUserAssociationsInput {
    /** An object that specifies details for the identity provider. */
    IdentityProvider: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The ID of the EC2 instance, which provides user-based subscriptions. */
    InstanceId: string;
    /** You can use the following filters to streamline results: Status Username Domain */
    Filters?: Filter[];
    /** The maximum number of results to return from a single request. */
    MaxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    NextToken?: string;
}
export interface RegisterIdentityProviderInput {
    /** An object that specifies details for the identity provider to register. */
    IdentityProvider: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The name of the user-based subscription product. Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS | REMOTE_DESKTOP_SERVICES */
    Product: string;
    /** The registered identity provider’s product related configuration settings such as the subnets to provision VPC endpoints. */
    Settings?: Settings;
    /** The tags that apply to the identity provider's registration. */
    Tags?: Record<string, string>;
}
export interface StartProductSubscriptionInput {
    /** An object that specifies details for the identity provider. */
    IdentityProvider: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The name of the user-based subscription product. Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS | REMOTE_DESKTOP_SERVICES */
    Product: string;
    /** The user name from the identity provider of the user. */
    Username: string;
    /** The domain name of the Active Directory that contains the user for whom to start the product subscription. */
    Domain?: string;
    /** The tags that apply to the product subscription. */
    Tags?: Record<string, string>;
}
export interface StopProductSubscriptionInput {
    /** The domain name of the Active Directory that contains the user for whom to stop the product subscription. */
    Domain?: string;
    /** An object that specifies details for the identity provider. */
    IdentityProvider?: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The name of the user-based subscription product. Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS | REMOTE_DESKTOP_SERVICES */
    Product?: string;
    /** The Amazon Resource Name (ARN) of the product user. */
    ProductUserArn?: string;
    /** The user name from the identity provider for the user. */
    Username?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to tag. */
    ResourceArn: string;
    /** The tags to apply to the specified resource. */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to remove tags from. */
    ResourceArn: string;
    /** The tag keys to remove from the resource. */
    TagKeys: string[];
}
export interface UpdateIdentityProviderSettingsInput {
    /** Updates the registered identity provider’s product related configuration settings. You can update any combination of settings in a single operation such as the: Subnets which you want to add to provis */
    UpdateSettings: UpdateSettings;
    IdentityProvider?: {
        ActiveDirectoryIdentityProvider?: ActiveDirectoryIdentityProvider;
    };
    /** The Amazon Resource Name (ARN) of the identity provider to update. */
    IdentityProviderArn?: string;
    /** The name of the user-based subscription product. Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS | REMOTE_DESKTOP_SERVICES */
    Product?: string;
}
/** License Manager User Subscriptions service binding for Step Functions SDK integrations. */
export declare class LicenseManagerUserSubscriptions {
    constructor();
    associateUser<T>(params: AssociateUserInput): Promise<T>;
    createLicenseServerEndpoint<T>(params: CreateLicenseServerEndpointInput): Promise<T>;
    deleteLicenseServerEndpoint<T>(params: DeleteLicenseServerEndpointInput): Promise<T>;
    deregisterIdentityProvider<T>(params: DeregisterIdentityProviderInput): Promise<T>;
    disassociateUser<T>(params: DisassociateUserInput): Promise<T>;
    listIdentityProviders<T>(params: ListIdentityProvidersInput): Promise<T>;
    listInstances<T>(params: ListInstancesInput): Promise<T>;
    listLicenseServerEndpoints<T>(params: ListLicenseServerEndpointsInput): Promise<T>;
    listProductSubscriptions<T>(params: ListProductSubscriptionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listUserAssociations<T>(params: ListUserAssociationsInput): Promise<T>;
    registerIdentityProvider<T>(params: RegisterIdentityProviderInput): Promise<T>;
    startProductSubscription<T>(params: StartProductSubscriptionInput): Promise<T>;
    stopProductSubscription<T>(params: StopProductSubscriptionInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateIdentityProviderSettings<T>(params: UpdateIdentityProviderSettingsInput): Promise<T>;
}
//# sourceMappingURL=LicenseManagerUserSubscriptions.d.ts.map