import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Represents a HostPool definition.
 *
 * Uses Azure REST API version 2024-04-03. In version 2.x of the Azure Native provider, it used API version 2022-09-09.
 *
 * Other available API versions: 2022-09-09, 2022-10-14-preview, 2023-09-05, 2023-10-04-preview, 2023-11-01-preview, 2024-01-16-preview, 2024-03-06-preview, 2024-04-08-preview, 2024-08-08-preview, 2024-11-01-preview, 2025-03-01-preview, 2025-04-01-preview. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native desktopvirtualization [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class HostPool extends pulumi.CustomResource {
    /**
     * Get an existing HostPool resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): HostPool;
    /**
     * Returns true if the given object is an instance of HostPool.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is HostPool;
    /**
     * The session host configuration for updating agent, monitoring agent, and stack component.
     */
    readonly agentUpdate: pulumi.Output<outputs.desktopvirtualization.AgentUpdatePropertiesResponse | undefined>;
    /**
     * List of App Attach Package links.
     */
    readonly appAttachPackageReferences: pulumi.Output<string[]>;
    /**
     * List of applicationGroup links.
     */
    readonly applicationGroupReferences: pulumi.Output<string[]>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * Is cloud pc resource.
     */
    readonly cloudPcResource: pulumi.Output<boolean>;
    /**
     * Custom rdp property of HostPool.
     */
    readonly customRdpProperty: pulumi.Output<string | undefined>;
    /**
     * Description of HostPool.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
     */
    readonly etag: pulumi.Output<string>;
    /**
     * Friendly name of HostPool.
     */
    readonly friendlyName: pulumi.Output<string | undefined>;
    /**
     * HostPool type for desktop.
     */
    readonly hostPoolType: pulumi.Output<string>;
    readonly identity: pulumi.Output<outputs.desktopvirtualization.ResourceModelWithAllowedPropertySetResponseIdentity | undefined>;
    /**
     * Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.
     */
    readonly kind: pulumi.Output<string | undefined>;
    /**
     * The type of the load balancer.
     */
    readonly loadBalancerType: pulumi.Output<string>;
    /**
     * The geo-location where the resource lives
     */
    readonly location: pulumi.Output<string>;
    /**
     * The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
     */
    readonly managedBy: pulumi.Output<string | undefined>;
    /**
     * The max session limit of HostPool.
     */
    readonly maxSessionLimit: pulumi.Output<number | undefined>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * ObjectId of HostPool. (internal use)
     */
    readonly objectId: pulumi.Output<string>;
    /**
     * PersonalDesktopAssignment type for HostPool.
     */
    readonly personalDesktopAssignmentType: pulumi.Output<string | undefined>;
    readonly plan: pulumi.Output<outputs.desktopvirtualization.ResourceModelWithAllowedPropertySetResponsePlan | undefined>;
    /**
     * The type of preferred application group type, default to Desktop Application Group
     */
    readonly preferredAppGroupType: pulumi.Output<string>;
    /**
     * List of private endpoint connection associated with the specified resource
     */
    readonly privateEndpointConnections: pulumi.Output<outputs.desktopvirtualization.PrivateEndpointConnectionResponse[]>;
    /**
     * Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints
     */
    readonly publicNetworkAccess: pulumi.Output<string | undefined>;
    /**
     * The registration info of HostPool.
     */
    readonly registrationInfo: pulumi.Output<outputs.desktopvirtualization.RegistrationInfoResponse | undefined>;
    /**
     * The ring number of HostPool.
     */
    readonly ring: pulumi.Output<number | undefined>;
    readonly sku: pulumi.Output<outputs.desktopvirtualization.ResourceModelWithAllowedPropertySetResponseSku | undefined>;
    /**
     * ClientId for the registered Relying Party used to issue WVD SSO certificates.
     */
    readonly ssoClientId: pulumi.Output<string | undefined>;
    /**
     * Path to Azure KeyVault storing the secret used for communication to ADFS.
     */
    readonly ssoClientSecretKeyVaultPath: pulumi.Output<string | undefined>;
    /**
     * The type of single sign on Secret Type.
     */
    readonly ssoSecretType: pulumi.Output<string | undefined>;
    /**
     * URL to customer ADFS server for signing WVD SSO certificates.
     */
    readonly ssoadfsAuthority: pulumi.Output<string | undefined>;
    /**
     * The flag to turn on/off StartVMOnConnect feature.
     */
    readonly startVMOnConnect: pulumi.Output<boolean | undefined>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.desktopvirtualization.SystemDataResponse>;
    /**
     * Resource tags.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * Is validation environment.
     */
    readonly validationEnvironment: pulumi.Output<boolean | undefined>;
    /**
     * VM template for sessionhosts configuration within hostpool.
     */
    readonly vmTemplate: pulumi.Output<string | undefined>;
    /**
     * Create a HostPool resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: HostPoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a HostPool resource.
 */
export interface HostPoolArgs {
    /**
     * The session host configuration for updating agent, monitoring agent, and stack component.
     */
    agentUpdate?: pulumi.Input<inputs.desktopvirtualization.AgentUpdatePropertiesArgs>;
    /**
     * Custom rdp property of HostPool.
     */
    customRdpProperty?: pulumi.Input<string>;
    /**
     * Description of HostPool.
     */
    description?: pulumi.Input<string>;
    /**
     * Friendly name of HostPool.
     */
    friendlyName?: pulumi.Input<string>;
    /**
     * The name of the host pool within the specified resource group
     */
    hostPoolName?: pulumi.Input<string>;
    /**
     * HostPool type for desktop.
     */
    hostPoolType: pulumi.Input<string | enums.desktopvirtualization.HostPoolType>;
    identity?: pulumi.Input<inputs.desktopvirtualization.ResourceModelWithAllowedPropertySetIdentityArgs>;
    /**
     * Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.
     */
    kind?: pulumi.Input<string>;
    /**
     * The type of the load balancer.
     */
    loadBalancerType: pulumi.Input<string | enums.desktopvirtualization.LoadBalancerType>;
    /**
     * The geo-location where the resource lives
     */
    location?: pulumi.Input<string>;
    /**
     * The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
     */
    managedBy?: pulumi.Input<string>;
    /**
     * The max session limit of HostPool.
     */
    maxSessionLimit?: pulumi.Input<number>;
    /**
     * PersonalDesktopAssignment type for HostPool.
     */
    personalDesktopAssignmentType?: pulumi.Input<string | enums.desktopvirtualization.PersonalDesktopAssignmentType>;
    plan?: pulumi.Input<inputs.desktopvirtualization.ResourceModelWithAllowedPropertySetPlanArgs>;
    /**
     * The type of preferred application group type, default to Desktop Application Group
     */
    preferredAppGroupType: pulumi.Input<string | enums.desktopvirtualization.PreferredAppGroupType>;
    /**
     * Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints
     */
    publicNetworkAccess?: pulumi.Input<string | enums.desktopvirtualization.HostpoolPublicNetworkAccess>;
    /**
     * The registration info of HostPool.
     */
    registrationInfo?: pulumi.Input<inputs.desktopvirtualization.RegistrationInfoArgs>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The ring number of HostPool.
     */
    ring?: pulumi.Input<number>;
    sku?: pulumi.Input<inputs.desktopvirtualization.ResourceModelWithAllowedPropertySetSkuArgs>;
    /**
     * ClientId for the registered Relying Party used to issue WVD SSO certificates.
     */
    ssoClientId?: pulumi.Input<string>;
    /**
     * Path to Azure KeyVault storing the secret used for communication to ADFS.
     */
    ssoClientSecretKeyVaultPath?: pulumi.Input<string>;
    /**
     * The type of single sign on Secret Type.
     */
    ssoSecretType?: pulumi.Input<string | enums.desktopvirtualization.SSOSecretType>;
    /**
     * URL to customer ADFS server for signing WVD SSO certificates.
     */
    ssoadfsAuthority?: pulumi.Input<string>;
    /**
     * The flag to turn on/off StartVMOnConnect feature.
     */
    startVMOnConnect?: pulumi.Input<boolean>;
    /**
     * Resource tags.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Is validation environment.
     */
    validationEnvironment?: pulumi.Input<boolean>;
    /**
     * VM template for sessionhosts configuration within hostpool.
     */
    vmTemplate?: pulumi.Input<string>;
}
