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

com.pulumi.azurenative.insights.kotlin.ComponentArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.insights.kotlin

import com.pulumi.azurenative.insights.ComponentArgs.builder
import com.pulumi.azurenative.insights.kotlin.enums.ApplicationType
import com.pulumi.azurenative.insights.kotlin.enums.FlowType
import com.pulumi.azurenative.insights.kotlin.enums.IngestionMode
import com.pulumi.azurenative.insights.kotlin.enums.PublicNetworkAccessType
import com.pulumi.azurenative.insights.kotlin.enums.RequestSource
import com.pulumi.core.Either
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.Double
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * An Application Insights component definition.
 * Azure REST API version: 2020-02-02. Prior API version in Azure Native 1.x: 2015-05-01.
 * Other available API versions: 2020-02-02-preview.
 * ## Example Usage
 * ### ComponentCreate
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var component = new AzureNative.Insights.Component("component", new()
 *     {
 *         ApplicationType = AzureNative.Insights.ApplicationType.Web,
 *         FlowType = AzureNative.Insights.FlowType.Bluefield,
 *         Kind = "web",
 *         Location = "South Central US",
 *         RequestSource = AzureNative.Insights.RequestSource.Rest,
 *         ResourceGroupName = "my-resource-group",
 *         ResourceName = "my-component",
 *         WorkspaceResourceId = "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	insights "github.com/pulumi/pulumi-azure-native-sdk/insights/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := insights.NewComponent(ctx, "component", &insights.ComponentArgs{
 * 			ApplicationType:     pulumi.String(insights.ApplicationTypeWeb),
 * 			FlowType:            pulumi.String(insights.FlowTypeBluefield),
 * 			Kind:                pulumi.String("web"),
 * 			Location:            pulumi.String("South Central US"),
 * 			RequestSource:       pulumi.String(insights.RequestSourceRest),
 * 			ResourceGroupName:   pulumi.String("my-resource-group"),
 * 			ResourceName:        pulumi.String("my-component"),
 * 			WorkspaceResourceId: pulumi.String("/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace"),
 * 		})
 * 		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.azurenative.insights.Component;
 * import com.pulumi.azurenative.insights.ComponentArgs;
 * 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 component = new Component("component", ComponentArgs.builder()
 *             .applicationType("web")
 *             .flowType("Bluefield")
 *             .kind("web")
 *             .location("South Central US")
 *             .requestSource("rest")
 *             .resourceGroupName("my-resource-group")
 *             .resourceName("my-component")
 *             .workspaceResourceId("/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace")
 *             .build());
 *     }
 * }
 * ```
 * ### ComponentUpdate
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var component = new AzureNative.Insights.Component("component", new()
 *     {
 *         Kind = "web",
 *         Location = "South Central US",
 *         ResourceGroupName = "my-resource-group",
 *         ResourceName = "my-component",
 *         Tags =
 *         {
 *             { "ApplicationGatewayType", "Internal-Only" },
 *             { "BillingEntity", "Self" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	insights "github.com/pulumi/pulumi-azure-native-sdk/insights/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := insights.NewComponent(ctx, "component", &insights.ComponentArgs{
 * 			Kind:              pulumi.String("web"),
 * 			Location:          pulumi.String("South Central US"),
 * 			ResourceGroupName: pulumi.String("my-resource-group"),
 * 			ResourceName:      pulumi.String("my-component"),
 * 			Tags: pulumi.StringMap{
 * 				"ApplicationGatewayType": pulumi.String("Internal-Only"),
 * 				"BillingEntity":          pulumi.String("Self"),
 * 			},
 * 		})
 * 		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.azurenative.insights.Component;
 * import com.pulumi.azurenative.insights.ComponentArgs;
 * 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 component = new Component("component", ComponentArgs.builder()
 *             .kind("web")
 *             .location("South Central US")
 *             .resourceGroupName("my-resource-group")
 *             .resourceName("my-component")
 *             .tags(Map.ofEntries(
 *                 Map.entry("ApplicationGatewayType", "Internal-Only"),
 *                 Map.entry("BillingEntity", "Self")
 *             ))
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:insights:Component my-component /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}
 * ```
 * @property applicationType Type of application being monitored.
 * @property disableIpMasking Disable IP masking.
 * @property disableLocalAuth Disable Non-AAD based Auth.
 * @property flowType Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API.
 * @property forceCustomerStorageForProfiler Force users to create their own storage account for profiler and debugger.
 * @property hockeyAppId The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp.
 * @property immediatePurgeDataOn30Days Purge data immediately after 30 days.
 * @property ingestionMode Indicates the flow of the ingestion.
 * @property kind The kind of application that this component refers to, used to customize UI. This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone.
 * @property location Resource location
 * @property publicNetworkAccessForIngestion The network access type for accessing Application Insights ingestion.
 * @property publicNetworkAccessForQuery The network access type for accessing Application Insights query.
 * @property requestSource Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'.
 * @property resourceGroupName The name of the resource group. The name is case insensitive.
 * @property resourceName The name of the Application Insights component resource.
 * @property retentionInDays Retention period in days.
 * @property samplingPercentage Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry.
 * @property tags Resource tags
 * @property workspaceResourceId Resource Id of the log analytics workspace which the data will be ingested to. This property is required to create an application with this API version. Applications from older versions will not have this property.
 */
public data class ComponentArgs(
    public val applicationType: Output>? = null,
    public val disableIpMasking: Output? = null,
    public val disableLocalAuth: Output? = null,
    public val flowType: Output>? = null,
    public val forceCustomerStorageForProfiler: Output? = null,
    public val hockeyAppId: Output? = null,
    public val immediatePurgeDataOn30Days: Output? = null,
    public val ingestionMode: Output>? = null,
    public val kind: Output? = null,
    public val location: Output? = null,
    public val publicNetworkAccessForIngestion: Output>? =
        null,
    public val publicNetworkAccessForQuery: Output>? = null,
    public val requestSource: Output>? = null,
    public val resourceGroupName: Output? = null,
    public val resourceName: Output? = null,
    public val retentionInDays: Output? = null,
    public val samplingPercentage: Output? = null,
    public val tags: Output>? = null,
    public val workspaceResourceId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.insights.ComponentArgs =
        com.pulumi.azurenative.insights.ComponentArgs.builder()
            .applicationType(
                applicationType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .disableIpMasking(disableIpMasking?.applyValue({ args0 -> args0 }))
            .disableLocalAuth(disableLocalAuth?.applyValue({ args0 -> args0 }))
            .flowType(
                flowType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .forceCustomerStorageForProfiler(forceCustomerStorageForProfiler?.applyValue({ args0 -> args0 }))
            .hockeyAppId(hockeyAppId?.applyValue({ args0 -> args0 }))
            .immediatePurgeDataOn30Days(immediatePurgeDataOn30Days?.applyValue({ args0 -> args0 }))
            .ingestionMode(
                ingestionMode?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .kind(kind?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .publicNetworkAccessForIngestion(
                publicNetworkAccessForIngestion?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .publicNetworkAccessForQuery(
                publicNetworkAccessForQuery?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .requestSource(
                requestSource?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .resourceName(resourceName?.applyValue({ args0 -> args0 }))
            .retentionInDays(retentionInDays?.applyValue({ args0 -> args0 }))
            .samplingPercentage(samplingPercentage?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .workspaceResourceId(workspaceResourceId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ComponentArgs].
 */
@PulumiTagMarker
public class ComponentArgsBuilder internal constructor() {
    private var applicationType: Output>? = null

    private var disableIpMasking: Output? = null

    private var disableLocalAuth: Output? = null

    private var flowType: Output>? = null

    private var forceCustomerStorageForProfiler: Output? = null

    private var hockeyAppId: Output? = null

    private var immediatePurgeDataOn30Days: Output? = null

    private var ingestionMode: Output>? = null

    private var kind: Output? = null

    private var location: Output? = null

    private var publicNetworkAccessForIngestion: Output>? =
        null

    private var publicNetworkAccessForQuery: Output>? = null

    private var requestSource: Output>? = null

    private var resourceGroupName: Output? = null

    private var resourceName: Output? = null

    private var retentionInDays: Output? = null

    private var samplingPercentage: Output? = null

    private var tags: Output>? = null

    private var workspaceResourceId: Output? = null

    /**
     * @param value Type of application being monitored.
     */
    @JvmName("bodedhhgyhrimfgd")
    public suspend fun applicationType(`value`: Output>) {
        this.applicationType = value
    }

    /**
     * @param value Disable IP masking.
     */
    @JvmName("hpyiaqtmnmwtavmt")
    public suspend fun disableIpMasking(`value`: Output) {
        this.disableIpMasking = value
    }

    /**
     * @param value Disable Non-AAD based Auth.
     */
    @JvmName("aiaitfdgmtsxukxa")
    public suspend fun disableLocalAuth(`value`: Output) {
        this.disableLocalAuth = value
    }

    /**
     * @param value Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API.
     */
    @JvmName("kdbvutcxslxldydn")
    public suspend fun flowType(`value`: Output>) {
        this.flowType = value
    }

    /**
     * @param value Force users to create their own storage account for profiler and debugger.
     */
    @JvmName("hndaseuolvgodngp")
    public suspend fun forceCustomerStorageForProfiler(`value`: Output) {
        this.forceCustomerStorageForProfiler = value
    }

    /**
     * @param value The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp.
     */
    @JvmName("ohabxahqiqihrltq")
    public suspend fun hockeyAppId(`value`: Output) {
        this.hockeyAppId = value
    }

    /**
     * @param value Purge data immediately after 30 days.
     */
    @JvmName("iufwhexihslqmgdf")
    public suspend fun immediatePurgeDataOn30Days(`value`: Output) {
        this.immediatePurgeDataOn30Days = value
    }

    /**
     * @param value Indicates the flow of the ingestion.
     */
    @JvmName("yhcfmjceqoigurxc")
    public suspend fun ingestionMode(`value`: Output>) {
        this.ingestionMode = value
    }

    /**
     * @param value The kind of application that this component refers to, used to customize UI. This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone.
     */
    @JvmName("jsrbcxsxrunbmduq")
    public suspend fun kind(`value`: Output) {
        this.kind = value
    }

    /**
     * @param value Resource location
     */
    @JvmName("tnsdbswauurdiytv")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The network access type for accessing Application Insights ingestion.
     */
    @JvmName("flilltbihhddsfxh")
    public suspend fun publicNetworkAccessForIngestion(`value`: Output>) {
        this.publicNetworkAccessForIngestion = value
    }

    /**
     * @param value The network access type for accessing Application Insights query.
     */
    @JvmName("oaiuuskbxlcfexpw")
    public suspend fun publicNetworkAccessForQuery(`value`: Output>) {
        this.publicNetworkAccessForQuery = value
    }

    /**
     * @param value Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'.
     */
    @JvmName("scqwtpvpyopaxgcv")
    public suspend fun requestSource(`value`: Output>) {
        this.requestSource = value
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("xkvxrsponesfsdep")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The name of the Application Insights component resource.
     */
    @JvmName("ixkxynondbakgomt")
    public suspend fun resourceName(`value`: Output) {
        this.resourceName = value
    }

    /**
     * @param value Retention period in days.
     */
    @JvmName("weeubqqkrtpdmpnu")
    public suspend fun retentionInDays(`value`: Output) {
        this.retentionInDays = value
    }

    /**
     * @param value Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry.
     */
    @JvmName("txgvdyfhiuajuvme")
    public suspend fun samplingPercentage(`value`: Output) {
        this.samplingPercentage = value
    }

    /**
     * @param value Resource tags
     */
    @JvmName("svukfftdvsnskypb")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Resource Id of the log analytics workspace which the data will be ingested to. This property is required to create an application with this API version. Applications from older versions will not have this property.
     */
    @JvmName("ctqfdwpxrtxkyibq")
    public suspend fun workspaceResourceId(`value`: Output) {
        this.workspaceResourceId = value
    }

    /**
     * @param value Type of application being monitored.
     */
    @JvmName("qwstgrhsfxyrnjgk")
    public suspend fun applicationType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationType = mapped
    }

    /**
     * @param value Type of application being monitored.
     */
    @JvmName("ryonfipnvevlnqai")
    public fun applicationType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.applicationType = mapped
    }

    /**
     * @param value Type of application being monitored.
     */
    @JvmName("bmvrgkqdarhqoisb")
    public fun applicationType(`value`: ApplicationType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.applicationType = mapped
    }

    /**
     * @param value Disable IP masking.
     */
    @JvmName("jlfwswxblalisybh")
    public suspend fun disableIpMasking(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableIpMasking = mapped
    }

    /**
     * @param value Disable Non-AAD based Auth.
     */
    @JvmName("dlsvhihxtpfwecmy")
    public suspend fun disableLocalAuth(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableLocalAuth = mapped
    }

    /**
     * @param value Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API.
     */
    @JvmName("tepqcldvvgqyqtdy")
    public suspend fun flowType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.flowType = mapped
    }

    /**
     * @param value Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API.
     */
    @JvmName("whpjsbtkhntxasyo")
    public fun flowType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.flowType = mapped
    }

    /**
     * @param value Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API.
     */
    @JvmName("dkdkrvllrhgolxem")
    public fun flowType(`value`: FlowType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.flowType = mapped
    }

    /**
     * @param value Force users to create their own storage account for profiler and debugger.
     */
    @JvmName("qvdptoksguxnrhau")
    public suspend fun forceCustomerStorageForProfiler(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forceCustomerStorageForProfiler = mapped
    }

    /**
     * @param value The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp.
     */
    @JvmName("xxykrsakqwdjvdrt")
    public suspend fun hockeyAppId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hockeyAppId = mapped
    }

    /**
     * @param value Purge data immediately after 30 days.
     */
    @JvmName("wgpbffnqcmuihady")
    public suspend fun immediatePurgeDataOn30Days(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.immediatePurgeDataOn30Days = mapped
    }

    /**
     * @param value Indicates the flow of the ingestion.
     */
    @JvmName("iexoixwljtixqyse")
    public suspend fun ingestionMode(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ingestionMode = mapped
    }

    /**
     * @param value Indicates the flow of the ingestion.
     */
    @JvmName("mfklrrsdldyeveft")
    public fun ingestionMode(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ingestionMode = mapped
    }

    /**
     * @param value Indicates the flow of the ingestion.
     */
    @JvmName("htolmdcflfwyapui")
    public fun ingestionMode(`value`: IngestionMode) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ingestionMode = mapped
    }

    /**
     * @param value The kind of application that this component refers to, used to customize UI. This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone.
     */
    @JvmName("dliyvlrdnmfdpoyj")
    public suspend fun kind(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kind = mapped
    }

    /**
     * @param value Resource location
     */
    @JvmName("bsuiopdlskalfdvp")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The network access type for accessing Application Insights ingestion.
     */
    @JvmName("nbepbespwombordi")
    public suspend fun publicNetworkAccessForIngestion(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicNetworkAccessForIngestion = mapped
    }

    /**
     * @param value The network access type for accessing Application Insights ingestion.
     */
    @JvmName("ymrbxnjsngbjnson")
    public fun publicNetworkAccessForIngestion(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.publicNetworkAccessForIngestion = mapped
    }

    /**
     * @param value The network access type for accessing Application Insights ingestion.
     */
    @JvmName("lwhwtlvkwmyvlrov")
    public fun publicNetworkAccessForIngestion(`value`: PublicNetworkAccessType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.publicNetworkAccessForIngestion = mapped
    }

    /**
     * @param value The network access type for accessing Application Insights query.
     */
    @JvmName("qbkuvanvuewnodda")
    public suspend fun publicNetworkAccessForQuery(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicNetworkAccessForQuery = mapped
    }

    /**
     * @param value The network access type for accessing Application Insights query.
     */
    @JvmName("ykmvgodvwkhtgvqh")
    public fun publicNetworkAccessForQuery(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.publicNetworkAccessForQuery = mapped
    }

    /**
     * @param value The network access type for accessing Application Insights query.
     */
    @JvmName("pxwlhwbpjlkkuptn")
    public fun publicNetworkAccessForQuery(`value`: PublicNetworkAccessType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.publicNetworkAccessForQuery = mapped
    }

    /**
     * @param value Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'.
     */
    @JvmName("uudlfqdfgsxnnent")
    public suspend fun requestSource(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestSource = mapped
    }

    /**
     * @param value Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'.
     */
    @JvmName("hontgidpgefwrfrd")
    public fun requestSource(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.requestSource = mapped
    }

    /**
     * @param value Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'.
     */
    @JvmName("eldpvbvwomihhcju")
    public fun requestSource(`value`: RequestSource) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.requestSource = mapped
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("rjqgoeotsxwkaqpd")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The name of the Application Insights component resource.
     */
    @JvmName("oyexiyxrwxbgmsyg")
    public suspend fun resourceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceName = mapped
    }

    /**
     * @param value Retention period in days.
     */
    @JvmName("peiedlogchprqhom")
    public suspend fun retentionInDays(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.retentionInDays = mapped
    }

    /**
     * @param value Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry.
     */
    @JvmName("hirejkjqqahreyfc")
    public suspend fun samplingPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.samplingPercentage = mapped
    }

    /**
     * @param value Resource tags
     */
    @JvmName("ostmnsyddqancxdo")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Resource tags
     */
    @JvmName("adghkbnqkrogjbdw")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Resource Id of the log analytics workspace which the data will be ingested to. This property is required to create an application with this API version. Applications from older versions will not have this property.
     */
    @JvmName("lsoxdvpesgrfdpvk")
    public suspend fun workspaceResourceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workspaceResourceId = mapped
    }

    internal fun build(): ComponentArgs = ComponentArgs(
        applicationType = applicationType,
        disableIpMasking = disableIpMasking,
        disableLocalAuth = disableLocalAuth,
        flowType = flowType,
        forceCustomerStorageForProfiler = forceCustomerStorageForProfiler,
        hockeyAppId = hockeyAppId,
        immediatePurgeDataOn30Days = immediatePurgeDataOn30Days,
        ingestionMode = ingestionMode,
        kind = kind,
        location = location,
        publicNetworkAccessForIngestion = publicNetworkAccessForIngestion,
        publicNetworkAccessForQuery = publicNetworkAccessForQuery,
        requestSource = requestSource,
        resourceGroupName = resourceGroupName,
        resourceName = resourceName,
        retentionInDays = retentionInDays,
        samplingPercentage = samplingPercentage,
        tags = tags,
        workspaceResourceId = workspaceResourceId,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy