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

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

package com.pulumi.azure.nginx.kotlin

import com.pulumi.azure.nginx.DeploymentArgs.builder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentAutoScaleProfileArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentAutoScaleProfileArgsBuilder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentConfigurationArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentConfigurationArgsBuilder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentFrontendPrivateArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentFrontendPrivateArgsBuilder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentFrontendPublicArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentFrontendPublicArgsBuilder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentIdentityArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentIdentityArgsBuilder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentLoggingStorageAccountArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentLoggingStorageAccountArgsBuilder
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentNetworkInterfaceArgs
import com.pulumi.azure.nginx.kotlin.inputs.DeploymentNetworkInterfaceArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
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 an NGINX Deployment.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * import * as std from "@pulumi/std";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-rg",
 *     location: "West Europe",
 * });
 * const examplePublicIp = new azure.network.PublicIp("example", {
 *     name: "example",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     allocationMethod: "Static",
 *     sku: "Standard",
 *     tags: {
 *         environment: "Production",
 *     },
 * });
 * const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
 *     name: "example-vnet",
 *     addressSpaces: ["10.0.0.0/16"],
 *     location: example.location,
 *     resourceGroupName: example.name,
 * });
 * const exampleSubnet = new azure.network.Subnet("example", {
 *     name: "example-subnet",
 *     resourceGroupName: example.name,
 *     virtualNetworkName: exampleVirtualNetwork.name,
 *     addressPrefixes: ["10.0.2.0/24"],
 *     delegations: [{
 *         name: "delegation",
 *         serviceDelegation: {
 *             name: "NGINX.NGINXPLUS/nginxDeployments",
 *             actions: ["Microsoft.Network/virtualNetworks/subnets/join/action"],
 *         },
 *     }],
 * });
 * const configContent = std.base64encode({
 *     input: `http {
 *     server {
 *         listen 80;
 *         location / {
 *             auth_basic "Protected Area";
 *             auth_basic_user_file /opt/.htpasswd;
 *             default_type text/html;
 *         }
 *         include site/*.conf;
 *     }
 * }
 * `,
 * }).then(invoke => invoke.result);
 * const protectedContent = std.base64encode({
 *     input: "user:$apr1$VeUA5kt.$IjjRk//8miRxDsZvD4daF1\n",
 * }).then(invoke => invoke.result);
 * const subConfigContent = std.base64encode({
 *     input: `location /bbb {
 * \x09default_type text/html;
 * \x09return 200 '
 * \x09\x09
this one will be updated
* \x09\x09
at 10:38 am
* \x09'; * } * `, * }).then(invoke => invoke.result); * const exampleDeployment = new azure.nginx.Deployment("example", { * name: "example-nginx", * resourceGroupName: example.name, * sku: "publicpreview_Monthly_gmz7xq9ge3py", * location: example.location, * managedResourceGroup: "example", * diagnoseSupportEnabled: true, * automaticUpgradeChannel: "stable", * frontendPublic: { * ipAddresses: [examplePublicIp.id], * }, * networkInterfaces: [{ * subnetId: exampleSubnet.id, * }], * capacity: 20, * email: "[email protected]", * configuration: { * rootFile: "/etc/nginx/nginx.conf", * configFiles: [ * { * content: configContent, * virtualPath: "/etc/nginx/nginx.conf", * }, * { * content: subConfigContent, * virtualPath: "/etc/nginx/site/b.conf", * }, * ], * protectedFiles: [{ * content: protectedContent, * virtualPath: "/opt/.htpasswd", * }], * }, * }); * ``` * ```python * import pulumi * import pulumi_azure as azure * import pulumi_std as std * example = azure.core.ResourceGroup("example", * name="example-rg", * location="West Europe") * example_public_ip = azure.network.PublicIp("example", * name="example", * resource_group_name=example.name, * location=example.location, * allocation_method="Static", * sku="Standard", * tags={ * "environment": "Production", * }) * example_virtual_network = azure.network.VirtualNetwork("example", * name="example-vnet", * address_spaces=["10.0.0.0/16"], * location=example.location, * resource_group_name=example.name) * example_subnet = azure.network.Subnet("example", * name="example-subnet", * resource_group_name=example.name, * virtual_network_name=example_virtual_network.name, * address_prefixes=["10.0.2.0/24"], * delegations=[azure.network.SubnetDelegationArgs( * name="delegation", * service_delegation=azure.network.SubnetDelegationServiceDelegationArgs( * name="NGINX.NGINXPLUS/nginxDeployments", * actions=["Microsoft.Network/virtualNetworks/subnets/join/action"], * ), * )]) * config_content = std.base64encode(input="""http { * server { * listen 80; * location / { * auth_basic "Protected Area"; * auth_basic_user_file /opt/.htpasswd; * default_type text/html; * } * include site/*.conf; * } * } * """).result * protected_content = std.base64encode(input="user:$apr1$VeUA5kt.$IjjRk//8miRxDsZvD4daF1\n").result * sub_config_content = std.base64encode(input="""location /bbb { * \x09default_type text/html; * \x09return 200 ' * \x09\x09
this one will be updated
* \x09\x09
at 10:38 am
* \x09'; * } * """).result * example_deployment = azure.nginx.Deployment("example", * name="example-nginx", * resource_group_name=example.name, * sku="publicpreview_Monthly_gmz7xq9ge3py", * location=example.location, * managed_resource_group="example", * diagnose_support_enabled=True, * automatic_upgrade_channel="stable", * frontend_public=azure.nginx.DeploymentFrontendPublicArgs( * ip_addresses=[example_public_ip.id], * ), * network_interfaces=[azure.nginx.DeploymentNetworkInterfaceArgs( * subnet_id=example_subnet.id, * )], * capacity=20, * email="[email protected]", * configuration=azure.nginx.DeploymentConfigurationArgs( * root_file="/etc/nginx/nginx.conf", * config_files=[ * azure.nginx.DeploymentConfigurationConfigFileArgs( * content=config_content, * virtual_path="/etc/nginx/nginx.conf", * ), * azure.nginx.DeploymentConfigurationConfigFileArgs( * content=sub_config_content, * virtual_path="/etc/nginx/site/b.conf", * ), * ], * protected_files=[azure.nginx.DeploymentConfigurationProtectedFileArgs( * content=protected_content, * virtual_path="/opt/.htpasswd", * )], * )) * ``` * ```csharp * using System.Collections.Generic; * using System.Linq; * using Pulumi; * using Azure = Pulumi.Azure; * using Std = Pulumi.Std; * return await Deployment.RunAsync(() => * { * var example = new Azure.Core.ResourceGroup("example", new() * { * Name = "example-rg", * Location = "West Europe", * }); * var examplePublicIp = new Azure.Network.PublicIp("example", new() * { * Name = "example", * ResourceGroupName = example.Name, * Location = example.Location, * AllocationMethod = "Static", * Sku = "Standard", * Tags = * { * { "environment", "Production" }, * }, * }); * var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new() * { * Name = "example-vnet", * AddressSpaces = new[] * { * "10.0.0.0/16", * }, * Location = example.Location, * ResourceGroupName = example.Name, * }); * var exampleSubnet = new Azure.Network.Subnet("example", new() * { * Name = "example-subnet", * ResourceGroupName = example.Name, * VirtualNetworkName = exampleVirtualNetwork.Name, * AddressPrefixes = new[] * { * "10.0.2.0/24", * }, * Delegations = new[] * { * new Azure.Network.Inputs.SubnetDelegationArgs * { * Name = "delegation", * ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs * { * Name = "NGINX.NGINXPLUS/nginxDeployments", * Actions = new[] * { * "Microsoft.Network/virtualNetworks/subnets/join/action", * }, * }, * }, * }, * }); * var configContent = Std.Base64encode.Invoke(new() * { * Input = @"http { * server { * listen 80; * location / { * auth_basic ""Protected Area""; * auth_basic_user_file /opt/.htpasswd; * default_type text/html; * } * include site/*.conf; * } * } * ", * }).Apply(invoke => invoke.Result); * var protectedContent = Std.Base64encode.Invoke(new() * { * Input = @"user:$apr1$VeUA5kt.$IjjRk//8miRxDsZvD4daF1 * ", * }).Apply(invoke => invoke.Result); * var subConfigContent = Std.Base64encode.Invoke(new() * { * Input = @"location /bbb { * default_type text/html; * return 200 ' *
this one will be updated
*
at 10:38 am
* '; * } * ", * }).Apply(invoke => invoke.Result); * var exampleDeployment = new Azure.Nginx.Deployment("example", new() * { * Name = "example-nginx", * ResourceGroupName = example.Name, * Sku = "publicpreview_Monthly_gmz7xq9ge3py", * Location = example.Location, * ManagedResourceGroup = "example", * DiagnoseSupportEnabled = true, * AutomaticUpgradeChannel = "stable", * FrontendPublic = new Azure.Nginx.Inputs.DeploymentFrontendPublicArgs * { * IpAddresses = new[] * { * examplePublicIp.Id, * }, * }, * NetworkInterfaces = new[] * { * new Azure.Nginx.Inputs.DeploymentNetworkInterfaceArgs * { * SubnetId = exampleSubnet.Id, * }, * }, * Capacity = 20, * Email = "[email protected]", * Configuration = new Azure.Nginx.Inputs.DeploymentConfigurationArgs * { * RootFile = "/etc/nginx/nginx.conf", * ConfigFiles = new[] * { * new Azure.Nginx.Inputs.DeploymentConfigurationConfigFileArgs * { * Content = configContent, * VirtualPath = "/etc/nginx/nginx.conf", * }, * new Azure.Nginx.Inputs.DeploymentConfigurationConfigFileArgs * { * Content = subConfigContent, * VirtualPath = "/etc/nginx/site/b.conf", * }, * }, * ProtectedFiles = new[] * { * new Azure.Nginx.Inputs.DeploymentConfigurationProtectedFileArgs * { * Content = protectedContent, * VirtualPath = "/opt/.htpasswd", * }, * }, * }, * }); * }); * ``` * ```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-azure/sdk/v5/go/azure/nginx" * "github.com/pulumi/pulumi-std/sdk/go/std" * "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-rg"), * Location: pulumi.String("West Europe"), * }) * if err != nil { * return err * } * examplePublicIp, err := network.NewPublicIp(ctx, "example", &network.PublicIpArgs{ * Name: pulumi.String("example"), * ResourceGroupName: example.Name, * Location: example.Location, * AllocationMethod: pulumi.String("Static"), * Sku: pulumi.String("Standard"), * Tags: pulumi.StringMap{ * "environment": pulumi.String("Production"), * }, * }) * if err != nil { * return err * } * exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{ * Name: pulumi.String("example-vnet"), * AddressSpaces: pulumi.StringArray{ * pulumi.String("10.0.0.0/16"), * }, * Location: example.Location, * ResourceGroupName: example.Name, * }) * if err != nil { * return err * } * exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{ * Name: pulumi.String("example-subnet"), * ResourceGroupName: example.Name, * VirtualNetworkName: exampleVirtualNetwork.Name, * AddressPrefixes: pulumi.StringArray{ * pulumi.String("10.0.2.0/24"), * }, * Delegations: network.SubnetDelegationArray{ * &network.SubnetDelegationArgs{ * Name: pulumi.String("delegation"), * ServiceDelegation: &network.SubnetDelegationServiceDelegationArgs{ * Name: pulumi.String("NGINX.NGINXPLUS/nginxDeployments"), * Actions: pulumi.StringArray{ * pulumi.String("Microsoft.Network/virtualNetworks/subnets/join/action"), * }, * }, * }, * }, * }) * if err != nil { * return err * } * configContent := std.Base64encode(ctx, &std.Base64encodeArgs{ * Input: `http { * server { * listen 80; * location / { * auth_basic "Protected Area"; * auth_basic_user_file /opt/.htpasswd; * default_type text/html; * } * include site/*.conf; * } * } * `, * }, nil).Result * protectedContent := std.Base64encode(ctx, &std.Base64encodeArgs{ * Input: "user:$apr1$VeUA5kt.$IjjRk//8miRxDsZvD4daF1\n", * }, nil).Result * subConfigContent := std.Base64encode(ctx, &std.Base64encodeArgs{ * Input: `location /bbb { * default_type text/html; * return 200 ' *
this one will be updated
*
at 10:38 am
* '; * } * `, * }, nil).Result * _, err = nginx.NewDeployment(ctx, "example", &nginx.DeploymentArgs{ * Name: pulumi.String("example-nginx"), * ResourceGroupName: example.Name, * Sku: pulumi.String("publicpreview_Monthly_gmz7xq9ge3py"), * Location: example.Location, * ManagedResourceGroup: pulumi.String("example"), * DiagnoseSupportEnabled: pulumi.Bool(true), * AutomaticUpgradeChannel: pulumi.String("stable"), * FrontendPublic: &nginx.DeploymentFrontendPublicArgs{ * IpAddresses: pulumi.StringArray{ * examplePublicIp.ID(), * }, * }, * NetworkInterfaces: nginx.DeploymentNetworkInterfaceArray{ * &nginx.DeploymentNetworkInterfaceArgs{ * SubnetId: exampleSubnet.ID(), * }, * }, * Capacity: pulumi.Int(20), * Email: pulumi.String("[email protected]"), * Configuration: &nginx.DeploymentConfigurationArgs{ * RootFile: pulumi.String("/etc/nginx/nginx.conf"), * ConfigFiles: nginx.DeploymentConfigurationConfigFileArray{ * &nginx.DeploymentConfigurationConfigFileArgs{ * Content: pulumi.String(configContent), * VirtualPath: pulumi.String("/etc/nginx/nginx.conf"), * }, * &nginx.DeploymentConfigurationConfigFileArgs{ * Content: pulumi.String(subConfigContent), * VirtualPath: pulumi.String("/etc/nginx/site/b.conf"), * }, * }, * ProtectedFiles: nginx.DeploymentConfigurationProtectedFileArray{ * &nginx.DeploymentConfigurationProtectedFileArgs{ * Content: pulumi.String(protectedContent), * VirtualPath: pulumi.String("/opt/.htpasswd"), * }, * }, * }, * }) * 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.PublicIp; * import com.pulumi.azure.network.PublicIpArgs; * import com.pulumi.azure.network.VirtualNetwork; * import com.pulumi.azure.network.VirtualNetworkArgs; * import com.pulumi.azure.network.Subnet; * import com.pulumi.azure.network.SubnetArgs; * import com.pulumi.azure.network.inputs.SubnetDelegationArgs; * import com.pulumi.azure.network.inputs.SubnetDelegationServiceDelegationArgs; * import com.pulumi.azure.nginx.Deployment; * import com.pulumi.azure.nginx.DeploymentArgs; * import com.pulumi.azure.nginx.inputs.DeploymentFrontendPublicArgs; * import com.pulumi.azure.nginx.inputs.DeploymentNetworkInterfaceArgs; * import com.pulumi.azure.nginx.inputs.DeploymentConfigurationArgs; * 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-rg") * .location("West Europe") * .build()); * var examplePublicIp = new PublicIp("examplePublicIp", PublicIpArgs.builder() * .name("example") * .resourceGroupName(example.name()) * .location(example.location()) * .allocationMethod("Static") * .sku("Standard") * .tags(Map.of("environment", "Production")) * .build()); * var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder() * .name("example-vnet") * .addressSpaces("10.0.0.0/16") * .location(example.location()) * .resourceGroupName(example.name()) * .build()); * var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder() * .name("example-subnet") * .resourceGroupName(example.name()) * .virtualNetworkName(exampleVirtualNetwork.name()) * .addressPrefixes("10.0.2.0/24") * .delegations(SubnetDelegationArgs.builder() * .name("delegation") * .serviceDelegation(SubnetDelegationServiceDelegationArgs.builder() * .name("NGINX.NGINXPLUS/nginxDeployments") * .actions("Microsoft.Network/virtualNetworks/subnets/join/action") * .build()) * .build()) * .build()); * final var configContent = StdFunctions.base64encode(Base64encodeArgs.builder() * .input(""" * http { * server { * listen 80; * location / { * auth_basic "Protected Area"; * auth_basic_user_file /opt/.htpasswd; * default_type text/html; * } * include site/*.conf; * } * } * """) * .build()).result(); * final var protectedContent = StdFunctions.base64encode(Base64encodeArgs.builder() * .input(""" * user:$apr1$VeUA5kt.$IjjRk//8miRxDsZvD4daF1 * """) * .build()).result(); * final var subConfigContent = StdFunctions.base64encode(Base64encodeArgs.builder() * .input(""" * location /bbb { * default_type text/html; * return 200 ' *
this one will be updated
*
at 10:38 am
* '; * } * """) * .build()).result(); * var exampleDeployment = new Deployment("exampleDeployment", DeploymentArgs.builder() * .name("example-nginx") * .resourceGroupName(example.name()) * .sku("publicpreview_Monthly_gmz7xq9ge3py") * .location(example.location()) * .managedResourceGroup("example") * .diagnoseSupportEnabled(true) * .automaticUpgradeChannel("stable") * .frontendPublic(DeploymentFrontendPublicArgs.builder() * .ipAddresses(examplePublicIp.id()) * .build()) * .networkInterfaces(DeploymentNetworkInterfaceArgs.builder() * .subnetId(exampleSubnet.id()) * .build()) * .capacity(20) * .email("[email protected]") * .configuration(DeploymentConfigurationArgs.builder() * .rootFile("/etc/nginx/nginx.conf") * .configFiles( * DeploymentConfigurationConfigFileArgs.builder() * .content(configContent) * .virtualPath("/etc/nginx/nginx.conf") * .build(), * DeploymentConfigurationConfigFileArgs.builder() * .content(subConfigContent) * .virtualPath("/etc/nginx/site/b.conf") * .build()) * .protectedFiles(DeploymentConfigurationProtectedFileArgs.builder() * .content(protectedContent) * .virtualPath("/opt/.htpasswd") * .build()) * .build()) * .build()); * } * } * ``` * ```yaml * resources: * example: * type: azure:core:ResourceGroup * properties: * name: example-rg * location: West Europe * examplePublicIp: * type: azure:network:PublicIp * name: example * properties: * name: example * resourceGroupName: ${example.name} * location: ${example.location} * allocationMethod: Static * sku: Standard * tags: * environment: Production * exampleVirtualNetwork: * type: azure:network:VirtualNetwork * name: example * properties: * name: example-vnet * addressSpaces: * - 10.0.0.0/16 * location: ${example.location} * resourceGroupName: ${example.name} * exampleSubnet: * type: azure:network:Subnet * name: example * properties: * name: example-subnet * resourceGroupName: ${example.name} * virtualNetworkName: ${exampleVirtualNetwork.name} * addressPrefixes: * - 10.0.2.0/24 * delegations: * - name: delegation * serviceDelegation: * name: NGINX.NGINXPLUS/nginxDeployments * actions: * - Microsoft.Network/virtualNetworks/subnets/join/action * exampleDeployment: * type: azure:nginx:Deployment * name: example * properties: * name: example-nginx * resourceGroupName: ${example.name} * sku: publicpreview_Monthly_gmz7xq9ge3py * location: ${example.location} * managedResourceGroup: example * diagnoseSupportEnabled: true * automaticUpgradeChannel: stable * frontendPublic: * ipAddresses: * - ${examplePublicIp.id} * networkInterfaces: * - subnetId: ${exampleSubnet.id} * capacity: 20 * email: [email protected] * configuration: * rootFile: /etc/nginx/nginx.conf * configFiles: * - content: ${configContent} * virtualPath: /etc/nginx/nginx.conf * - content: ${subConfigContent} * virtualPath: /etc/nginx/site/b.conf * protectedFiles: * - content: ${protectedContent} * virtualPath: /opt/.htpasswd * variables: * configContent: * fn::invoke: * Function: std:base64encode * Arguments: * input: | * http { * server { * listen 80; * location / { * auth_basic "Protected Area"; * auth_basic_user_file /opt/.htpasswd; * default_type text/html; * } * include site/*.conf; * } * } * Return: result * protectedContent: * fn::invoke: * Function: std:base64encode * Arguments: * input: | * user:$apr1$VeUA5kt.$IjjRk//8miRxDsZvD4daF1 * Return: result * subConfigContent: * fn::invoke: * Function: std:base64encode * Arguments: * input: | * location /bbb { * default_type text/html; * return 200 ' *
this one will be updated
*
at 10:38 am
* '; * } * Return: result * ``` * * ## Import * NGINX Deployments can be imported using the `resource id`, e.g. * ```sh * $ pulumi import azure:nginx/deployment:Deployment example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Nginx.NginxPlus/nginxDeployments/dep1 * ``` * @property autoScaleProfiles An `auto_scale_profile` block as defined below. * @property automaticUpgradeChannel Specify the automatic upgrade channel for the NGINX deployment. Defaults to `stable`. The possible values are `stable` and `preview`. * @property capacity Specify the number of NGINX capacity units for this NGINX deployment. Defaults to `20`. * > **Note** For more information on NGINX capacity units, please refer to the [NGINX scaling guidance documentation](https://docs.nginx.com/nginxaas/azure/quickstart/scaling/) * @property configuration Specify a custom `configuration` block as defined below. * @property diagnoseSupportEnabled Should the diagnosis support be enabled? * @property email Specify the preferred support contact email address for receiving alerts and notifications. * @property frontendPrivates One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. * @property frontendPublic A `frontend_public` block as defined below. Changing this forces a new NGINX Deployment to be created. * @property identity An `identity` block as defined below. * @property location The Azure Region where the NGINX Deployment should exist. Changing this forces a new NGINX Deployment to be created. * @property loggingStorageAccounts One or more `logging_storage_account` blocks as defined below. * @property managedResourceGroup Specify the managed resource group to deploy VNet injection related network resources. Changing this forces a new NGINX Deployment to be created. * @property name The name which should be used for this NGINX Deployment. Changing this forces a new NGINX Deployment to be created. * @property networkInterfaces One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. * @property resourceGroupName The name of the Resource Group where the NGINX Deployment should exist. Changing this forces a new NGINX Deployment to be created. * @property sku Specifies the NGINX Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * @property tags A mapping of tags which should be assigned to the NGINX Deployment. * */*/*/*/*/*/ */ public data class DeploymentArgs( public val autoScaleProfiles: Output>? = null, public val automaticUpgradeChannel: Output? = null, public val capacity: Output? = null, public val configuration: Output? = null, public val diagnoseSupportEnabled: Output? = null, public val email: Output? = null, public val frontendPrivates: Output>? = null, public val frontendPublic: Output? = null, public val identity: Output? = null, public val location: Output? = null, public val loggingStorageAccounts: Output>? = null, public val managedResourceGroup: Output? = null, public val name: Output? = null, public val networkInterfaces: Output>? = null, public val resourceGroupName: Output? = null, public val sku: Output? = null, public val tags: Output>? = null, ) : ConvertibleToJava { override fun toJava(): com.pulumi.azure.nginx.DeploymentArgs = com.pulumi.azure.nginx.DeploymentArgs.builder() .autoScaleProfiles( autoScaleProfiles?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .automaticUpgradeChannel(automaticUpgradeChannel?.applyValue({ args0 -> args0 })) .capacity(capacity?.applyValue({ args0 -> args0 })) .configuration(configuration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .diagnoseSupportEnabled(diagnoseSupportEnabled?.applyValue({ args0 -> args0 })) .email(email?.applyValue({ args0 -> args0 })) .frontendPrivates( frontendPrivates?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .frontendPublic(frontendPublic?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .location(location?.applyValue({ args0 -> args0 })) .loggingStorageAccounts( loggingStorageAccounts?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .managedResourceGroup(managedResourceGroup?.applyValue({ args0 -> args0 })) .name(name?.applyValue({ args0 -> args0 })) .networkInterfaces( networkInterfaces?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }), ) .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 })) .sku(sku?.applyValue({ args0 -> args0 })) .tags( tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }), ).build() } /** * Builder for [DeploymentArgs]. */ @PulumiTagMarker public class DeploymentArgsBuilder internal constructor() { private var autoScaleProfiles: Output>? = null private var automaticUpgradeChannel: Output? = null private var capacity: Output? = null private var configuration: Output? = null private var diagnoseSupportEnabled: Output? = null private var email: Output? = null private var frontendPrivates: Output>? = null private var frontendPublic: Output? = null private var identity: Output? = null private var location: Output? = null private var loggingStorageAccounts: Output>? = null private var managedResourceGroup: Output? = null private var name: Output? = null private var networkInterfaces: Output>? = null private var resourceGroupName: Output? = null private var sku: Output? = null private var tags: Output>? = null /** * @param value An `auto_scale_profile` block as defined below. */ @JvmName("afbiegcbucettsjh") public suspend fun autoScaleProfiles(`value`: Output>) { this.autoScaleProfiles = value } @JvmName("gkjxdwwmhrentbjp") public suspend fun autoScaleProfiles(vararg values: Output) { this.autoScaleProfiles = Output.all(values.asList()) } /** * @param values An `auto_scale_profile` block as defined below. */ @JvmName("gkyqqbxieakdtffn") public suspend fun autoScaleProfiles(values: List>) { this.autoScaleProfiles = Output.all(values) } /** * @param value Specify the automatic upgrade channel for the NGINX deployment. Defaults to `stable`. The possible values are `stable` and `preview`. */ @JvmName("dqugdxfyordpvprh") public suspend fun automaticUpgradeChannel(`value`: Output) { this.automaticUpgradeChannel = value } /** * @param value Specify the number of NGINX capacity units for this NGINX deployment. Defaults to `20`. * > **Note** For more information on NGINX capacity units, please refer to the [NGINX scaling guidance documentation](https://docs.nginx.com/nginxaas/azure/quickstart/scaling/) */ @JvmName("basiorjrstuutnev") public suspend fun capacity(`value`: Output) { this.capacity = value } /** * @param value Specify a custom `configuration` block as defined below. */ @JvmName("ubljvaeofpgjrrlv") public suspend fun configuration(`value`: Output) { this.configuration = value } /** * @param value Should the diagnosis support be enabled? */ @JvmName("ctnwdhbgnnksuvph") public suspend fun diagnoseSupportEnabled(`value`: Output) { this.diagnoseSupportEnabled = value } /** * @param value Specify the preferred support contact email address for receiving alerts and notifications. */ @JvmName("dcoocvlkclmnebgu") public suspend fun email(`value`: Output) { this.email = value } /** * @param value One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("brhrisiehsmcxphf") public suspend fun frontendPrivates(`value`: Output>) { this.frontendPrivates = value } @JvmName("mcudstjmokrcuvby") public suspend fun frontendPrivates(vararg values: Output) { this.frontendPrivates = Output.all(values.asList()) } /** * @param values One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("obmmnnnwqhwsqexx") public suspend fun frontendPrivates(values: List>) { this.frontendPrivates = Output.all(values) } /** * @param value A `frontend_public` block as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("fjsrwkwhfphrsyqj") public suspend fun frontendPublic(`value`: Output) { this.frontendPublic = value } /** * @param value An `identity` block as defined below. */ @JvmName("qkdwghgmesosjxcs") public suspend fun identity(`value`: Output) { this.identity = value } /** * @param value The Azure Region where the NGINX Deployment should exist. Changing this forces a new NGINX Deployment to be created. */ @JvmName("fadehowyolevalph") public suspend fun location(`value`: Output) { this.location = value } /** * @param value One or more `logging_storage_account` blocks as defined below. */ @JvmName("mnkenlnodiqbjhel") public suspend fun loggingStorageAccounts(`value`: Output>) { this.loggingStorageAccounts = value } @JvmName("xqriolrclknlcnuk") public suspend fun loggingStorageAccounts( vararg values: Output, ) { this.loggingStorageAccounts = Output.all(values.asList()) } /** * @param values One or more `logging_storage_account` blocks as defined below. */ @JvmName("uesgfgaetrpauhht") public suspend fun loggingStorageAccounts(values: List>) { this.loggingStorageAccounts = Output.all(values) } /** * @param value Specify the managed resource group to deploy VNet injection related network resources. Changing this forces a new NGINX Deployment to be created. */ @JvmName("uatpinhokvkdkmxy") public suspend fun managedResourceGroup(`value`: Output) { this.managedResourceGroup = value } /** * @param value The name which should be used for this NGINX Deployment. Changing this forces a new NGINX Deployment to be created. */ @JvmName("bohwyreofyheybwc") public suspend fun name(`value`: Output) { this.name = value } /** * @param value One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("xboaatjnsfjrmoku") public suspend fun networkInterfaces(`value`: Output>) { this.networkInterfaces = value } @JvmName("mhgjqkdxfpelcbdl") public suspend fun networkInterfaces(vararg values: Output) { this.networkInterfaces = Output.all(values.asList()) } /** * @param values One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("owhriqvhogplospr") public suspend fun networkInterfaces(values: List>) { this.networkInterfaces = Output.all(values) } /** * @param value The name of the Resource Group where the NGINX Deployment should exist. Changing this forces a new NGINX Deployment to be created. */ @JvmName("hgjygxmusqvfspam") public suspend fun resourceGroupName(`value`: Output) { this.resourceGroupName = value } /** * @param value Specifies the NGINX Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. */ @JvmName("pqkypukjvdnyhgok") public suspend fun sku(`value`: Output) { this.sku = value } /** * @param value A mapping of tags which should be assigned to the NGINX Deployment. */ @JvmName("jgdcutckteimbfuv") public suspend fun tags(`value`: Output>) { this.tags = value } /** * @param value An `auto_scale_profile` block as defined below. */ @JvmName("gflwwkhyoiwfwrst") public suspend fun autoScaleProfiles(`value`: List?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.autoScaleProfiles = mapped } /** * @param argument An `auto_scale_profile` block as defined below. */ @JvmName("qxhcjovxcyqvyqij") public suspend fun autoScaleProfiles(argument: List Unit>) { val toBeMapped = argument.toList().map { DeploymentAutoScaleProfileArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.autoScaleProfiles = mapped } /** * @param argument An `auto_scale_profile` block as defined below. */ @JvmName("tiejspibsshbsvib") public suspend fun autoScaleProfiles( vararg argument: suspend DeploymentAutoScaleProfileArgsBuilder.() -> Unit, ) { val toBeMapped = argument.toList().map { DeploymentAutoScaleProfileArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.autoScaleProfiles = mapped } /** * @param argument An `auto_scale_profile` block as defined below. */ @JvmName("wcetaspaxwdfdmtt") public suspend fun autoScaleProfiles(argument: suspend DeploymentAutoScaleProfileArgsBuilder.() -> Unit) { val toBeMapped = listOf( DeploymentAutoScaleProfileArgsBuilder().applySuspend { argument() }.build(), ) val mapped = of(toBeMapped) this.autoScaleProfiles = mapped } /** * @param values An `auto_scale_profile` block as defined below. */ @JvmName("enkogiasytdbrupm") public suspend fun autoScaleProfiles(vararg values: DeploymentAutoScaleProfileArgs) { val toBeMapped = values.toList() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.autoScaleProfiles = mapped } /** * @param value Specify the automatic upgrade channel for the NGINX deployment. Defaults to `stable`. The possible values are `stable` and `preview`. */ @JvmName("ahipswrvmrbnotry") public suspend fun automaticUpgradeChannel(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.automaticUpgradeChannel = mapped } /** * @param value Specify the number of NGINX capacity units for this NGINX deployment. Defaults to `20`. * > **Note** For more information on NGINX capacity units, please refer to the [NGINX scaling guidance documentation](https://docs.nginx.com/nginxaas/azure/quickstart/scaling/) */ @JvmName("osbgfmjahbrswdut") public suspend fun capacity(`value`: Int?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.capacity = mapped } /** * @param value Specify a custom `configuration` block as defined below. */ @JvmName("viglxphjbhgcnxyr") public suspend fun configuration(`value`: DeploymentConfigurationArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.configuration = mapped } /** * @param argument Specify a custom `configuration` block as defined below. */ @JvmName("cmfvnshyoaatnnle") public suspend fun configuration(argument: suspend DeploymentConfigurationArgsBuilder.() -> Unit) { val toBeMapped = DeploymentConfigurationArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.configuration = mapped } /** * @param value Should the diagnosis support be enabled? */ @JvmName("runlknrstyiohxhy") public suspend fun diagnoseSupportEnabled(`value`: Boolean?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.diagnoseSupportEnabled = mapped } /** * @param value Specify the preferred support contact email address for receiving alerts and notifications. */ @JvmName("dukbowagipbqctev") public suspend fun email(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.email = mapped } /** * @param value One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("damyblpqucaomxas") public suspend fun frontendPrivates(`value`: List?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.frontendPrivates = mapped } /** * @param argument One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("ipimdqatqdaweoxt") public suspend fun frontendPrivates(argument: List Unit>) { val toBeMapped = argument.toList().map { DeploymentFrontendPrivateArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.frontendPrivates = mapped } /** * @param argument One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("ejrssshcesxolvlw") public suspend fun frontendPrivates( vararg argument: suspend DeploymentFrontendPrivateArgsBuilder.() -> Unit, ) { val toBeMapped = argument.toList().map { DeploymentFrontendPrivateArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.frontendPrivates = mapped } /** * @param argument One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("qnqnogbwtwlfwilg") public suspend fun frontendPrivates(argument: suspend DeploymentFrontendPrivateArgsBuilder.() -> Unit) { val toBeMapped = listOf( DeploymentFrontendPrivateArgsBuilder().applySuspend { argument() }.build(), ) val mapped = of(toBeMapped) this.frontendPrivates = mapped } /** * @param values One or more `frontend_private` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("wxnabxagygymjssu") public suspend fun frontendPrivates(vararg values: DeploymentFrontendPrivateArgs) { val toBeMapped = values.toList() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.frontendPrivates = mapped } /** * @param value A `frontend_public` block as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("lrtnnytcqwinpimx") public suspend fun frontendPublic(`value`: DeploymentFrontendPublicArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.frontendPublic = mapped } /** * @param argument A `frontend_public` block as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("uybrxthekbkwmpop") public suspend fun frontendPublic(argument: suspend DeploymentFrontendPublicArgsBuilder.() -> Unit) { val toBeMapped = DeploymentFrontendPublicArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.frontendPublic = mapped } /** * @param value An `identity` block as defined below. */ @JvmName("dmuavhokiccnttmm") public suspend fun identity(`value`: DeploymentIdentityArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.identity = mapped } /** * @param argument An `identity` block as defined below. */ @JvmName("bdnraeprwntvsfrd") public suspend fun identity(argument: suspend DeploymentIdentityArgsBuilder.() -> Unit) { val toBeMapped = DeploymentIdentityArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.identity = mapped } /** * @param value The Azure Region where the NGINX Deployment should exist. Changing this forces a new NGINX Deployment to be created. */ @JvmName("eqebgkqhtydxdbjd") public suspend fun location(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.location = mapped } /** * @param value One or more `logging_storage_account` blocks as defined below. */ @JvmName("trmfinbkpubtlptd") public suspend fun loggingStorageAccounts(`value`: List?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.loggingStorageAccounts = mapped } /** * @param argument One or more `logging_storage_account` blocks as defined below. */ @JvmName("lnkdjneafynstrub") public suspend fun loggingStorageAccounts(argument: List Unit>) { val toBeMapped = argument.toList().map { DeploymentLoggingStorageAccountArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.loggingStorageAccounts = mapped } /** * @param argument One or more `logging_storage_account` blocks as defined below. */ @JvmName("dkgaaptgtqyetrxi") public suspend fun loggingStorageAccounts( vararg argument: suspend DeploymentLoggingStorageAccountArgsBuilder.() -> Unit, ) { val toBeMapped = argument.toList().map { DeploymentLoggingStorageAccountArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.loggingStorageAccounts = mapped } /** * @param argument One or more `logging_storage_account` blocks as defined below. */ @JvmName("xsyxumbeuylfbeqo") public suspend fun loggingStorageAccounts(argument: suspend DeploymentLoggingStorageAccountArgsBuilder.() -> Unit) { val toBeMapped = listOf( DeploymentLoggingStorageAccountArgsBuilder().applySuspend { argument() }.build(), ) val mapped = of(toBeMapped) this.loggingStorageAccounts = mapped } /** * @param values One or more `logging_storage_account` blocks as defined below. */ @JvmName("gleerhhhsdqehmmo") public suspend fun loggingStorageAccounts(vararg values: DeploymentLoggingStorageAccountArgs) { val toBeMapped = values.toList() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.loggingStorageAccounts = mapped } /** * @param value Specify the managed resource group to deploy VNet injection related network resources. Changing this forces a new NGINX Deployment to be created. */ @JvmName("slaqxdhpdupwrobf") public suspend fun managedResourceGroup(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.managedResourceGroup = mapped } /** * @param value The name which should be used for this NGINX Deployment. Changing this forces a new NGINX Deployment to be created. */ @JvmName("ujxxoujubljvklof") public suspend fun name(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.name = mapped } /** * @param value One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("ecgpbrwoqutjjsry") public suspend fun networkInterfaces(`value`: List?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.networkInterfaces = mapped } /** * @param argument One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("jrfsgdpvwfhcxbcw") public suspend fun networkInterfaces(argument: List Unit>) { val toBeMapped = argument.toList().map { DeploymentNetworkInterfaceArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.networkInterfaces = mapped } /** * @param argument One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("axmgosypcjjvorvp") public suspend fun networkInterfaces( vararg argument: suspend DeploymentNetworkInterfaceArgsBuilder.() -> Unit, ) { val toBeMapped = argument.toList().map { DeploymentNetworkInterfaceArgsBuilder().applySuspend { it() }.build() } val mapped = of(toBeMapped) this.networkInterfaces = mapped } /** * @param argument One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("anncnoqvvkdanxab") public suspend fun networkInterfaces(argument: suspend DeploymentNetworkInterfaceArgsBuilder.() -> Unit) { val toBeMapped = listOf( DeploymentNetworkInterfaceArgsBuilder().applySuspend { argument() }.build(), ) val mapped = of(toBeMapped) this.networkInterfaces = mapped } /** * @param values One or more `network_interface` blocks as defined below. Changing this forces a new NGINX Deployment to be created. */ @JvmName("bosmhpiypfbxtkvw") public suspend fun networkInterfaces(vararg values: DeploymentNetworkInterfaceArgs) { val toBeMapped = values.toList() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.networkInterfaces = mapped } /** * @param value The name of the Resource Group where the NGINX Deployment should exist. Changing this forces a new NGINX Deployment to be created. */ @JvmName("bcaklwmlexaddsny") public suspend fun resourceGroupName(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.resourceGroupName = mapped } /** * @param value Specifies the NGINX Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. */ @JvmName("oknqkjwpusauetid") public suspend fun sku(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.sku = mapped } /** * @param value A mapping of tags which should be assigned to the NGINX Deployment. */ @JvmName("txxjmxwajvnnwkdv") 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 which should be assigned to the NGINX Deployment. */ @JvmName("qyslnpmcuhrspndd") public fun tags(vararg values: Pair) { val toBeMapped = values.toMap() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.tags = mapped } internal fun build(): DeploymentArgs = DeploymentArgs( autoScaleProfiles = autoScaleProfiles, automaticUpgradeChannel = automaticUpgradeChannel, capacity = capacity, configuration = configuration, diagnoseSupportEnabled = diagnoseSupportEnabled, email = email, frontendPrivates = frontendPrivates, frontendPublic = frontendPublic, identity = identity, location = location, loggingStorageAccounts = loggingStorageAccounts, managedResourceGroup = managedResourceGroup, name = name, networkInterfaces = networkInterfaces, resourceGroupName = resourceGroupName, sku = sku, tags = tags, ) }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy