All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.desktopvirtualization.kotlin.ApplicationArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.15.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.desktopvirtualization.kotlin

import com.pulumi.azure.desktopvirtualization.ApplicationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Manages a Virtual Desktop Application.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "rg-example-virtualdesktop",
 *     location: "West Europe",
 * });
 * const pooledbreadthfirst = new azure.desktopvirtualization.HostPool("pooledbreadthfirst", {
 *     name: "pooledbreadthfirst",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     type: "Pooled",
 *     loadBalancerType: "BreadthFirst",
 * });
 * const personalautomatic = new azure.desktopvirtualization.HostPool("personalautomatic", {
 *     name: "personalautomatic",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     type: "Personal",
 *     personalDesktopAssignmentType: "Automatic",
 *     loadBalancerType: "BreadthFirst",
 * });
 * const remoteapp = new azure.desktopvirtualization.ApplicationGroup("remoteapp", {
 *     name: "acctag",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     type: "RemoteApp",
 *     hostPoolId: pooledbreadthfirst.id,
 *     friendlyName: "TestAppGroup",
 *     description: "Acceptance Test: An application group",
 * });
 * const chrome = new azure.desktopvirtualization.Application("chrome", {
 *     name: "googlechrome",
 *     applicationGroupId: remoteapp.id,
 *     friendlyName: "Google Chrome",
 *     description: "Chromium based web browser",
 *     path: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
 *     commandLineArgumentPolicy: "DoNotAllow",
 *     commandLineArguments: "--incognito",
 *     showInPortal: false,
 *     iconPath: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
 *     iconIndex: 0,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * example = azure.core.ResourceGroup("example",
 *     name="rg-example-virtualdesktop",
 *     location="West Europe")
 * pooledbreadthfirst = azure.desktopvirtualization.HostPool("pooledbreadthfirst",
 *     name="pooledbreadthfirst",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     type="Pooled",
 *     load_balancer_type="BreadthFirst")
 * personalautomatic = azure.desktopvirtualization.HostPool("personalautomatic",
 *     name="personalautomatic",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     type="Personal",
 *     personal_desktop_assignment_type="Automatic",
 *     load_balancer_type="BreadthFirst")
 * remoteapp = azure.desktopvirtualization.ApplicationGroup("remoteapp",
 *     name="acctag",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     type="RemoteApp",
 *     host_pool_id=pooledbreadthfirst.id,
 *     friendly_name="TestAppGroup",
 *     description="Acceptance Test: An application group")
 * chrome = azure.desktopvirtualization.Application("chrome",
 *     name="googlechrome",
 *     application_group_id=remoteapp.id,
 *     friendly_name="Google Chrome",
 *     description="Chromium based web browser",
 *     path="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
 *     command_line_argument_policy="DoNotAllow",
 *     command_line_arguments="--incognito",
 *     show_in_portal=False,
 *     icon_path="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
 *     icon_index=0)
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Azure = Pulumi.Azure;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Azure.Core.ResourceGroup("example", new()
 *     {
 *         Name = "rg-example-virtualdesktop",
 *         Location = "West Europe",
 *     });
 *     var pooledbreadthfirst = new Azure.DesktopVirtualization.HostPool("pooledbreadthfirst", new()
 *     {
 *         Name = "pooledbreadthfirst",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         Type = "Pooled",
 *         LoadBalancerType = "BreadthFirst",
 *     });
 *     var personalautomatic = new Azure.DesktopVirtualization.HostPool("personalautomatic", new()
 *     {
 *         Name = "personalautomatic",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         Type = "Personal",
 *         PersonalDesktopAssignmentType = "Automatic",
 *         LoadBalancerType = "BreadthFirst",
 *     });
 *     var remoteapp = new Azure.DesktopVirtualization.ApplicationGroup("remoteapp", new()
 *     {
 *         Name = "acctag",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         Type = "RemoteApp",
 *         HostPoolId = pooledbreadthfirst.Id,
 *         FriendlyName = "TestAppGroup",
 *         Description = "Acceptance Test: An application group",
 *     });
 *     var chrome = new Azure.DesktopVirtualization.Application("chrome", new()
 *     {
 *         Name = "googlechrome",
 *         ApplicationGroupId = remoteapp.Id,
 *         FriendlyName = "Google Chrome",
 *         Description = "Chromium based web browser",
 *         Path = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
 *         CommandLineArgumentPolicy = "DoNotAllow",
 *         CommandLineArguments = "--incognito",
 *         ShowInPortal = false,
 *         IconPath = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
 *         IconIndex = 0,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/desktopvirtualization"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
 * 			Name:     pulumi.String("rg-example-virtualdesktop"),
 * 			Location: pulumi.String("West Europe"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		pooledbreadthfirst, err := desktopvirtualization.NewHostPool(ctx, "pooledbreadthfirst", &desktopvirtualization.HostPoolArgs{
 * 			Name:              pulumi.String("pooledbreadthfirst"),
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 			Type:              pulumi.String("Pooled"),
 * 			LoadBalancerType:  pulumi.String("BreadthFirst"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = desktopvirtualization.NewHostPool(ctx, "personalautomatic", &desktopvirtualization.HostPoolArgs{
 * 			Name:                          pulumi.String("personalautomatic"),
 * 			Location:                      example.Location,
 * 			ResourceGroupName:             example.Name,
 * 			Type:                          pulumi.String("Personal"),
 * 			PersonalDesktopAssignmentType: pulumi.String("Automatic"),
 * 			LoadBalancerType:              pulumi.String("BreadthFirst"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		remoteapp, err := desktopvirtualization.NewApplicationGroup(ctx, "remoteapp", &desktopvirtualization.ApplicationGroupArgs{
 * 			Name:              pulumi.String("acctag"),
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 			Type:              pulumi.String("RemoteApp"),
 * 			HostPoolId:        pooledbreadthfirst.ID(),
 * 			FriendlyName:      pulumi.String("TestAppGroup"),
 * 			Description:       pulumi.String("Acceptance Test: An application group"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = desktopvirtualization.NewApplication(ctx, "chrome", &desktopvirtualization.ApplicationArgs{
 * 			Name:                      pulumi.String("googlechrome"),
 * 			ApplicationGroupId:        remoteapp.ID(),
 * 			FriendlyName:              pulumi.String("Google Chrome"),
 * 			Description:               pulumi.String("Chromium based web browser"),
 * 			Path:                      pulumi.String("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"),
 * 			CommandLineArgumentPolicy: pulumi.String("DoNotAllow"),
 * 			CommandLineArguments:      pulumi.String("--incognito"),
 * 			ShowInPortal:              pulumi.Bool(false),
 * 			IconPath:                  pulumi.String("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"),
 * 			IconIndex:                 pulumi.Int(0),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.desktopvirtualization.HostPool;
 * import com.pulumi.azure.desktopvirtualization.HostPoolArgs;
 * import com.pulumi.azure.desktopvirtualization.ApplicationGroup;
 * import com.pulumi.azure.desktopvirtualization.ApplicationGroupArgs;
 * import com.pulumi.azure.desktopvirtualization.Application;
 * import com.pulumi.azure.desktopvirtualization.ApplicationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
 *             .name("rg-example-virtualdesktop")
 *             .location("West Europe")
 *             .build());
 *         var pooledbreadthfirst = new HostPool("pooledbreadthfirst", HostPoolArgs.builder()
 *             .name("pooledbreadthfirst")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .type("Pooled")
 *             .loadBalancerType("BreadthFirst")
 *             .build());
 *         var personalautomatic = new HostPool("personalautomatic", HostPoolArgs.builder()
 *             .name("personalautomatic")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .type("Personal")
 *             .personalDesktopAssignmentType("Automatic")
 *             .loadBalancerType("BreadthFirst")
 *             .build());
 *         var remoteapp = new ApplicationGroup("remoteapp", ApplicationGroupArgs.builder()
 *             .name("acctag")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .type("RemoteApp")
 *             .hostPoolId(pooledbreadthfirst.id())
 *             .friendlyName("TestAppGroup")
 *             .description("Acceptance Test: An application group")
 *             .build());
 *         var chrome = new Application("chrome", ApplicationArgs.builder()
 *             .name("googlechrome")
 *             .applicationGroupId(remoteapp.id())
 *             .friendlyName("Google Chrome")
 *             .description("Chromium based web browser")
 *             .path("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe")
 *             .commandLineArgumentPolicy("DoNotAllow")
 *             .commandLineArguments("--incognito")
 *             .showInPortal(false)
 *             .iconPath("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe")
 *             .iconIndex(0)
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: rg-example-virtualdesktop
 *       location: West Europe
 *   pooledbreadthfirst:
 *     type: azure:desktopvirtualization:HostPool
 *     properties:
 *       name: pooledbreadthfirst
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       type: Pooled
 *       loadBalancerType: BreadthFirst
 *   personalautomatic:
 *     type: azure:desktopvirtualization:HostPool
 *     properties:
 *       name: personalautomatic
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       type: Personal
 *       personalDesktopAssignmentType: Automatic
 *       loadBalancerType: BreadthFirst
 *   remoteapp:
 *     type: azure:desktopvirtualization:ApplicationGroup
 *     properties:
 *       name: acctag
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       type: RemoteApp
 *       hostPoolId: ${pooledbreadthfirst.id}
 *       friendlyName: TestAppGroup
 *       description: 'Acceptance Test: An application group'
 *   chrome:
 *     type: azure:desktopvirtualization:Application
 *     properties:
 *       name: googlechrome
 *       applicationGroupId: ${remoteapp.id}
 *       friendlyName: Google Chrome
 *       description: Chromium based web browser
 *       path: C:\Program Files\Google\Chrome\Application\chrome.exe
 *       commandLineArgumentPolicy: DoNotAllow
 *       commandLineArguments: --incognito
 *       showInPortal: false
 *       iconPath: C:\Program Files\Google\Chrome\Application\chrome.exe
 *       iconIndex: 0
 * ```
 * 
 * ## Import
 * Virtual Desktop Application can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:desktopvirtualization/application:Application example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/myapplicationgroup/applications/myapplication
 * ```
 * @property applicationGroupId Resource ID for a Virtual Desktop Application Group to associate with the Virtual Desktop Application. Changing this forces a new resource to be created.
 * @property commandLineArgumentPolicy Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: `DoNotAllow`, `Allow`, `Require`.
 * @property commandLineArguments Command Line Arguments for Virtual Desktop Application.
 * @property description Option to set a description for the Virtual Desktop Application.
 * @property friendlyName Option to set a friendly name for the Virtual Desktop Application.
 * @property iconIndex The index of the icon you wish to use.
 * @property iconPath Specifies the path for an icon which will be used for this Virtual Desktop Application.
 * @property name The name of the Virtual Desktop Application. Changing the name forces a new resource to be created.
 * @property path The file path location of the app on the Virtual Desktop OS.
 * @property showInPortal Specifies whether to show the RemoteApp program in the RD Web Access server.
 */
public data class ApplicationArgs(
    public val applicationGroupId: Output? = null,
    public val commandLineArgumentPolicy: Output? = null,
    public val commandLineArguments: Output? = null,
    public val description: Output? = null,
    public val friendlyName: Output? = null,
    public val iconIndex: Output? = null,
    public val iconPath: Output? = null,
    public val name: Output? = null,
    public val path: Output? = null,
    public val showInPortal: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.desktopvirtualization.ApplicationArgs =
        com.pulumi.azure.desktopvirtualization.ApplicationArgs.builder()
            .applicationGroupId(applicationGroupId?.applyValue({ args0 -> args0 }))
            .commandLineArgumentPolicy(commandLineArgumentPolicy?.applyValue({ args0 -> args0 }))
            .commandLineArguments(commandLineArguments?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .friendlyName(friendlyName?.applyValue({ args0 -> args0 }))
            .iconIndex(iconIndex?.applyValue({ args0 -> args0 }))
            .iconPath(iconPath?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .path(path?.applyValue({ args0 -> args0 }))
            .showInPortal(showInPortal?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ApplicationArgs].
 */
@PulumiTagMarker
public class ApplicationArgsBuilder internal constructor() {
    private var applicationGroupId: Output? = null

    private var commandLineArgumentPolicy: Output? = null

    private var commandLineArguments: Output? = null

    private var description: Output? = null

    private var friendlyName: Output? = null

    private var iconIndex: Output? = null

    private var iconPath: Output? = null

    private var name: Output? = null

    private var path: Output? = null

    private var showInPortal: Output? = null

    /**
     * @param value Resource ID for a Virtual Desktop Application Group to associate with the Virtual Desktop Application. Changing this forces a new resource to be created.
     */
    @JvmName("kbqlavtbengqlfso")
    public suspend fun applicationGroupId(`value`: Output) {
        this.applicationGroupId = value
    }

    /**
     * @param value Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: `DoNotAllow`, `Allow`, `Require`.
     */
    @JvmName("jyapvggvpimidjdi")
    public suspend fun commandLineArgumentPolicy(`value`: Output) {
        this.commandLineArgumentPolicy = value
    }

    /**
     * @param value Command Line Arguments for Virtual Desktop Application.
     */
    @JvmName("hnlopkioswqyvinl")
    public suspend fun commandLineArguments(`value`: Output) {
        this.commandLineArguments = value
    }

    /**
     * @param value Option to set a description for the Virtual Desktop Application.
     */
    @JvmName("htxxfobunofyccjs")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Option to set a friendly name for the Virtual Desktop Application.
     */
    @JvmName("qqwgeryvfptbownk")
    public suspend fun friendlyName(`value`: Output) {
        this.friendlyName = value
    }

    /**
     * @param value The index of the icon you wish to use.
     */
    @JvmName("jdwurgrondgcsqfx")
    public suspend fun iconIndex(`value`: Output) {
        this.iconIndex = value
    }

    /**
     * @param value Specifies the path for an icon which will be used for this Virtual Desktop Application.
     */
    @JvmName("jehpomopiblejmke")
    public suspend fun iconPath(`value`: Output) {
        this.iconPath = value
    }

    /**
     * @param value The name of the Virtual Desktop Application. Changing the name forces a new resource to be created.
     */
    @JvmName("jjwmcvimprtxftia")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The file path location of the app on the Virtual Desktop OS.
     */
    @JvmName("cdcsrniwtjrlefbu")
    public suspend fun path(`value`: Output) {
        this.path = value
    }

    /**
     * @param value Specifies whether to show the RemoteApp program in the RD Web Access server.
     */
    @JvmName("lfqrcnjytklbulns")
    public suspend fun showInPortal(`value`: Output) {
        this.showInPortal = value
    }

    /**
     * @param value Resource ID for a Virtual Desktop Application Group to associate with the Virtual Desktop Application. Changing this forces a new resource to be created.
     */
    @JvmName("gheqjmdmtvhatsdo")
    public suspend fun applicationGroupId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationGroupId = mapped
    }

    /**
     * @param value Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: `DoNotAllow`, `Allow`, `Require`.
     */
    @JvmName("vaewfdxfryhtgimv")
    public suspend fun commandLineArgumentPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.commandLineArgumentPolicy = mapped
    }

    /**
     * @param value Command Line Arguments for Virtual Desktop Application.
     */
    @JvmName("iifpkbswwfkhemom")
    public suspend fun commandLineArguments(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.commandLineArguments = mapped
    }

    /**
     * @param value Option to set a description for the Virtual Desktop Application.
     */
    @JvmName("eaqytoavdttmyegr")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Option to set a friendly name for the Virtual Desktop Application.
     */
    @JvmName("plobrifdgldxshcx")
    public suspend fun friendlyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.friendlyName = mapped
    }

    /**
     * @param value The index of the icon you wish to use.
     */
    @JvmName("kpxeqiecnhkuxpdx")
    public suspend fun iconIndex(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iconIndex = mapped
    }

    /**
     * @param value Specifies the path for an icon which will be used for this Virtual Desktop Application.
     */
    @JvmName("elmcoxymnutqpelj")
    public suspend fun iconPath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iconPath = mapped
    }

    /**
     * @param value The name of the Virtual Desktop Application. Changing the name forces a new resource to be created.
     */
    @JvmName("mlcbiqcxgaehxile")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The file path location of the app on the Virtual Desktop OS.
     */
    @JvmName("uhqkqnfsuqqmlsye")
    public suspend fun path(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.path = mapped
    }

    /**
     * @param value Specifies whether to show the RemoteApp program in the RD Web Access server.
     */
    @JvmName("dwxhcgqcrevgqbnu")
    public suspend fun showInPortal(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.showInPortal = mapped
    }

    internal fun build(): ApplicationArgs = ApplicationArgs(
        applicationGroupId = applicationGroupId,
        commandLineArgumentPolicy = commandLineArgumentPolicy,
        commandLineArguments = commandLineArguments,
        description = description,
        friendlyName = friendlyName,
        iconIndex = iconIndex,
        iconPath = iconPath,
        name = name,
        path = path,
        showInPortal = showInPortal,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy