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

com.pulumi.gcp.container.kotlin.AzureClusterArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.gcp.container.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.container.AzureClusterArgs.builder
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterAuthorizationArgs
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterAuthorizationArgsBuilder
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterAzureServicesAuthenticationArgs
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterAzureServicesAuthenticationArgsBuilder
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterControlPlaneArgs
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterControlPlaneArgsBuilder
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterFleetArgs
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterFleetArgsBuilder
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterLoggingConfigArgs
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterLoggingConfigArgsBuilder
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterNetworkingArgs
import com.pulumi.gcp.container.kotlin.inputs.AzureClusterNetworkingArgsBuilder
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.Map
import kotlin.jvm.JvmName

/**
 * An Anthos cluster running on Azure.
 * For more information, see:
 * * [Multicloud overview](https://cloud.google.com/kubernetes-engine/multi-cloud/docs)
 * ## Example Usage
 * ### Basic_azure_cluster
 * A basic example of a containerazure azure cluster
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const versions = gcp.container.getAzureVersions({
 *     project: "my-project-name",
 *     location: "us-west1",
 * });
 * const basic = new gcp.container.AzureClient("basic", {
 *     applicationId: "12345678-1234-1234-1234-123456789111",
 *     location: "us-west1",
 *     name: "client-name",
 *     tenantId: "12345678-1234-1234-1234-123456789111",
 *     project: "my-project-name",
 * });
 * const primary = new gcp.container.AzureCluster("primary", {
 *     authorization: {
 *         adminUsers: [{
 *             username: "[email protected]",
 *         }],
 *         adminGroups: [{
 *             group: "[email protected]",
 *         }],
 *     },
 *     azureRegion: "westus2",
 *     client: pulumi.interpolate`projects/my-project-number/locations/us-west1/azureClients/${basic.name}`,
 *     controlPlane: {
 *         sshConfig: {
 *             authorizedKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers",
 *         },
 *         subnetId: "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default",
 *         version: versions.then(versions => versions.validVersions?.[0]),
 *     },
 *     fleet: {
 *         project: "my-project-number",
 *     },
 *     location: "us-west1",
 *     name: "name",
 *     networking: {
 *         podAddressCidrBlocks: ["10.200.0.0/16"],
 *         serviceAddressCidrBlocks: ["10.32.0.0/24"],
 *         virtualNetworkId: "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet",
 *     },
 *     resourceGroupId: "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster",
 *     project: "my-project-name",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * versions = gcp.container.get_azure_versions(project="my-project-name",
 *     location="us-west1")
 * basic = gcp.container.AzureClient("basic",
 *     application_id="12345678-1234-1234-1234-123456789111",
 *     location="us-west1",
 *     name="client-name",
 *     tenant_id="12345678-1234-1234-1234-123456789111",
 *     project="my-project-name")
 * primary = gcp.container.AzureCluster("primary",
 *     authorization={
 *         "admin_users": [{
 *             "username": "[email protected]",
 *         }],
 *         "admin_groups": [{
 *             "group": "[email protected]",
 *         }],
 *     },
 *     azure_region="westus2",
 *     client=basic.name.apply(lambda name: f"projects/my-project-number/locations/us-west1/azureClients/{name}"),
 *     control_plane={
 *         "ssh_config": {
 *             "authorized_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers",
 *         },
 *         "subnet_id": "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default",
 *         "version": versions.valid_versions[0],
 *     },
 *     fleet={
 *         "project": "my-project-number",
 *     },
 *     location="us-west1",
 *     name="name",
 *     networking={
 *         "pod_address_cidr_blocks": ["10.200.0.0/16"],
 *         "service_address_cidr_blocks": ["10.32.0.0/24"],
 *         "virtual_network_id": "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet",
 *     },
 *     resource_group_id="/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster",
 *     project="my-project-name")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var versions = Gcp.Container.GetAzureVersions.Invoke(new()
 *     {
 *         Project = "my-project-name",
 *         Location = "us-west1",
 *     });
 *     var basic = new Gcp.Container.AzureClient("basic", new()
 *     {
 *         ApplicationId = "12345678-1234-1234-1234-123456789111",
 *         Location = "us-west1",
 *         Name = "client-name",
 *         TenantId = "12345678-1234-1234-1234-123456789111",
 *         Project = "my-project-name",
 *     });
 *     var primary = new Gcp.Container.AzureCluster("primary", new()
 *     {
 *         Authorization = new Gcp.Container.Inputs.AzureClusterAuthorizationArgs
 *         {
 *             AdminUsers = new[]
 *             {
 *                 new Gcp.Container.Inputs.AzureClusterAuthorizationAdminUserArgs
 *                 {
 *                     Username = "[email protected]",
 *                 },
 *             },
 *             AdminGroups = new[]
 *             {
 *                 new Gcp.Container.Inputs.AzureClusterAuthorizationAdminGroupArgs
 *                 {
 *                     Group = "[email protected]",
 *                 },
 *             },
 *         },
 *         AzureRegion = "westus2",
 *         Client = basic.Name.Apply(name => $"projects/my-project-number/locations/us-west1/azureClients/{name}"),
 *         ControlPlane = new Gcp.Container.Inputs.AzureClusterControlPlaneArgs
 *         {
 *             SshConfig = new Gcp.Container.Inputs.AzureClusterControlPlaneSshConfigArgs
 *             {
 *                 AuthorizedKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers",
 *             },
 *             SubnetId = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default",
 *             Version = versions.Apply(getAzureVersionsResult => getAzureVersionsResult.ValidVersions[0]),
 *         },
 *         Fleet = new Gcp.Container.Inputs.AzureClusterFleetArgs
 *         {
 *             Project = "my-project-number",
 *         },
 *         Location = "us-west1",
 *         Name = "name",
 *         Networking = new Gcp.Container.Inputs.AzureClusterNetworkingArgs
 *         {
 *             PodAddressCidrBlocks = new[]
 *             {
 *                 "10.200.0.0/16",
 *             },
 *             ServiceAddressCidrBlocks = new[]
 *             {
 *                 "10.32.0.0/24",
 *             },
 *             VirtualNetworkId = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet",
 *         },
 *         ResourceGroupId = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster",
 *         Project = "my-project-name",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"fmt"
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/container"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		versions, err := container.GetAzureVersions(ctx, &container.GetAzureVersionsArgs{
 * 			Project:  pulumi.StringRef("my-project-name"),
 * 			Location: pulumi.StringRef("us-west1"),
 * 		}, nil)
 * 		if err != nil {
 * 			return err
 * 		}
 * 		basic, err := container.NewAzureClient(ctx, "basic", &container.AzureClientArgs{
 * 			ApplicationId: pulumi.String("12345678-1234-1234-1234-123456789111"),
 * 			Location:      pulumi.String("us-west1"),
 * 			Name:          pulumi.String("client-name"),
 * 			TenantId:      pulumi.String("12345678-1234-1234-1234-123456789111"),
 * 			Project:       pulumi.String("my-project-name"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = container.NewAzureCluster(ctx, "primary", &container.AzureClusterArgs{
 * 			Authorization: &container.AzureClusterAuthorizationArgs{
 * 				AdminUsers: container.AzureClusterAuthorizationAdminUserArray{
 * 					&container.AzureClusterAuthorizationAdminUserArgs{
 * 						Username: pulumi.String("[email protected]"),
 * 					},
 * 				},
 * 				AdminGroups: container.AzureClusterAuthorizationAdminGroupArray{
 * 					&container.AzureClusterAuthorizationAdminGroupArgs{
 * 						Group: pulumi.String("[email protected]"),
 * 					},
 * 				},
 * 			},
 * 			AzureRegion: pulumi.String("westus2"),
 * 			Client: basic.Name.ApplyT(func(name string) (string, error) {
 * 				return fmt.Sprintf("projects/my-project-number/locations/us-west1/azureClients/%v", name), nil
 * 			}).(pulumi.StringOutput),
 * 			ControlPlane: &container.AzureClusterControlPlaneArgs{
 * 				SshConfig: &container.AzureClusterControlPlaneSshConfigArgs{
 * 					AuthorizedKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers"),
 * 				},
 * 				SubnetId: pulumi.String("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default"),
 * 				Version:  pulumi.String(versions.ValidVersions[0]),
 * 			},
 * 			Fleet: &container.AzureClusterFleetArgs{
 * 				Project: pulumi.String("my-project-number"),
 * 			},
 * 			Location: pulumi.String("us-west1"),
 * 			Name:     pulumi.String("name"),
 * 			Networking: &container.AzureClusterNetworkingArgs{
 * 				PodAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("10.200.0.0/16"),
 * 				},
 * 				ServiceAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("10.32.0.0/24"),
 * 				},
 * 				VirtualNetworkId: pulumi.String("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet"),
 * 			},
 * 			ResourceGroupId: pulumi.String("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster"),
 * 			Project:         pulumi.String("my-project-name"),
 * 		})
 * 		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.gcp.container.ContainerFunctions;
 * import com.pulumi.gcp.container.inputs.GetAzureVersionsArgs;
 * import com.pulumi.gcp.container.AzureClient;
 * import com.pulumi.gcp.container.AzureClientArgs;
 * import com.pulumi.gcp.container.AzureCluster;
 * import com.pulumi.gcp.container.AzureClusterArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterAuthorizationArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterControlPlaneArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterControlPlaneSshConfigArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterFleetArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterNetworkingArgs;
 * 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) {
 *         final var versions = ContainerFunctions.getAzureVersions(GetAzureVersionsArgs.builder()
 *             .project("my-project-name")
 *             .location("us-west1")
 *             .build());
 *         var basic = new AzureClient("basic", AzureClientArgs.builder()
 *             .applicationId("12345678-1234-1234-1234-123456789111")
 *             .location("us-west1")
 *             .name("client-name")
 *             .tenantId("12345678-1234-1234-1234-123456789111")
 *             .project("my-project-name")
 *             .build());
 *         var primary = new AzureCluster("primary", AzureClusterArgs.builder()
 *             .authorization(AzureClusterAuthorizationArgs.builder()
 *                 .adminUsers(AzureClusterAuthorizationAdminUserArgs.builder()
 *                     .username("[email protected]")
 *                     .build())
 *                 .adminGroups(AzureClusterAuthorizationAdminGroupArgs.builder()
 *                     .group("[email protected]")
 *                     .build())
 *                 .build())
 *             .azureRegion("westus2")
 *             .client(basic.name().applyValue(name -> String.format("projects/my-project-number/locations/us-west1/azureClients/%s", name)))
 *             .controlPlane(AzureClusterControlPlaneArgs.builder()
 *                 .sshConfig(AzureClusterControlPlaneSshConfigArgs.builder()
 *                     .authorizedKey("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers")
 *                     .build())
 *                 .subnetId("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default")
 *                 .version(versions.applyValue(getAzureVersionsResult -> getAzureVersionsResult.validVersions()[0]))
 *                 .build())
 *             .fleet(AzureClusterFleetArgs.builder()
 *                 .project("my-project-number")
 *                 .build())
 *             .location("us-west1")
 *             .name("name")
 *             .networking(AzureClusterNetworkingArgs.builder()
 *                 .podAddressCidrBlocks("10.200.0.0/16")
 *                 .serviceAddressCidrBlocks("10.32.0.0/24")
 *                 .virtualNetworkId("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet")
 *                 .build())
 *             .resourceGroupId("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster")
 *             .project("my-project-name")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   primary:
 *     type: gcp:container:AzureCluster
 *     properties:
 *       authorization:
 *         adminUsers:
 *           - username: [email protected]
 *         adminGroups:
 *           - group: [email protected]
 *       azureRegion: westus2
 *       client: projects/my-project-number/locations/us-west1/azureClients/${basic.name}
 *       controlPlane:
 *         sshConfig:
 *           authorizedKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers
 *         subnetId: /subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default
 *         version: ${versions.validVersions[0]}
 *       fleet:
 *         project: my-project-number
 *       location: us-west1
 *       name: name
 *       networking:
 *         podAddressCidrBlocks:
 *           - 10.200.0.0/16
 *         serviceAddressCidrBlocks:
 *           - 10.32.0.0/24
 *         virtualNetworkId: /subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet
 *       resourceGroupId: /subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster
 *       project: my-project-name
 *   basic:
 *     type: gcp:container:AzureClient
 *     properties:
 *       applicationId: 12345678-1234-1234-1234-123456789111
 *       location: us-west1
 *       name: client-name
 *       tenantId: 12345678-1234-1234-1234-123456789111
 *       project: my-project-name
 * variables:
 *   versions:
 *     fn::invoke:
 *       Function: gcp:container:getAzureVersions
 *       Arguments:
 *         project: my-project-name
 *         location: us-west1
 * ```
 * 
 * ### Beta_basic_enum_azure_cluster
 * A basic example of a containerazure azure cluster with lowercase enums (beta)
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const versions = gcp.container.getAzureVersions({
 *     project: "my-project-name",
 *     location: "us-west1",
 * });
 * const basic = new gcp.container.AzureClient("basic", {
 *     applicationId: "12345678-1234-1234-1234-123456789111",
 *     location: "us-west1",
 *     name: "client-name",
 *     tenantId: "12345678-1234-1234-1234-123456789111",
 *     project: "my-project-name",
 * });
 * const primary = new gcp.container.AzureCluster("primary", {
 *     authorization: {
 *         adminUsers: [{
 *             username: "[email protected]",
 *         }],
 *     },
 *     azureRegion: "westus2",
 *     client: pulumi.interpolate`projects/my-project-number/locations/us-west1/azureClients/${basic.name}`,
 *     controlPlane: {
 *         sshConfig: {
 *             authorizedKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers",
 *         },
 *         subnetId: "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default",
 *         version: versions.then(versions => versions.validVersions?.[0]),
 *     },
 *     fleet: {
 *         project: "my-project-number",
 *     },
 *     location: "us-west1",
 *     name: "name",
 *     networking: {
 *         podAddressCidrBlocks: ["10.200.0.0/16"],
 *         serviceAddressCidrBlocks: ["10.32.0.0/24"],
 *         virtualNetworkId: "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet",
 *     },
 *     resourceGroupId: "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster",
 *     project: "my-project-name",
 *     loggingConfig: {
 *         componentConfig: {
 *             enableComponents: [
 *                 "system_components",
 *                 "workloads",
 *             ],
 *         },
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * versions = gcp.container.get_azure_versions(project="my-project-name",
 *     location="us-west1")
 * basic = gcp.container.AzureClient("basic",
 *     application_id="12345678-1234-1234-1234-123456789111",
 *     location="us-west1",
 *     name="client-name",
 *     tenant_id="12345678-1234-1234-1234-123456789111",
 *     project="my-project-name")
 * primary = gcp.container.AzureCluster("primary",
 *     authorization={
 *         "admin_users": [{
 *             "username": "[email protected]",
 *         }],
 *     },
 *     azure_region="westus2",
 *     client=basic.name.apply(lambda name: f"projects/my-project-number/locations/us-west1/azureClients/{name}"),
 *     control_plane={
 *         "ssh_config": {
 *             "authorized_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers",
 *         },
 *         "subnet_id": "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default",
 *         "version": versions.valid_versions[0],
 *     },
 *     fleet={
 *         "project": "my-project-number",
 *     },
 *     location="us-west1",
 *     name="name",
 *     networking={
 *         "pod_address_cidr_blocks": ["10.200.0.0/16"],
 *         "service_address_cidr_blocks": ["10.32.0.0/24"],
 *         "virtual_network_id": "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet",
 *     },
 *     resource_group_id="/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster",
 *     project="my-project-name",
 *     logging_config={
 *         "component_config": {
 *             "enable_components": [
 *                 "system_components",
 *                 "workloads",
 *             ],
 *         },
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var versions = Gcp.Container.GetAzureVersions.Invoke(new()
 *     {
 *         Project = "my-project-name",
 *         Location = "us-west1",
 *     });
 *     var basic = new Gcp.Container.AzureClient("basic", new()
 *     {
 *         ApplicationId = "12345678-1234-1234-1234-123456789111",
 *         Location = "us-west1",
 *         Name = "client-name",
 *         TenantId = "12345678-1234-1234-1234-123456789111",
 *         Project = "my-project-name",
 *     });
 *     var primary = new Gcp.Container.AzureCluster("primary", new()
 *     {
 *         Authorization = new Gcp.Container.Inputs.AzureClusterAuthorizationArgs
 *         {
 *             AdminUsers = new[]
 *             {
 *                 new Gcp.Container.Inputs.AzureClusterAuthorizationAdminUserArgs
 *                 {
 *                     Username = "[email protected]",
 *                 },
 *             },
 *         },
 *         AzureRegion = "westus2",
 *         Client = basic.Name.Apply(name => $"projects/my-project-number/locations/us-west1/azureClients/{name}"),
 *         ControlPlane = new Gcp.Container.Inputs.AzureClusterControlPlaneArgs
 *         {
 *             SshConfig = new Gcp.Container.Inputs.AzureClusterControlPlaneSshConfigArgs
 *             {
 *                 AuthorizedKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers",
 *             },
 *             SubnetId = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default",
 *             Version = versions.Apply(getAzureVersionsResult => getAzureVersionsResult.ValidVersions[0]),
 *         },
 *         Fleet = new Gcp.Container.Inputs.AzureClusterFleetArgs
 *         {
 *             Project = "my-project-number",
 *         },
 *         Location = "us-west1",
 *         Name = "name",
 *         Networking = new Gcp.Container.Inputs.AzureClusterNetworkingArgs
 *         {
 *             PodAddressCidrBlocks = new[]
 *             {
 *                 "10.200.0.0/16",
 *             },
 *             ServiceAddressCidrBlocks = new[]
 *             {
 *                 "10.32.0.0/24",
 *             },
 *             VirtualNetworkId = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet",
 *         },
 *         ResourceGroupId = "/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster",
 *         Project = "my-project-name",
 *         LoggingConfig = new Gcp.Container.Inputs.AzureClusterLoggingConfigArgs
 *         {
 *             ComponentConfig = new Gcp.Container.Inputs.AzureClusterLoggingConfigComponentConfigArgs
 *             {
 *                 EnableComponents = new[]
 *                 {
 *                     "system_components",
 *                     "workloads",
 *                 },
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"fmt"
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/container"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		versions, err := container.GetAzureVersions(ctx, &container.GetAzureVersionsArgs{
 * 			Project:  pulumi.StringRef("my-project-name"),
 * 			Location: pulumi.StringRef("us-west1"),
 * 		}, nil)
 * 		if err != nil {
 * 			return err
 * 		}
 * 		basic, err := container.NewAzureClient(ctx, "basic", &container.AzureClientArgs{
 * 			ApplicationId: pulumi.String("12345678-1234-1234-1234-123456789111"),
 * 			Location:      pulumi.String("us-west1"),
 * 			Name:          pulumi.String("client-name"),
 * 			TenantId:      pulumi.String("12345678-1234-1234-1234-123456789111"),
 * 			Project:       pulumi.String("my-project-name"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = container.NewAzureCluster(ctx, "primary", &container.AzureClusterArgs{
 * 			Authorization: &container.AzureClusterAuthorizationArgs{
 * 				AdminUsers: container.AzureClusterAuthorizationAdminUserArray{
 * 					&container.AzureClusterAuthorizationAdminUserArgs{
 * 						Username: pulumi.String("[email protected]"),
 * 					},
 * 				},
 * 			},
 * 			AzureRegion: pulumi.String("westus2"),
 * 			Client: basic.Name.ApplyT(func(name string) (string, error) {
 * 				return fmt.Sprintf("projects/my-project-number/locations/us-west1/azureClients/%v", name), nil
 * 			}).(pulumi.StringOutput),
 * 			ControlPlane: &container.AzureClusterControlPlaneArgs{
 * 				SshConfig: &container.AzureClusterControlPlaneSshConfigArgs{
 * 					AuthorizedKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers"),
 * 				},
 * 				SubnetId: pulumi.String("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default"),
 * 				Version:  pulumi.String(versions.ValidVersions[0]),
 * 			},
 * 			Fleet: &container.AzureClusterFleetArgs{
 * 				Project: pulumi.String("my-project-number"),
 * 			},
 * 			Location: pulumi.String("us-west1"),
 * 			Name:     pulumi.String("name"),
 * 			Networking: &container.AzureClusterNetworkingArgs{
 * 				PodAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("10.200.0.0/16"),
 * 				},
 * 				ServiceAddressCidrBlocks: pulumi.StringArray{
 * 					pulumi.String("10.32.0.0/24"),
 * 				},
 * 				VirtualNetworkId: pulumi.String("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet"),
 * 			},
 * 			ResourceGroupId: pulumi.String("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster"),
 * 			Project:         pulumi.String("my-project-name"),
 * 			LoggingConfig: &container.AzureClusterLoggingConfigArgs{
 * 				ComponentConfig: &container.AzureClusterLoggingConfigComponentConfigArgs{
 * 					EnableComponents: pulumi.StringArray{
 * 						pulumi.String("system_components"),
 * 						pulumi.String("workloads"),
 * 					},
 * 				},
 * 			},
 * 		})
 * 		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.gcp.container.ContainerFunctions;
 * import com.pulumi.gcp.container.inputs.GetAzureVersionsArgs;
 * import com.pulumi.gcp.container.AzureClient;
 * import com.pulumi.gcp.container.AzureClientArgs;
 * import com.pulumi.gcp.container.AzureCluster;
 * import com.pulumi.gcp.container.AzureClusterArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterAuthorizationArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterControlPlaneArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterControlPlaneSshConfigArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterFleetArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterNetworkingArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterLoggingConfigArgs;
 * import com.pulumi.gcp.container.inputs.AzureClusterLoggingConfigComponentConfigArgs;
 * 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) {
 *         final var versions = ContainerFunctions.getAzureVersions(GetAzureVersionsArgs.builder()
 *             .project("my-project-name")
 *             .location("us-west1")
 *             .build());
 *         var basic = new AzureClient("basic", AzureClientArgs.builder()
 *             .applicationId("12345678-1234-1234-1234-123456789111")
 *             .location("us-west1")
 *             .name("client-name")
 *             .tenantId("12345678-1234-1234-1234-123456789111")
 *             .project("my-project-name")
 *             .build());
 *         var primary = new AzureCluster("primary", AzureClusterArgs.builder()
 *             .authorization(AzureClusterAuthorizationArgs.builder()
 *                 .adminUsers(AzureClusterAuthorizationAdminUserArgs.builder()
 *                     .username("[email protected]")
 *                     .build())
 *                 .build())
 *             .azureRegion("westus2")
 *             .client(basic.name().applyValue(name -> String.format("projects/my-project-number/locations/us-west1/azureClients/%s", name)))
 *             .controlPlane(AzureClusterControlPlaneArgs.builder()
 *                 .sshConfig(AzureClusterControlPlaneSshConfigArgs.builder()
 *                     .authorizedKey("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers")
 *                     .build())
 *                 .subnetId("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default")
 *                 .version(versions.applyValue(getAzureVersionsResult -> getAzureVersionsResult.validVersions()[0]))
 *                 .build())
 *             .fleet(AzureClusterFleetArgs.builder()
 *                 .project("my-project-number")
 *                 .build())
 *             .location("us-west1")
 *             .name("name")
 *             .networking(AzureClusterNetworkingArgs.builder()
 *                 .podAddressCidrBlocks("10.200.0.0/16")
 *                 .serviceAddressCidrBlocks("10.32.0.0/24")
 *                 .virtualNetworkId("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet")
 *                 .build())
 *             .resourceGroupId("/subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster")
 *             .project("my-project-name")
 *             .loggingConfig(AzureClusterLoggingConfigArgs.builder()
 *                 .componentConfig(AzureClusterLoggingConfigComponentConfigArgs.builder()
 *                     .enableComponents(
 *                         "system_components",
 *                         "workloads")
 *                     .build())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   primary:
 *     type: gcp:container:AzureCluster
 *     properties:
 *       authorization:
 *         adminUsers:
 *           - username: [email protected]
 *       azureRegion: westus2
 *       client: projects/my-project-number/locations/us-west1/azureClients/${basic.name}
 *       controlPlane:
 *         sshConfig:
 *           authorizedKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yaayO6lnb2v+SedxUMa2c8vtIEzCzBjM3EJJsv8Vm9zUDWR7dXWKoNGARUb2mNGXASvI6mFIDXTIlkQ0poDEPpMaXR0g2cb5xT8jAAJq7fqXL3+0rcJhY/uigQ+MrT6s+ub0BFVbsmGHNrMQttXX9gtmwkeAEvj3mra9e5pkNf90qlKnZz6U0SVArxVsLx07vHPHDIYrl0OPG4zUREF52igbBPiNrHJFDQJT/4YlDMJmo/QT/A1D6n9ocemvZSzhRx15/Arjowhr+VVKSbaxzPtEfY0oIg2SrqJnnr/l3Du5qIefwh5VmCZe4xopPUaDDoOIEFriZ88sB+3zz8ib8sk8zJJQCgeP78tQvXCgS+4e5W3TUg9mxjB6KjXTyHIVhDZqhqde0OI3Fy1UuVzRUwnBaLjBnAwP5EoFQGRmDYk/rEYe7HTmovLeEBUDQocBQKT4Ripm/xJkkWY7B07K/tfo56dGUCkvyIVXKBInCh+dLK7gZapnd4UWkY0xBYcwo1geMLRq58iFTLA2j/JmpmHXp7m0l7jJii7d44uD3tTIFYThn7NlOnvhLim/YcBK07GMGIN7XwrrKZKmxXaspw6KBWVhzuw1UPxctxshYEaMLfFg/bwOw8HvMPr9VtrElpSB7oiOh91PDIPdPBgHCi7N2QgQ5l/ZDBHieSpNrQ== thomasrodgers
 *         subnetId: /subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet/subnets/default
 *         version: ${versions.validVersions[0]}
 *       fleet:
 *         project: my-project-number
 *       location: us-west1
 *       name: name
 *       networking:
 *         podAddressCidrBlocks:
 *           - 10.200.0.0/16
 *         serviceAddressCidrBlocks:
 *           - 10.32.0.0/24
 *         virtualNetworkId: /subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-byo/providers/Microsoft.Network/virtualNetworks/my--dev-vnet
 *       resourceGroupId: /subscriptions/12345678-1234-1234-1234-123456789111/resourceGroups/my--dev-cluster
 *       project: my-project-name
 *       loggingConfig:
 *         componentConfig:
 *           enableComponents:
 *             - system_components
 *             - workloads
 *   basic:
 *     type: gcp:container:AzureClient
 *     properties:
 *       applicationId: 12345678-1234-1234-1234-123456789111
 *       location: us-west1
 *       name: client-name
 *       tenantId: 12345678-1234-1234-1234-123456789111
 *       project: my-project-name
 * variables:
 *   versions:
 *     fn::invoke:
 *       Function: gcp:container:getAzureVersions
 *       Arguments:
 *         project: my-project-name
 *         location: us-west1
 * ```
 * 
 * ## Import
 * Cluster can be imported using any of these accepted formats:
 * * `projects/{{project}}/locations/{{location}}/azureClusters/{{name}}`
 * * `{{project}}/{{location}}/{{name}}`
 * * `{{location}}/{{name}}`
 * When using the `pulumi import` command, Cluster can be imported using one of the formats above. For example:
 * ```sh
 * $ pulumi import gcp:container/azureCluster:AzureCluster default projects/{{project}}/locations/{{location}}/azureClusters/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:container/azureCluster:AzureCluster default {{project}}/{{location}}/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:container/azureCluster:AzureCluster default {{location}}/{{name}}
 * ```
 * @property annotations Optional. Annotations on the cluster. This field has the same restrictions as Kubernetes annotations. The total size of
 * all keys and values combined is limited to 256k. Keys can have 2 segments: prefix (optional) and name (required),
 * separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with
 * alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is
 * non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field
 * `effective_annotations` for all of the annotations present on the resource.
 * @property authorization Configuration related to the cluster RBAC settings.
 * @property azureRegion The Azure region where the cluster runs. Each Google Cloud region supports a subset of nearby Azure regions. You can call to list all supported Azure regions within a given Google Cloud region.
 * @property azureServicesAuthentication Azure authentication configuration for management of Azure resources
 * @property client Name of the AzureClient. The `AzureClient` resource must reside on the same GCP project and region as the
 * `AzureCluster`. `AzureClient` names are formatted as
 * `projects//locations//azureClients/`. See Resource Names
 * (https:cloud.google.com/apis/design/resource_names) for more details on Google Cloud resource names.
 * @property controlPlane Configuration related to the cluster control plane.
 * @property description Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes.
 * @property fleet Fleet configuration.
 * @property location The location for the resource
 * @property loggingConfig Logging configuration.
 * @property name The name of this resource.
 * @property networking Cluster-wide networking configuration.
 * @property project The project for the resource
 * @property resourceGroupId The ARM ID of the resource group where the cluster resources are deployed. For example: `/subscriptions/*/resourceGroups/*`
 * */*/
 */
public data class AzureClusterArgs(
    public val annotations: Output>? = null,
    public val authorization: Output? = null,
    public val azureRegion: Output? = null,
    public val azureServicesAuthentication: Output? =
        null,
    public val client: Output? = null,
    public val controlPlane: Output? = null,
    public val description: Output? = null,
    public val fleet: Output? = null,
    public val location: Output? = null,
    public val loggingConfig: Output? = null,
    public val name: Output? = null,
    public val networking: Output? = null,
    public val project: Output? = null,
    public val resourceGroupId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.container.AzureClusterArgs =
        com.pulumi.gcp.container.AzureClusterArgs.builder()
            .annotations(
                annotations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .authorization(authorization?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .azureRegion(azureRegion?.applyValue({ args0 -> args0 }))
            .azureServicesAuthentication(
                azureServicesAuthentication?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .client(client?.applyValue({ args0 -> args0 }))
            .controlPlane(controlPlane?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .fleet(fleet?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .location(location?.applyValue({ args0 -> args0 }))
            .loggingConfig(loggingConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .name(name?.applyValue({ args0 -> args0 }))
            .networking(networking?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .project(project?.applyValue({ args0 -> args0 }))
            .resourceGroupId(resourceGroupId?.applyValue({ args0 -> args0 })).build()
}

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

    private var authorization: Output? = null

    private var azureRegion: Output? = null

    private var azureServicesAuthentication: Output? =
        null

    private var client: Output? = null

    private var controlPlane: Output? = null

    private var description: Output? = null

    private var fleet: Output? = null

    private var location: Output? = null

    private var loggingConfig: Output? = null

    private var name: Output? = null

    private var networking: Output? = null

    private var project: Output? = null

    private var resourceGroupId: Output? = null

    /**
     * @param value Optional. Annotations on the cluster. This field has the same restrictions as Kubernetes annotations. The total size of
     * all keys and values combined is limited to 256k. Keys can have 2 segments: prefix (optional) and name (required),
     * separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with
     * alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is
     * non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field
     * `effective_annotations` for all of the annotations present on the resource.
     */
    @JvmName("xolteugnglxcjxny")
    public suspend fun annotations(`value`: Output>) {
        this.annotations = value
    }

    /**
     * @param value Configuration related to the cluster RBAC settings.
     */
    @JvmName("jcbxgynramqnvwak")
    public suspend fun authorization(`value`: Output) {
        this.authorization = value
    }

    /**
     * @param value The Azure region where the cluster runs. Each Google Cloud region supports a subset of nearby Azure regions. You can call to list all supported Azure regions within a given Google Cloud region.
     */
    @JvmName("dbvccbexmxwqsfeg")
    public suspend fun azureRegion(`value`: Output) {
        this.azureRegion = value
    }

    /**
     * @param value Azure authentication configuration for management of Azure resources
     */
    @JvmName("ldibrjjmbnypehrb")
    public suspend fun azureServicesAuthentication(`value`: Output) {
        this.azureServicesAuthentication = value
    }

    /**
     * @param value Name of the AzureClient. The `AzureClient` resource must reside on the same GCP project and region as the
     * `AzureCluster`. `AzureClient` names are formatted as
     * `projects//locations//azureClients/`. See Resource Names
     * (https:cloud.google.com/apis/design/resource_names) for more details on Google Cloud resource names.
     */
    @JvmName("eeordyfechcaqcaq")
    public suspend fun client(`value`: Output) {
        this.client = value
    }

    /**
     * @param value Configuration related to the cluster control plane.
     */
    @JvmName("jiawtckdkpwjpcmb")
    public suspend fun controlPlane(`value`: Output) {
        this.controlPlane = value
    }

    /**
     * @param value Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes.
     */
    @JvmName("ljmvbxoxlleyklto")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Fleet configuration.
     */
    @JvmName("xlhbrphvyvbdfwpr")
    public suspend fun fleet(`value`: Output) {
        this.fleet = value
    }

    /**
     * @param value The location for the resource
     */
    @JvmName("opqiegbidgaditar")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value Logging configuration.
     */
    @JvmName("dbylfnvtaqtxdxsu")
    public suspend fun loggingConfig(`value`: Output) {
        this.loggingConfig = value
    }

    /**
     * @param value The name of this resource.
     */
    @JvmName("aqbdoewcpvxakcsy")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Cluster-wide networking configuration.
     */
    @JvmName("mwmfduahxqjpubyg")
    public suspend fun networking(`value`: Output) {
        this.networking = value
    }

    /**
     * @param value The project for the resource
     */
    @JvmName("nwunjhaqsqntbrmt")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value The ARM ID of the resource group where the cluster resources are deployed. For example: `/subscriptions/*/resourceGroups/*`
     * */*/
     */
    @JvmName("ekqqeragucgetatf")
    public suspend fun resourceGroupId(`value`: Output) {
        this.resourceGroupId = value
    }

    /**
     * @param value Optional. Annotations on the cluster. This field has the same restrictions as Kubernetes annotations. The total size of
     * all keys and values combined is limited to 256k. Keys can have 2 segments: prefix (optional) and name (required),
     * separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with
     * alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is
     * non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field
     * `effective_annotations` for all of the annotations present on the resource.
     */
    @JvmName("mdtrqagpkxplfqql")
    public suspend fun annotations(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param values Optional. Annotations on the cluster. This field has the same restrictions as Kubernetes annotations. The total size of
     * all keys and values combined is limited to 256k. Keys can have 2 segments: prefix (optional) and name (required),
     * separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with
     * alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. **Note**: This field is
     * non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field
     * `effective_annotations` for all of the annotations present on the resource.
     */
    @JvmName("ohgeaniahgnggbxi")
    public fun annotations(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param value Configuration related to the cluster RBAC settings.
     */
    @JvmName("abrbqmaxfgxmecrs")
    public suspend fun authorization(`value`: AzureClusterAuthorizationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authorization = mapped
    }

    /**
     * @param argument Configuration related to the cluster RBAC settings.
     */
    @JvmName("tiwmkgwcwpjarnhd")
    public suspend fun authorization(argument: suspend AzureClusterAuthorizationArgsBuilder.() -> Unit) {
        val toBeMapped = AzureClusterAuthorizationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authorization = mapped
    }

    /**
     * @param value The Azure region where the cluster runs. Each Google Cloud region supports a subset of nearby Azure regions. You can call to list all supported Azure regions within a given Google Cloud region.
     */
    @JvmName("gjgxwsmvpwkdjnal")
    public suspend fun azureRegion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azureRegion = mapped
    }

    /**
     * @param value Azure authentication configuration for management of Azure resources
     */
    @JvmName("wovpamnmhggfwjah")
    public suspend fun azureServicesAuthentication(`value`: AzureClusterAzureServicesAuthenticationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azureServicesAuthentication = mapped
    }

    /**
     * @param argument Azure authentication configuration for management of Azure resources
     */
    @JvmName("ymwglfysolmphrtf")
    public suspend fun azureServicesAuthentication(argument: suspend AzureClusterAzureServicesAuthenticationArgsBuilder.() -> Unit) {
        val toBeMapped = AzureClusterAzureServicesAuthenticationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.azureServicesAuthentication = mapped
    }

    /**
     * @param value Name of the AzureClient. The `AzureClient` resource must reside on the same GCP project and region as the
     * `AzureCluster`. `AzureClient` names are formatted as
     * `projects//locations//azureClients/`. See Resource Names
     * (https:cloud.google.com/apis/design/resource_names) for more details on Google Cloud resource names.
     */
    @JvmName("pocgpavqorvpagne")
    public suspend fun client(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.client = mapped
    }

    /**
     * @param value Configuration related to the cluster control plane.
     */
    @JvmName("reaufrudupoiebll")
    public suspend fun controlPlane(`value`: AzureClusterControlPlaneArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.controlPlane = mapped
    }

    /**
     * @param argument Configuration related to the cluster control plane.
     */
    @JvmName("ltmjthauanpkhstx")
    public suspend fun controlPlane(argument: suspend AzureClusterControlPlaneArgsBuilder.() -> Unit) {
        val toBeMapped = AzureClusterControlPlaneArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.controlPlane = mapped
    }

    /**
     * @param value Optional. A human readable description of this cluster. Cannot be longer than 255 UTF-8 encoded bytes.
     */
    @JvmName("tppnqdlrptmolwcc")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Fleet configuration.
     */
    @JvmName("bjstdofpadgvkibb")
    public suspend fun fleet(`value`: AzureClusterFleetArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fleet = mapped
    }

    /**
     * @param argument Fleet configuration.
     */
    @JvmName("ctlyxontskewtifp")
    public suspend fun fleet(argument: suspend AzureClusterFleetArgsBuilder.() -> Unit) {
        val toBeMapped = AzureClusterFleetArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.fleet = mapped
    }

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

    /**
     * @param value Logging configuration.
     */
    @JvmName("pmulynqfnkbrbsno")
    public suspend fun loggingConfig(`value`: AzureClusterLoggingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loggingConfig = mapped
    }

    /**
     * @param argument Logging configuration.
     */
    @JvmName("kmmovbuoaysgxvdf")
    public suspend fun loggingConfig(argument: suspend AzureClusterLoggingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = AzureClusterLoggingConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.loggingConfig = mapped
    }

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

    /**
     * @param value Cluster-wide networking configuration.
     */
    @JvmName("megxsxvvjkvfwjke")
    public suspend fun networking(`value`: AzureClusterNetworkingArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networking = mapped
    }

    /**
     * @param argument Cluster-wide networking configuration.
     */
    @JvmName("xbcbcfbvgtlbtwdb")
    public suspend fun networking(argument: suspend AzureClusterNetworkingArgsBuilder.() -> Unit) {
        val toBeMapped = AzureClusterNetworkingArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networking = mapped
    }

    /**
     * @param value The project for the resource
     */
    @JvmName("pjbudtjxbbksjqrd")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value The ARM ID of the resource group where the cluster resources are deployed. For example: `/subscriptions/*/resourceGroups/*`
     * */*/
     */
    @JvmName("vpurcsvhmiqueirm")
    public suspend fun resourceGroupId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupId = mapped
    }

    internal fun build(): AzureClusterArgs = AzureClusterArgs(
        annotations = annotations,
        authorization = authorization,
        azureRegion = azureRegion,
        azureServicesAuthentication = azureServicesAuthentication,
        client = client,
        controlPlane = controlPlane,
        description = description,
        fleet = fleet,
        location = location,
        loggingConfig = loggingConfig,
        name = name,
        networking = networking,
        project = project,
        resourceGroupId = resourceGroupId,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy