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

com.pulumi.azure.network.kotlin.VpnServerConfigurationArgs.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.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.network.kotlin

import com.pulumi.azure.network.VpnServerConfigurationArgs.builder
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationAzureActiveDirectoryAuthenticationArgs
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationAzureActiveDirectoryAuthenticationArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationClientRevokedCertificateArgs
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationClientRevokedCertificateArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationClientRootCertificateArgs
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationClientRootCertificateArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationIpsecPolicyArgs
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationIpsecPolicyArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationRadiusArgs
import com.pulumi.azure.network.kotlin.inputs.VpnServerConfigurationRadiusArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Manages a VPN Server Configuration.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const test = new azure.network.VpnServerConfiguration("test", {
 *     name: "example-config",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     vpnAuthenticationTypes: ["Certificate"],
 *     clientRootCertificates: [{
 *         name: "DigiCert-Federated-ID-Root-CA",
 *         publicCertData: `MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
 * MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 * d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
 * Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
 * BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
 * Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
 * MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
 * QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
 * zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
 * GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
 * GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
 * Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
 * DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
 * HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
 * jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
 * 9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
 * QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
 * uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
 * WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
 * M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
 * `,
 *     }],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * example = azure.core.ResourceGroup("example",
 *     name="example-resources",
 *     location="West Europe")
 * test = azure.network.VpnServerConfiguration("test",
 *     name="example-config",
 *     resource_group_name=example.name,
 *     location=example.location,
 *     vpn_authentication_types=["Certificate"],
 *     client_root_certificates=[azure.network.VpnServerConfigurationClientRootCertificateArgs(
 *         name="DigiCert-Federated-ID-Root-CA",
 *         public_cert_data="""MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
 * MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 * d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
 * Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
 * BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
 * Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
 * MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
 * QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
 * zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
 * GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
 * GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
 * Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
 * DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
 * HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
 * jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
 * 9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
 * QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
 * uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
 * WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
 * M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
 * """,
 *     )])
 * ```
 * ```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 = "example-resources",
 *         Location = "West Europe",
 *     });
 *     var test = new Azure.Network.VpnServerConfiguration("test", new()
 *     {
 *         Name = "example-config",
 *         ResourceGroupName = example.Name,
 *         Location = example.Location,
 *         VpnAuthenticationTypes = new[]
 *         {
 *             "Certificate",
 *         },
 *         ClientRootCertificates = new[]
 *         {
 *             new Azure.Network.Inputs.VpnServerConfigurationClientRootCertificateArgs
 *             {
 *                 Name = "DigiCert-Federated-ID-Root-CA",
 *                 PublicCertData = @"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
 * MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 * d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
 * Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
 * BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
 * Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
 * MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
 * QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
 * zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
 * GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
 * GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
 * Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
 * DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
 * HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
 * jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
 * 9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
 * QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
 * uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
 * WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
 * M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
 * ",
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
 * 	"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("example-resources"),
 * 			Location: pulumi.String("West Europe"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = network.NewVpnServerConfiguration(ctx, "test", &network.VpnServerConfigurationArgs{
 * 			Name:              pulumi.String("example-config"),
 * 			ResourceGroupName: example.Name,
 * 			Location:          example.Location,
 * 			VpnAuthenticationTypes: pulumi.StringArray{
 * 				pulumi.String("Certificate"),
 * 			},
 * 			ClientRootCertificates: network.VpnServerConfigurationClientRootCertificateArray{
 * 				&network.VpnServerConfigurationClientRootCertificateArgs{
 * 					Name: pulumi.String("DigiCert-Federated-ID-Root-CA"),
 * 					PublicCertData: pulumi.String(`MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
 * MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 * d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
 * Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
 * BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
 * Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
 * MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
 * QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
 * zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
 * GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
 * GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
 * Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
 * DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
 * HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
 * jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
 * 9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
 * QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
 * uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
 * WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
 * M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
 * `),
 * 				},
 * 			},
 * 		})
 * 		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.network.VpnServerConfiguration;
 * import com.pulumi.azure.network.VpnServerConfigurationArgs;
 * import com.pulumi.azure.network.inputs.VpnServerConfigurationClientRootCertificateArgs;
 * 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("example-resources")
 *             .location("West Europe")
 *             .build());
 *         var test = new VpnServerConfiguration("test", VpnServerConfigurationArgs.builder()
 *             .name("example-config")
 *             .resourceGroupName(example.name())
 *             .location(example.location())
 *             .vpnAuthenticationTypes("Certificate")
 *             .clientRootCertificates(VpnServerConfigurationClientRootCertificateArgs.builder()
 *                 .name("DigiCert-Federated-ID-Root-CA")
 *                 .publicCertData("""
 * MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
 * MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 * d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
 * Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
 * BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
 * Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
 * MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
 * QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
 * zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
 * GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
 * GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
 * Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
 * DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
 * HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
 * jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
 * 9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
 * QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
 * uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
 * WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
 * M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
 *                 """)
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: example-resources
 *       location: West Europe
 *   test:
 *     type: azure:network:VpnServerConfiguration
 *     properties:
 *       name: example-config
 *       resourceGroupName: ${example.name}
 *       location: ${example.location}
 *       vpnAuthenticationTypes:
 *         - Certificate
 *       clientRootCertificates:
 *         - name: DigiCert-Federated-ID-Root-CA
 *           publicCertData: |
 *             MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
 *             MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 *             d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
 *             Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
 *             BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
 *             Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
 *             MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
 *             QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
 *             zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
 *             GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
 *             GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
 *             Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
 *             DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
 *             HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
 *             jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
 *             9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
 *             QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
 *             uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
 *             WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
 *             M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
 * ```
 * 
 * ## Import
 * VPN Server Configurations can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:network/vpnServerConfiguration:VpnServerConfiguration config1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/vpnServerConfigurations/config1
 * ```
 * @property azureActiveDirectoryAuthentications
 * @property clientRevokedCertificates
 * @property clientRootCertificates
 * @property ipsecPolicy A `ipsec_policy` block as defined below.
 * @property location The Azure location where this VPN Server Configuration should be created. Changing this forces a new resource to be created.
 * @property name The Name which should be used for this VPN Server Configuration. Changing this forces a new resource to be created.
 * @property radius
 * @property resourceGroupName The Name of the Resource Group in which this VPN Server Configuration should be created. Changing this forces a new resource to be created.
 * @property tags A mapping of tags to assign to the resource.
 * @property vpnAuthenticationTypes A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.
 * @property vpnProtocols A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.
 */
public data class VpnServerConfigurationArgs(
    public val azureActiveDirectoryAuthentications:
    Output>? = null,
    public val clientRevokedCertificates:
    Output>? = null,
    public val clientRootCertificates: Output>? =
        null,
    public val ipsecPolicy: Output? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val radius: Output? = null,
    public val resourceGroupName: Output? = null,
    public val tags: Output>? = null,
    public val vpnAuthenticationTypes: Output>? = null,
    public val vpnProtocols: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.network.VpnServerConfigurationArgs =
        com.pulumi.azure.network.VpnServerConfigurationArgs.builder()
            .azureActiveDirectoryAuthentications(
                azureActiveDirectoryAuthentications?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .clientRevokedCertificates(
                clientRevokedCertificates?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .clientRootCertificates(
                clientRootCertificates?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .ipsecPolicy(ipsecPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .radius(radius?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .vpnAuthenticationTypes(
                vpnAuthenticationTypes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .vpnProtocols(vpnProtocols?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

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

    private var clientRevokedCertificates:
        Output>? = null

    private var clientRootCertificates: Output>? =
        null

    private var ipsecPolicy: Output? = null

    private var location: Output? = null

    private var name: Output? = null

    private var radius: Output? = null

    private var resourceGroupName: Output? = null

    private var tags: Output>? = null

    private var vpnAuthenticationTypes: Output>? = null

    private var vpnProtocols: Output>? = null

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

    @JvmName("qogsjgwimicueaoo")
    public suspend fun azureActiveDirectoryAuthentications(
        vararg
        values: Output,
    ) {
        this.azureActiveDirectoryAuthentications = Output.all(values.asList())
    }

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

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

    @JvmName("tnumlteposbupkty")
    public suspend fun clientRevokedCertificates(
        vararg
        values: Output,
    ) {
        this.clientRevokedCertificates = Output.all(values.asList())
    }

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

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

    @JvmName("trjyajtxddqbvpcs")
    public suspend fun clientRootCertificates(
        vararg
        values: Output,
    ) {
        this.clientRootCertificates = Output.all(values.asList())
    }

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

    /**
     * @param value A `ipsec_policy` block as defined below.
     */
    @JvmName("cymwesgmqlufiggn")
    public suspend fun ipsecPolicy(`value`: Output) {
        this.ipsecPolicy = value
    }

    /**
     * @param value The Azure location where this VPN Server Configuration should be created. Changing this forces a new resource to be created.
     */
    @JvmName("jiobtyannrttskbf")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The Name which should be used for this VPN Server Configuration. Changing this forces a new resource to be created.
     */
    @JvmName("vkcwfkvtqkhwbhkt")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

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

    /**
     * @param value The Name of the Resource Group in which this VPN Server Configuration should be created. Changing this forces a new resource to be created.
     */
    @JvmName("gtffxqvvjucwsvim")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value A mapping of tags to assign to the resource.
     */
    @JvmName("nkoggbcoctirxclo")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.
     */
    @JvmName("hjmtykwscubiincu")
    public suspend fun vpnAuthenticationTypes(`value`: Output>) {
        this.vpnAuthenticationTypes = value
    }

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

    /**
     * @param values A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.
     */
    @JvmName("pvwwerskwpwgotil")
    public suspend fun vpnAuthenticationTypes(values: List>) {
        this.vpnAuthenticationTypes = Output.all(values)
    }

    /**
     * @param value A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.
     */
    @JvmName("wceqhuwwaupousbt")
    public suspend fun vpnProtocols(`value`: Output>) {
        this.vpnProtocols = value
    }

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

    /**
     * @param values A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.
     */
    @JvmName("aaxrpitaoghkjdjj")
    public suspend fun vpnProtocols(values: List>) {
        this.vpnProtocols = Output.all(values)
    }

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

    /**
     * @param argument
     */
    @JvmName("owriiluuvakhytxh")
    public suspend
    fun azureActiveDirectoryAuthentications(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            VpnServerConfigurationAzureActiveDirectoryAuthenticationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.azureActiveDirectoryAuthentications = mapped
    }

    /**
     * @param argument
     */
    @JvmName("xaolwmjvnnhusnje")
    public suspend fun azureActiveDirectoryAuthentications(
        vararg
        argument: suspend VpnServerConfigurationAzureActiveDirectoryAuthenticationArgsBuilder.() -> Unit,
    ) {
        val toBeMapped = argument.toList().map {
            VpnServerConfigurationAzureActiveDirectoryAuthenticationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.azureActiveDirectoryAuthentications = mapped
    }

    /**
     * @param argument
     */
    @JvmName("dbxnbdxaioyajqfs")
    public suspend
    fun azureActiveDirectoryAuthentications(argument: suspend VpnServerConfigurationAzureActiveDirectoryAuthenticationArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                VpnServerConfigurationAzureActiveDirectoryAuthenticationArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.azureActiveDirectoryAuthentications = mapped
    }

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

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

    /**
     * @param argument
     */
    @JvmName("xlwwgdcdcpsmpgps")
    public suspend
    fun clientRevokedCertificates(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            VpnServerConfigurationClientRevokedCertificateArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.clientRevokedCertificates = mapped
    }

    /**
     * @param argument
     */
    @JvmName("eaxqasrbyeftsuby")
    public suspend fun clientRevokedCertificates(
        vararg
        argument: suspend VpnServerConfigurationClientRevokedCertificateArgsBuilder.() -> Unit,
    ) {
        val toBeMapped = argument.toList().map {
            VpnServerConfigurationClientRevokedCertificateArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.clientRevokedCertificates = mapped
    }

    /**
     * @param argument
     */
    @JvmName("cykhinojjnfpaawc")
    public suspend
    fun clientRevokedCertificates(argument: suspend VpnServerConfigurationClientRevokedCertificateArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            VpnServerConfigurationClientRevokedCertificateArgsBuilder().applySuspend
                { argument() }.build(),
        )
        val mapped = of(toBeMapped)
        this.clientRevokedCertificates = mapped
    }

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

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

    /**
     * @param argument
     */
    @JvmName("ncsorxhnqqpouxhh")
    public suspend
    fun clientRootCertificates(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            VpnServerConfigurationClientRootCertificateArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.clientRootCertificates = mapped
    }

    /**
     * @param argument
     */
    @JvmName("bxdisuabxvbxsgts")
    public suspend fun clientRootCertificates(
        vararg
        argument: suspend VpnServerConfigurationClientRootCertificateArgsBuilder.() -> Unit,
    ) {
        val toBeMapped = argument.toList().map {
            VpnServerConfigurationClientRootCertificateArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.clientRootCertificates = mapped
    }

    /**
     * @param argument
     */
    @JvmName("cfolsuviwbxxaljv")
    public suspend
    fun clientRootCertificates(argument: suspend VpnServerConfigurationClientRootCertificateArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            VpnServerConfigurationClientRootCertificateArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.clientRootCertificates = mapped
    }

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

    /**
     * @param value A `ipsec_policy` block as defined below.
     */
    @JvmName("uwmdbqhbidphkavd")
    public suspend fun ipsecPolicy(`value`: VpnServerConfigurationIpsecPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipsecPolicy = mapped
    }

    /**
     * @param argument A `ipsec_policy` block as defined below.
     */
    @JvmName("iavgykjwxujjnvsj")
    public suspend
    fun ipsecPolicy(argument: suspend VpnServerConfigurationIpsecPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = VpnServerConfigurationIpsecPolicyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.ipsecPolicy = mapped
    }

    /**
     * @param value The Azure location where this VPN Server Configuration should be created. Changing this forces a new resource to be created.
     */
    @JvmName("sqpufxqfujmvmjfi")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The Name which should be used for this VPN Server Configuration. Changing this forces a new resource to be created.
     */
    @JvmName("lsvfxomwaolsiaep")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

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

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

    /**
     * @param value The Name of the Resource Group in which this VPN Server Configuration should be created. Changing this forces a new resource to be created.
     */
    @JvmName("fnshunxyubkeagqx")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value A mapping of tags to assign to the resource.
     */
    @JvmName("klnvnftfxxtpnmdy")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A mapping of tags to assign to the resource.
     */
    @JvmName("mcyorjavqmsphrtg")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.
     */
    @JvmName("eejjnlrnapgguydj")
    public suspend fun vpnAuthenticationTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpnAuthenticationTypes = mapped
    }

    /**
     * @param values A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.
     */
    @JvmName("mwobttnwllfjhyfp")
    public suspend fun vpnAuthenticationTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vpnAuthenticationTypes = mapped
    }

    /**
     * @param value A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.
     */
    @JvmName("cduqdclwhaucmwkf")
    public suspend fun vpnProtocols(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpnProtocols = mapped
    }

    /**
     * @param values A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.
     */
    @JvmName("xivuhgejxpyvuhhf")
    public suspend fun vpnProtocols(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vpnProtocols = mapped
    }

    internal fun build(): VpnServerConfigurationArgs = VpnServerConfigurationArgs(
        azureActiveDirectoryAuthentications = azureActiveDirectoryAuthentications,
        clientRevokedCertificates = clientRevokedCertificates,
        clientRootCertificates = clientRootCertificates,
        ipsecPolicy = ipsecPolicy,
        location = location,
        name = name,
        radius = radius,
        resourceGroupName = resourceGroupName,
        tags = tags,
        vpnAuthenticationTypes = vpnAuthenticationTypes,
        vpnProtocols = vpnProtocols,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy