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

com.pulumi.azurenative.security.kotlin.AssessmentMetadataInSubscriptionArgs.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: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.security.kotlin

import com.pulumi.azurenative.security.AssessmentMetadataInSubscriptionArgs.builder
import com.pulumi.azurenative.security.kotlin.enums.AssessmentType
import com.pulumi.azurenative.security.kotlin.enums.Categories
import com.pulumi.azurenative.security.kotlin.enums.ImplementationEffort
import com.pulumi.azurenative.security.kotlin.enums.Severity
import com.pulumi.azurenative.security.kotlin.enums.Tactics
import com.pulumi.azurenative.security.kotlin.enums.Techniques
import com.pulumi.azurenative.security.kotlin.enums.Threats
import com.pulumi.azurenative.security.kotlin.enums.UserImpact
import com.pulumi.azurenative.security.kotlin.inputs.SecurityAssessmentMetadataPartnerDataArgs
import com.pulumi.azurenative.security.kotlin.inputs.SecurityAssessmentMetadataPartnerDataArgsBuilder
import com.pulumi.azurenative.security.kotlin.inputs.SecurityAssessmentMetadataPropertiesResponsePublishDatesArgs
import com.pulumi.azurenative.security.kotlin.inputs.SecurityAssessmentMetadataPropertiesResponsePublishDatesArgsBuilder
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 com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Security assessment metadata response
 * Azure REST API version: 2021-06-01. Prior API version in Azure Native 1.x: 2020-01-01.
 * ## Example Usage
 * ### Create security assessment metadata for subscription
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var assessmentMetadataInSubscription = new AzureNative.Security.AssessmentMetadataInSubscription("assessmentMetadataInSubscription", new()
 *     {
 *         AssessmentMetadataName = "ca039e75-a276-4175-aebc-bcd41e4b14b7",
 *         AssessmentType = AzureNative.Security.AssessmentType.CustomerManaged,
 *         Categories = new[]
 *         {
 *             AzureNative.Security.Categories.Compute,
 *         },
 *         Description = "Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.",
 *         DisplayName = "Install endpoint protection solution on virtual machine scale sets",
 *         ImplementationEffort = AzureNative.Security.ImplementationEffort.Low,
 *         RemediationDescription = "To install an endpoint protection solution: 1.  Follow the instructions in How do I turn on antimalware in my virtual machine scale set",
 *         Severity = AzureNative.Security.Severity.Medium,
 *         Threats = new[]
 *         {
 *             AzureNative.Security.Threats.DataExfiltration,
 *             AzureNative.Security.Threats.DataSpillage,
 *             AzureNative.Security.Threats.MaliciousInsider,
 *         },
 *         UserImpact = AzureNative.Security.UserImpact.Low,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	security "github.com/pulumi/pulumi-azure-native-sdk/security/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := security.NewAssessmentMetadataInSubscription(ctx, "assessmentMetadataInSubscription", &security.AssessmentMetadataInSubscriptionArgs{
 * 			AssessmentMetadataName: pulumi.String("ca039e75-a276-4175-aebc-bcd41e4b14b7"),
 * 			AssessmentType:         pulumi.String(security.AssessmentTypeCustomerManaged),
 * 			Categories: pulumi.StringArray{
 * 				pulumi.String(security.CategoriesCompute),
 * 			},
 * 			Description:            pulumi.String("Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities."),
 * 			DisplayName:            pulumi.String("Install endpoint protection solution on virtual machine scale sets"),
 * 			ImplementationEffort:   pulumi.String(security.ImplementationEffortLow),
 * 			RemediationDescription: pulumi.String("To install an endpoint protection solution: 1.  Follow the instructions in How do I turn on antimalware in my virtual machine scale set"),
 * 			Severity:               pulumi.String(security.SeverityMedium),
 * 			Threats: pulumi.StringArray{
 * 				pulumi.String(security.ThreatsDataExfiltration),
 * 				pulumi.String(security.ThreatsDataSpillage),
 * 				pulumi.String(security.ThreatsMaliciousInsider),
 * 			},
 * 			UserImpact: pulumi.String(security.UserImpactLow),
 * 		})
 * 		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.security.AssessmentMetadataInSubscription;
 * import com.pulumi.azurenative.security.AssessmentMetadataInSubscriptionArgs;
 * 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 assessmentMetadataInSubscription = new AssessmentMetadataInSubscription("assessmentMetadataInSubscription", AssessmentMetadataInSubscriptionArgs.builder()
 *             .assessmentMetadataName("ca039e75-a276-4175-aebc-bcd41e4b14b7")
 *             .assessmentType("CustomerManaged")
 *             .categories("Compute")
 *             .description("Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.")
 *             .displayName("Install endpoint protection solution on virtual machine scale sets")
 *             .implementationEffort("Low")
 *             .remediationDescription("To install an endpoint protection solution: 1.  Follow the instructions in How do I turn on antimalware in my virtual machine scale set")
 *             .severity("Medium")
 *             .threats(
 *                 "dataExfiltration",
 *                 "dataSpillage",
 *                 "maliciousInsider")
 *             .userImpact("Low")
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:security:AssessmentMetadataInSubscription ca039e75-a276-4175-aebc-bcd41e4b14b7 /subscriptions/{subscriptionId}/providers/Microsoft.Security/assessmentMetadata/{assessmentMetadataName}
 * ```
 * @property assessmentMetadataName The Assessment Key - Unique key for the assessment type
 * @property assessmentType BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition
 * @property categories
 * @property description Human readable description of the assessment
 * @property displayName User friendly display name of the assessment
 * @property implementationEffort The implementation effort required to remediate this assessment
 * @property partnerData Describes the partner that created the assessment
 * @property plannedDeprecationDate
 * @property preview True if this assessment is in preview release status
 * @property publishDates
 * @property remediationDescription Human readable description of what you should do to mitigate this security issue
 * @property severity The severity level of the assessment
 * @property tactics
 * @property techniques
 * @property threats
 * @property userImpact The user impact of the assessment
 */
public data class AssessmentMetadataInSubscriptionArgs(
    public val assessmentMetadataName: Output? = null,
    public val assessmentType: Output>? = null,
    public val categories: Output>>? = null,
    public val description: Output? = null,
    public val displayName: Output? = null,
    public val implementationEffort: Output>? = null,
    public val partnerData: Output? = null,
    public val plannedDeprecationDate: Output? = null,
    public val preview: Output? = null,
    public val publishDates: Output? =
        null,
    public val remediationDescription: Output? = null,
    public val severity: Output>? = null,
    public val tactics: Output>>? = null,
    public val techniques: Output>>? = null,
    public val threats: Output>>? = null,
    public val userImpact: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.security.AssessmentMetadataInSubscriptionArgs =
        com.pulumi.azurenative.security.AssessmentMetadataInSubscriptionArgs.builder()
            .assessmentMetadataName(assessmentMetadataName?.applyValue({ args0 -> args0 }))
            .assessmentType(
                assessmentType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .categories(
                categories?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.transform(
                            { args0 -> args0 },
                            { args0 -> args0.let({ args0 -> args0.toJava() }) },
                        )
                    })
                }),
            )
            .description(description?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .implementationEffort(
                implementationEffort?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .partnerData(partnerData?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .plannedDeprecationDate(plannedDeprecationDate?.applyValue({ args0 -> args0 }))
            .preview(preview?.applyValue({ args0 -> args0 }))
            .publishDates(publishDates?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .remediationDescription(remediationDescription?.applyValue({ args0 -> args0 }))
            .severity(
                severity?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .tactics(
                tactics?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.transform(
                            { args0 -> args0 },
                            { args0 -> args0.let({ args0 -> args0.toJava() }) },
                        )
                    })
                }),
            )
            .techniques(
                techniques?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.transform(
                            { args0 -> args0 },
                            { args0 -> args0.let({ args0 -> args0.toJava() }) },
                        )
                    })
                }),
            )
            .threats(
                threats?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.transform(
                            { args0 -> args0 },
                            { args0 -> args0.let({ args0 -> args0.toJava() }) },
                        )
                    })
                }),
            )
            .userImpact(
                userImpact?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

/**
 * Builder for [AssessmentMetadataInSubscriptionArgs].
 */
@PulumiTagMarker
public class AssessmentMetadataInSubscriptionArgsBuilder internal constructor() {
    private var assessmentMetadataName: Output? = null

    private var assessmentType: Output>? = null

    private var categories: Output>>? = null

    private var description: Output? = null

    private var displayName: Output? = null

    private var implementationEffort: Output>? = null

    private var partnerData: Output? = null

    private var plannedDeprecationDate: Output? = null

    private var preview: Output? = null

    private var publishDates: Output? =
        null

    private var remediationDescription: Output? = null

    private var severity: Output>? = null

    private var tactics: Output>>? = null

    private var techniques: Output>>? = null

    private var threats: Output>>? = null

    private var userImpact: Output>? = null

    /**
     * @param value The Assessment Key - Unique key for the assessment type
     */
    @JvmName("iujtfyiiveodfkmr")
    public suspend fun assessmentMetadataName(`value`: Output) {
        this.assessmentMetadataName = value
    }

    /**
     * @param value BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition
     */
    @JvmName("iwxatvpocmltohvj")
    public suspend fun assessmentType(`value`: Output>) {
        this.assessmentType = value
    }

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

    @JvmName("wdgxjqxdctwvhiar")
    public suspend fun categories(vararg values: Output>) {
        this.categories = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("srtlwbueuydbcgya")
    public suspend fun categories(values: List>>) {
        this.categories = Output.all(values)
    }

    /**
     * @param value Human readable description of the assessment
     */
    @JvmName("xhkwqjtbygshtalp")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value User friendly display name of the assessment
     */
    @JvmName("alsblccbsjwmjooy")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value The implementation effort required to remediate this assessment
     */
    @JvmName("vdednvpfhpbpymqy")
    public suspend fun implementationEffort(`value`: Output>) {
        this.implementationEffort = value
    }

    /**
     * @param value Describes the partner that created the assessment
     */
    @JvmName("khnngllyndrwjwle")
    public suspend fun partnerData(`value`: Output) {
        this.partnerData = value
    }

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

    /**
     * @param value True if this assessment is in preview release status
     */
    @JvmName("cnagljwrpyvkxkgh")
    public suspend fun preview(`value`: Output) {
        this.preview = value
    }

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

    /**
     * @param value Human readable description of what you should do to mitigate this security issue
     */
    @JvmName("vjuwvguqngbnrsek")
    public suspend fun remediationDescription(`value`: Output) {
        this.remediationDescription = value
    }

    /**
     * @param value The severity level of the assessment
     */
    @JvmName("qlgjxsfltvcuiwna")
    public suspend fun severity(`value`: Output>) {
        this.severity = value
    }

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

    @JvmName("nojqhllkytxcpsns")
    public suspend fun tactics(vararg values: Output>) {
        this.tactics = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("fhsxwnkrdnsfihum")
    public suspend fun tactics(values: List>>) {
        this.tactics = Output.all(values)
    }

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

    @JvmName("qtcvihuyjohhxqta")
    public suspend fun techniques(vararg values: Output>) {
        this.techniques = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("upcxtdfnbqmcytft")
    public suspend fun techniques(values: List>>) {
        this.techniques = Output.all(values)
    }

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

    @JvmName("uoqnwadmlakcvcfh")
    public suspend fun threats(vararg values: Output>) {
        this.threats = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("shmhwwswwxdpnpgk")
    public suspend fun threats(values: List>>) {
        this.threats = Output.all(values)
    }

    /**
     * @param value The user impact of the assessment
     */
    @JvmName("cfasmkiiiulhuwbe")
    public suspend fun userImpact(`value`: Output>) {
        this.userImpact = value
    }

    /**
     * @param value The Assessment Key - Unique key for the assessment type
     */
    @JvmName("yvaoronabyvbmlvt")
    public suspend fun assessmentMetadataName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assessmentMetadataName = mapped
    }

    /**
     * @param value BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition
     */
    @JvmName("adheeoayjbgqwadf")
    public suspend fun assessmentType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assessmentType = mapped
    }

    /**
     * @param value BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition
     */
    @JvmName("alfhxiurtllajrvs")
    public fun assessmentType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.assessmentType = mapped
    }

    /**
     * @param value BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition
     */
    @JvmName("cxopfywancbqcxug")
    public fun assessmentType(`value`: AssessmentType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.assessmentType = mapped
    }

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

    /**
     * @param values
     */
    @JvmName("bhutqqsvabfqpsew")
    public suspend fun categories(vararg values: Either) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.categories = mapped
    }

    /**
     * @param value Human readable description of the assessment
     */
    @JvmName("ufoyjkwouoctpaoy")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value User friendly display name of the assessment
     */
    @JvmName("bqcedakvegpiqrrl")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value The implementation effort required to remediate this assessment
     */
    @JvmName("goyqyyavpmnpahyh")
    public suspend fun implementationEffort(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.implementationEffort = mapped
    }

    /**
     * @param value The implementation effort required to remediate this assessment
     */
    @JvmName("foroanqiptuchoen")
    public fun implementationEffort(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.implementationEffort = mapped
    }

    /**
     * @param value The implementation effort required to remediate this assessment
     */
    @JvmName("hfcjfvxnbmgijrqb")
    public fun implementationEffort(`value`: ImplementationEffort) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.implementationEffort = mapped
    }

    /**
     * @param value Describes the partner that created the assessment
     */
    @JvmName("ohhurxktesorigyf")
    public suspend fun partnerData(`value`: SecurityAssessmentMetadataPartnerDataArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.partnerData = mapped
    }

    /**
     * @param argument Describes the partner that created the assessment
     */
    @JvmName("bfytfmdquactmkmh")
    public suspend fun partnerData(argument: suspend SecurityAssessmentMetadataPartnerDataArgsBuilder.() -> Unit) {
        val toBeMapped = SecurityAssessmentMetadataPartnerDataArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.partnerData = mapped
    }

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

    /**
     * @param value True if this assessment is in preview release status
     */
    @JvmName("eqoqdkjmynthbnpm")
    public suspend fun preview(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preview = mapped
    }

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

    /**
     * @param argument
     */
    @JvmName("mueoayfdevyfcnop")
    public suspend fun publishDates(argument: suspend SecurityAssessmentMetadataPropertiesResponsePublishDatesArgsBuilder.() -> Unit) {
        val toBeMapped =
            SecurityAssessmentMetadataPropertiesResponsePublishDatesArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.publishDates = mapped
    }

    /**
     * @param value Human readable description of what you should do to mitigate this security issue
     */
    @JvmName("pftifkgkxdmkeymu")
    public suspend fun remediationDescription(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.remediationDescription = mapped
    }

    /**
     * @param value The severity level of the assessment
     */
    @JvmName("kntdbgocfoeaufdh")
    public suspend fun severity(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.severity = mapped
    }

    /**
     * @param value The severity level of the assessment
     */
    @JvmName("fhancjydllcopfsb")
    public fun severity(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.severity = mapped
    }

    /**
     * @param value The severity level of the assessment
     */
    @JvmName("irkeaifblaftiqki")
    public fun severity(`value`: Severity) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.severity = mapped
    }

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

    /**
     * @param values
     */
    @JvmName("nbjbytjcinwupifx")
    public suspend fun tactics(vararg values: Either) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tactics = mapped
    }

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

    /**
     * @param values
     */
    @JvmName("xajbgtlrtovgycod")
    public suspend fun techniques(vararg values: Either) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.techniques = mapped
    }

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

    /**
     * @param values
     */
    @JvmName("kbfvmveqjefkwyya")
    public suspend fun threats(vararg values: Either) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.threats = mapped
    }

    /**
     * @param value The user impact of the assessment
     */
    @JvmName("yeuuryuenkxayqra")
    public suspend fun userImpact(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userImpact = mapped
    }

    /**
     * @param value The user impact of the assessment
     */
    @JvmName("rcqqpumvdgnmmixl")
    public fun userImpact(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userImpact = mapped
    }

    /**
     * @param value The user impact of the assessment
     */
    @JvmName("ktlhdgrenvukfjdo")
    public fun userImpact(`value`: UserImpact) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userImpact = mapped
    }

    internal fun build(): AssessmentMetadataInSubscriptionArgs = AssessmentMetadataInSubscriptionArgs(
        assessmentMetadataName = assessmentMetadataName,
        assessmentType = assessmentType,
        categories = categories,
        description = description,
        displayName = displayName,
        implementationEffort = implementationEffort,
        partnerData = partnerData,
        plannedDeprecationDate = plannedDeprecationDate,
        preview = preview,
        publishDates = publishDates,
        remediationDescription = remediationDescription,
        severity = severity,
        tactics = tactics,
        techniques = techniques,
        threats = threats,
        userImpact = userImpact,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy