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

com.pulumi.azurenative.authorization.kotlin.PolicySetDefinitionVersionAtManagementGroupArgs.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.authorization.kotlin

import com.pulumi.azurenative.authorization.PolicySetDefinitionVersionAtManagementGroupArgs.builder
import com.pulumi.azurenative.authorization.kotlin.enums.PolicyType
import com.pulumi.azurenative.authorization.kotlin.inputs.ParameterDefinitionsValueArgs
import com.pulumi.azurenative.authorization.kotlin.inputs.ParameterDefinitionsValueArgsBuilder
import com.pulumi.azurenative.authorization.kotlin.inputs.PolicyDefinitionGroupArgs
import com.pulumi.azurenative.authorization.kotlin.inputs.PolicyDefinitionGroupArgsBuilder
import com.pulumi.azurenative.authorization.kotlin.inputs.PolicyDefinitionReferenceArgs
import com.pulumi.azurenative.authorization.kotlin.inputs.PolicyDefinitionReferenceArgsBuilder
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.Any
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * The policy set definition version.
 * Azure REST API version: 2023-04-01.
 * Other available API versions: 2024-05-01.
 * ## Example Usage
 * ### Create or update a policy set definition version at management group level
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var policySetDefinitionVersionAtManagementGroup = new AzureNative.Authorization.PolicySetDefinitionVersionAtManagementGroup("policySetDefinitionVersionAtManagementGroup", new()
 *     {
 *         Description = "Policies to enforce low cost storage SKUs",
 *         DisplayName = "Cost Management",
 *         ManagementGroupName = "MyManagementGroup",
 *         Metadata = new Dictionary
 *         {
 *             ["category"] = "Cost Management",
 *         },
 *         PolicyDefinitionVersion = "1.2.1",
 *         PolicyDefinitions = new[]
 *         {
 *             new AzureNative.Authorization.Inputs.PolicyDefinitionReferenceArgs
 *             {
 *                 Parameters =
 *                 {
 *                     { "listOfAllowedSKUs", new AzureNative.Authorization.Inputs.ParameterValuesValueArgs
 *                     {
 *                         Value = new[]
 *                         {
 *                             "Standard_GRS",
 *                             "Standard_LRS",
 *                         },
 *                     } },
 *                 },
 *                 PolicyDefinitionId = "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1",
 *                 PolicyDefinitionReferenceId = "Limit_Skus",
 *             },
 *             new AzureNative.Authorization.Inputs.PolicyDefinitionReferenceArgs
 *             {
 *                 Parameters =
 *                 {
 *                     { "prefix", new AzureNative.Authorization.Inputs.ParameterValuesValueArgs
 *                     {
 *                         Value = "DeptA",
 *                     } },
 *                     { "suffix", new AzureNative.Authorization.Inputs.ParameterValuesValueArgs
 *                     {
 *                         Value = "-LC",
 *                     } },
 *                 },
 *                 PolicyDefinitionId = "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
 *                 PolicyDefinitionReferenceId = "Resource_Naming",
 *             },
 *         },
 *         PolicySetDefinitionName = "CostManagement",
 *         Version = "1.2.1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	authorization "github.com/pulumi/pulumi-azure-native-sdk/authorization/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := authorization.NewPolicySetDefinitionVersionAtManagementGroup(ctx, "policySetDefinitionVersionAtManagementGroup", &authorization.PolicySetDefinitionVersionAtManagementGroupArgs{
 * 			Description:         pulumi.String("Policies to enforce low cost storage SKUs"),
 * 			DisplayName:         pulumi.String("Cost Management"),
 * 			ManagementGroupName: pulumi.String("MyManagementGroup"),
 * 			Metadata: pulumi.Any(map[string]interface{}{
 * 				"category": "Cost Management",
 * 			}),
 * 			PolicyDefinitionVersion: pulumi.String("1.2.1"),
 * 			PolicyDefinitions: authorization.PolicyDefinitionReferenceArray{
 * 				&authorization.PolicyDefinitionReferenceArgs{
 * 					Parameters: authorization.ParameterValuesValueMap{
 * 						"listOfAllowedSKUs": &authorization.ParameterValuesValueArgs{
 * 							Value: pulumi.Any{
 * 								"Standard_GRS",
 * 								"Standard_LRS",
 * 							},
 * 						},
 * 					},
 * 					PolicyDefinitionId:          pulumi.String("/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1"),
 * 					PolicyDefinitionReferenceId: pulumi.String("Limit_Skus"),
 * 				},
 * 				&authorization.PolicyDefinitionReferenceArgs{
 * 					Parameters: authorization.ParameterValuesValueMap{
 * 						"prefix": &authorization.ParameterValuesValueArgs{
 * 							Value: pulumi.Any("DeptA"),
 * 						},
 * 						"suffix": &authorization.ParameterValuesValueArgs{
 * 							Value: pulumi.Any("-LC"),
 * 						},
 * 					},
 * 					PolicyDefinitionId:          pulumi.String("/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming"),
 * 					PolicyDefinitionReferenceId: pulumi.String("Resource_Naming"),
 * 				},
 * 			},
 * 			PolicySetDefinitionName: pulumi.String("CostManagement"),
 * 			Version:                 pulumi.String("1.2.1"),
 * 		})
 * 		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.authorization.PolicySetDefinitionVersionAtManagementGroup;
 * import com.pulumi.azurenative.authorization.PolicySetDefinitionVersionAtManagementGroupArgs;
 * import com.pulumi.azurenative.authorization.inputs.PolicyDefinitionReferenceArgs;
 * 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 policySetDefinitionVersionAtManagementGroup = new PolicySetDefinitionVersionAtManagementGroup("policySetDefinitionVersionAtManagementGroup", PolicySetDefinitionVersionAtManagementGroupArgs.builder()
 *             .description("Policies to enforce low cost storage SKUs")
 *             .displayName("Cost Management")
 *             .managementGroupName("MyManagementGroup")
 *             .metadata(Map.of("category", "Cost Management"))
 *             .policyDefinitionVersion("1.2.1")
 *             .policyDefinitions(
 *                 PolicyDefinitionReferenceArgs.builder()
 *                     .parameters(Map.of("listOfAllowedSKUs", Map.of("value",
 *                         "Standard_GRS",
 *                         "Standard_LRS")))
 *                     .policyDefinitionId("/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1")
 *                     .policyDefinitionReferenceId("Limit_Skus")
 *                     .build(),
 *                 PolicyDefinitionReferenceArgs.builder()
 *                     .parameters(Map.ofEntries(
 *                         Map.entry("prefix", Map.of("value", "DeptA")),
 *                         Map.entry("suffix", Map.of("value", "-LC"))
 *                     ))
 *                     .policyDefinitionId("/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming")
 *                     .policyDefinitionReferenceId("Resource_Naming")
 *                     .build())
 *             .policySetDefinitionName("CostManagement")
 *             .version("1.2.1")
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:authorization:PolicySetDefinitionVersionAtManagementGroup CostManagement /providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}
 * ```
 * @property description The policy set definition description.
 * @property displayName The display name of the policy set definition.
 * @property managementGroupName The name of the management group. The name is case insensitive.
 * @property metadata The policy set definition metadata.  Metadata is an open ended object and is typically a collection of key value pairs.
 * @property parameters The policy set definition parameters that can be used in policy definition references.
 * @property policyDefinitionGroups The metadata describing groups of policy definition references within the policy set definition.
 * @property policyDefinitionVersion The policy set definition version.  The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number
 * @property policyDefinitions An array of policy definition references.
 * @property policySetDefinitionName The name of the policy set definition.
 * @property policyType The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.
 * @property version The policy set definition version in #.#.# format.
 */
public data class PolicySetDefinitionVersionAtManagementGroupArgs(
    public val description: Output? = null,
    public val displayName: Output? = null,
    public val managementGroupName: Output? = null,
    public val metadata: Output? = null,
    public val parameters: Output>? = null,
    public val policyDefinitionGroups: Output>? = null,
    public val policyDefinitionVersion: Output? = null,
    public val policyDefinitions: Output>? = null,
    public val policySetDefinitionName: Output? = null,
    public val policyType: Output>? = null,
    public val version: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.authorization.PolicySetDefinitionVersionAtManagementGroupArgs =
        com.pulumi.azurenative.authorization.PolicySetDefinitionVersionAtManagementGroupArgs.builder()
            .description(description?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .managementGroupName(managementGroupName?.applyValue({ args0 -> args0 }))
            .metadata(metadata?.applyValue({ args0 -> args0 }))
            .parameters(
                parameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            )
            .policyDefinitionGroups(
                policyDefinitionGroups?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .policyDefinitionVersion(policyDefinitionVersion?.applyValue({ args0 -> args0 }))
            .policyDefinitions(
                policyDefinitions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .policySetDefinitionName(policySetDefinitionName?.applyValue({ args0 -> args0 }))
            .policyType(
                policyType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [PolicySetDefinitionVersionAtManagementGroupArgs].
 */
@PulumiTagMarker
public class PolicySetDefinitionVersionAtManagementGroupArgsBuilder internal constructor() {
    private var description: Output? = null

    private var displayName: Output? = null

    private var managementGroupName: Output? = null

    private var metadata: Output? = null

    private var parameters: Output>? = null

    private var policyDefinitionGroups: Output>? = null

    private var policyDefinitionVersion: Output? = null

    private var policyDefinitions: Output>? = null

    private var policySetDefinitionName: Output? = null

    private var policyType: Output>? = null

    private var version: Output? = null

    /**
     * @param value The policy set definition description.
     */
    @JvmName("vuqgyetjetknwdqm")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The display name of the policy set definition.
     */
    @JvmName("hjpygxcfjwradwub")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

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

    /**
     * @param value The policy set definition metadata.  Metadata is an open ended object and is typically a collection of key value pairs.
     */
    @JvmName("qacaedcuehehkhfn")
    public suspend fun metadata(`value`: Output) {
        this.metadata = value
    }

    /**
     * @param value The policy set definition parameters that can be used in policy definition references.
     */
    @JvmName("jievuhmobefekcmg")
    public suspend fun parameters(`value`: Output>) {
        this.parameters = value
    }

    /**
     * @param value The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("wkxuifojcoqmmqhx")
    public suspend fun policyDefinitionGroups(`value`: Output>) {
        this.policyDefinitionGroups = value
    }

    @JvmName("htdxsfkuabffcrms")
    public suspend fun policyDefinitionGroups(vararg values: Output) {
        this.policyDefinitionGroups = Output.all(values.asList())
    }

    /**
     * @param values The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("sljgeulgbdwnqcrm")
    public suspend fun policyDefinitionGroups(values: List>) {
        this.policyDefinitionGroups = Output.all(values)
    }

    /**
     * @param value The policy set definition version.  The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number
     */
    @JvmName("wyqvencidvmlfbix")
    public suspend fun policyDefinitionVersion(`value`: Output) {
        this.policyDefinitionVersion = value
    }

    /**
     * @param value An array of policy definition references.
     */
    @JvmName("uuskixosahjikvaq")
    public suspend fun policyDefinitions(`value`: Output>) {
        this.policyDefinitions = value
    }

    @JvmName("legkhlbhrdmujegt")
    public suspend fun policyDefinitions(vararg values: Output) {
        this.policyDefinitions = Output.all(values.asList())
    }

    /**
     * @param values An array of policy definition references.
     */
    @JvmName("ccddedvscbsfnvqh")
    public suspend fun policyDefinitions(values: List>) {
        this.policyDefinitions = Output.all(values)
    }

    /**
     * @param value The name of the policy set definition.
     */
    @JvmName("moyvesfmgutahypm")
    public suspend fun policySetDefinitionName(`value`: Output) {
        this.policySetDefinitionName = value
    }

    /**
     * @param value The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.
     */
    @JvmName("clmvjobkiqjkgohf")
    public suspend fun policyType(`value`: Output>) {
        this.policyType = value
    }

    /**
     * @param value The policy set definition version in #.#.# format.
     */
    @JvmName("yahurucpcmvnwiyv")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value The policy set definition description.
     */
    @JvmName("cuspthaegsfdbusd")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The display name of the policy set definition.
     */
    @JvmName("sqsgqleqnpmqxmcq")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

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

    /**
     * @param value The policy set definition metadata.  Metadata is an open ended object and is typically a collection of key value pairs.
     */
    @JvmName("qpalgrslyaapjbyk")
    public suspend fun metadata(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param value The policy set definition parameters that can be used in policy definition references.
     */
    @JvmName("swxqdugrseaebwlp")
    public suspend fun parameters(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param argument The policy set definition parameters that can be used in policy definition references.
     */
    @JvmName("mtgkdyinbybmdtxw")
    public suspend fun parameters(vararg argument: Pair Unit>) {
        val toBeMapped = argument.toList().map { (left, right) ->
            left to
                ParameterDefinitionsValueArgsBuilder().applySuspend { right() }.build()
        }.toMap()
        val mapped = of(toBeMapped)
        this.parameters = mapped
    }

    /**
     * @param values The policy set definition parameters that can be used in policy definition references.
     */
    @JvmName("uirjfryffybjihir")
    public fun parameters(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param value The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("mucicvtxyshodtpn")
    public suspend fun policyDefinitionGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyDefinitionGroups = mapped
    }

    /**
     * @param argument The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("cosftjkcvoxepnwb")
    public suspend fun policyDefinitionGroups(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PolicyDefinitionGroupArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.policyDefinitionGroups = mapped
    }

    /**
     * @param argument The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("wtsitqshditsooua")
    public suspend fun policyDefinitionGroups(vararg argument: suspend PolicyDefinitionGroupArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PolicyDefinitionGroupArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.policyDefinitionGroups = mapped
    }

    /**
     * @param argument The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("ualattutavqoraxh")
    public suspend fun policyDefinitionGroups(argument: suspend PolicyDefinitionGroupArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(PolicyDefinitionGroupArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.policyDefinitionGroups = mapped
    }

    /**
     * @param values The metadata describing groups of policy definition references within the policy set definition.
     */
    @JvmName("hgwpbvparbblxoow")
    public suspend fun policyDefinitionGroups(vararg values: PolicyDefinitionGroupArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.policyDefinitionGroups = mapped
    }

    /**
     * @param value The policy set definition version.  The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number
     */
    @JvmName("jugwdsbdtokrmgbu")
    public suspend fun policyDefinitionVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyDefinitionVersion = mapped
    }

    /**
     * @param value An array of policy definition references.
     */
    @JvmName("apwnmdyyffvwljnn")
    public suspend fun policyDefinitions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyDefinitions = mapped
    }

    /**
     * @param argument An array of policy definition references.
     */
    @JvmName("wfbcuyislgdtnfek")
    public suspend fun policyDefinitions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PolicyDefinitionReferenceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.policyDefinitions = mapped
    }

    /**
     * @param argument An array of policy definition references.
     */
    @JvmName("okapaggqabqbwjux")
    public suspend fun policyDefinitions(vararg argument: suspend PolicyDefinitionReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PolicyDefinitionReferenceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.policyDefinitions = mapped
    }

    /**
     * @param argument An array of policy definition references.
     */
    @JvmName("hsbpifcajcpbcegc")
    public suspend fun policyDefinitions(argument: suspend PolicyDefinitionReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            PolicyDefinitionReferenceArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.policyDefinitions = mapped
    }

    /**
     * @param values An array of policy definition references.
     */
    @JvmName("qamyebxqrpyciqcl")
    public suspend fun policyDefinitions(vararg values: PolicyDefinitionReferenceArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.policyDefinitions = mapped
    }

    /**
     * @param value The name of the policy set definition.
     */
    @JvmName("ntiuixuqfqwqetnp")
    public suspend fun policySetDefinitionName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policySetDefinitionName = mapped
    }

    /**
     * @param value The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.
     */
    @JvmName("nvvxufvimlqcuxox")
    public suspend fun policyType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyType = mapped
    }

    /**
     * @param value The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.
     */
    @JvmName("ponoxmurvrlkwseg")
    public fun policyType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.policyType = mapped
    }

    /**
     * @param value The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.
     */
    @JvmName("sbggjobkupgyowam")
    public fun policyType(`value`: PolicyType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.policyType = mapped
    }

    /**
     * @param value The policy set definition version in #.#.# format.
     */
    @JvmName("kcdkpvriypugtwti")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): PolicySetDefinitionVersionAtManagementGroupArgs =
        PolicySetDefinitionVersionAtManagementGroupArgs(
            description = description,
            displayName = displayName,
            managementGroupName = managementGroupName,
            metadata = metadata,
            parameters = parameters,
            policyDefinitionGroups = policyDefinitionGroups,
            policyDefinitionVersion = policyDefinitionVersion,
            policyDefinitions = policyDefinitions,
            policySetDefinitionName = policySetDefinitionName,
            policyType = policyType,
            version = version,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy