Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.lb.kotlin.TargetGroup.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.lb.kotlin
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupHealthCheck
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupStickiness
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupTargetFailover
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupTargetGroupHealth
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupTargetHealthState
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupHealthCheck.Companion.toKotlin as targetGroupHealthCheckToKotlin
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupStickiness.Companion.toKotlin as targetGroupStickinessToKotlin
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupTargetFailover.Companion.toKotlin as targetGroupTargetFailoverToKotlin
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupTargetGroupHealth.Companion.toKotlin as targetGroupTargetGroupHealthToKotlin
import com.pulumi.aws.lb.kotlin.outputs.TargetGroupTargetHealthState.Companion.toKotlin as targetGroupTargetHealthStateToKotlin
/**
* Builder for [TargetGroup].
*/
@PulumiTagMarker
public class TargetGroupResourceBuilder internal constructor() {
public var name: String? = null
public var args: TargetGroupArgs = TargetGroupArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend TargetGroupArgsBuilder.() -> Unit) {
val builder = TargetGroupArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): TargetGroup {
val builtJavaResource = com.pulumi.aws.lb.TargetGroup(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return TargetGroup(builtJavaResource)
}
}
/**
* Provides a Target Group resource for use with Load Balancer resources.
* > **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.
* ## Example Usage
* ### Instance Target Group
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const main = new aws.ec2.Vpc("main", {cidrBlock: "10.0.0.0/16"});
* const test = new aws.lb.TargetGroup("test", {
* name: "tf-example-lb-tg",
* port: 80,
* protocol: "HTTP",
* vpcId: main.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* main = aws.ec2.Vpc("main", cidr_block="10.0.0.0/16")
* test = aws.lb.TargetGroup("test",
* name="tf-example-lb-tg",
* port=80,
* protocol="HTTP",
* vpc_id=main.id)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var main = new Aws.Ec2.Vpc("main", new()
* {
* CidrBlock = "10.0.0.0/16",
* });
* var test = new Aws.LB.TargetGroup("test", new()
* {
* Name = "tf-example-lb-tg",
* Port = 80,
* Protocol = "HTTP",
* VpcId = main.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* main, err := ec2.NewVpc(ctx, "main", &ec2.VpcArgs{
* CidrBlock: pulumi.String("10.0.0.0/16"),
* })
* if err != nil {
* return err
* }
* _, err = lb.NewTargetGroup(ctx, "test", &lb.TargetGroupArgs{
* Name: pulumi.String("tf-example-lb-tg"),
* Port: pulumi.Int(80),
* Protocol: pulumi.String("HTTP"),
* VpcId: main.ID(),
* })
* 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.aws.ec2.Vpc;
* import com.pulumi.aws.ec2.VpcArgs;
* import com.pulumi.aws.lb.TargetGroup;
* import com.pulumi.aws.lb.TargetGroupArgs;
* 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 main = new Vpc("main", VpcArgs.builder()
* .cidrBlock("10.0.0.0/16")
* .build());
* var test = new TargetGroup("test", TargetGroupArgs.builder()
* .name("tf-example-lb-tg")
* .port(80)
* .protocol("HTTP")
* .vpcId(main.id())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* test:
* type: aws:lb:TargetGroup
* properties:
* name: tf-example-lb-tg
* port: 80
* protocol: HTTP
* vpcId: ${main.id}
* main:
* type: aws:ec2:Vpc
* properties:
* cidrBlock: 10.0.0.0/16
* ```
*
* ### IP Target Group
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const main = new aws.ec2.Vpc("main", {cidrBlock: "10.0.0.0/16"});
* const ip_example = new aws.lb.TargetGroup("ip-example", {
* name: "tf-example-lb-tg",
* port: 80,
* protocol: "HTTP",
* targetType: "ip",
* vpcId: main.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* main = aws.ec2.Vpc("main", cidr_block="10.0.0.0/16")
* ip_example = aws.lb.TargetGroup("ip-example",
* name="tf-example-lb-tg",
* port=80,
* protocol="HTTP",
* target_type="ip",
* vpc_id=main.id)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var main = new Aws.Ec2.Vpc("main", new()
* {
* CidrBlock = "10.0.0.0/16",
* });
* var ip_example = new Aws.LB.TargetGroup("ip-example", new()
* {
* Name = "tf-example-lb-tg",
* Port = 80,
* Protocol = "HTTP",
* TargetType = "ip",
* VpcId = main.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* main, err := ec2.NewVpc(ctx, "main", &ec2.VpcArgs{
* CidrBlock: pulumi.String("10.0.0.0/16"),
* })
* if err != nil {
* return err
* }
* _, err = lb.NewTargetGroup(ctx, "ip-example", &lb.TargetGroupArgs{
* Name: pulumi.String("tf-example-lb-tg"),
* Port: pulumi.Int(80),
* Protocol: pulumi.String("HTTP"),
* TargetType: pulumi.String("ip"),
* VpcId: main.ID(),
* })
* 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.aws.ec2.Vpc;
* import com.pulumi.aws.ec2.VpcArgs;
* import com.pulumi.aws.lb.TargetGroup;
* import com.pulumi.aws.lb.TargetGroupArgs;
* 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 main = new Vpc("main", VpcArgs.builder()
* .cidrBlock("10.0.0.0/16")
* .build());
* var ip_example = new TargetGroup("ip-example", TargetGroupArgs.builder()
* .name("tf-example-lb-tg")
* .port(80)
* .protocol("HTTP")
* .targetType("ip")
* .vpcId(main.id())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* ip-example:
* type: aws:lb:TargetGroup
* properties:
* name: tf-example-lb-tg
* port: 80
* protocol: HTTP
* targetType: ip
* vpcId: ${main.id}
* main:
* type: aws:ec2:Vpc
* properties:
* cidrBlock: 10.0.0.0/16
* ```
*
* ### Lambda Target Group
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const lambda_example = new aws.lb.TargetGroup("lambda-example", {
* name: "tf-example-lb-tg",
* targetType: "lambda",
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* lambda_example = aws.lb.TargetGroup("lambda-example",
* name="tf-example-lb-tg",
* target_type="lambda")
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var lambda_example = new Aws.LB.TargetGroup("lambda-example", new()
* {
* Name = "tf-example-lb-tg",
* TargetType = "lambda",
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := lb.NewTargetGroup(ctx, "lambda-example", &lb.TargetGroupArgs{
* Name: pulumi.String("tf-example-lb-tg"),
* TargetType: pulumi.String("lambda"),
* })
* 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.aws.lb.TargetGroup;
* import com.pulumi.aws.lb.TargetGroupArgs;
* 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 lambda_example = new TargetGroup("lambda-example", TargetGroupArgs.builder()
* .name("tf-example-lb-tg")
* .targetType("lambda")
* .build());
* }
* }
* ```
* ```yaml
* resources:
* lambda-example:
* type: aws:lb:TargetGroup
* properties:
* name: tf-example-lb-tg
* targetType: lambda
* ```
*
* ### ALB Target Group
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const alb_example = new aws.lb.TargetGroup("alb-example", {
* name: "tf-example-lb-alb-tg",
* targetType: "alb",
* port: 80,
* protocol: "TCP",
* vpcId: main.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* alb_example = aws.lb.TargetGroup("alb-example",
* name="tf-example-lb-alb-tg",
* target_type="alb",
* port=80,
* protocol="TCP",
* vpc_id=main["id"])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var alb_example = new Aws.LB.TargetGroup("alb-example", new()
* {
* Name = "tf-example-lb-alb-tg",
* TargetType = "alb",
* Port = 80,
* Protocol = "TCP",
* VpcId = main.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := lb.NewTargetGroup(ctx, "alb-example", &lb.TargetGroupArgs{
* Name: pulumi.String("tf-example-lb-alb-tg"),
* TargetType: pulumi.String("alb"),
* Port: pulumi.Int(80),
* Protocol: pulumi.String("TCP"),
* VpcId: pulumi.Any(main.Id),
* })
* 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.aws.lb.TargetGroup;
* import com.pulumi.aws.lb.TargetGroupArgs;
* 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 alb_example = new TargetGroup("alb-example", TargetGroupArgs.builder()
* .name("tf-example-lb-alb-tg")
* .targetType("alb")
* .port(80)
* .protocol("TCP")
* .vpcId(main.id())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* alb-example:
* type: aws:lb:TargetGroup
* properties:
* name: tf-example-lb-alb-tg
* targetType: alb
* port: 80
* protocol: TCP
* vpcId: ${main.id}
* ```
*
* ### Target group with unhealthy connection termination disabled
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const tcp_example = new aws.lb.TargetGroup("tcp-example", {
* name: "tf-example-lb-nlb-tg",
* port: 25,
* protocol: "TCP",
* vpcId: main.id,
* targetHealthStates: [{
* enableUnhealthyConnectionTermination: false,
* }],
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* tcp_example = aws.lb.TargetGroup("tcp-example",
* name="tf-example-lb-nlb-tg",
* port=25,
* protocol="TCP",
* vpc_id=main["id"],
* target_health_states=[{
* "enable_unhealthy_connection_termination": False,
* }])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var tcp_example = new Aws.LB.TargetGroup("tcp-example", new()
* {
* Name = "tf-example-lb-nlb-tg",
* Port = 25,
* Protocol = "TCP",
* VpcId = main.Id,
* TargetHealthStates = new[]
* {
* new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs
* {
* EnableUnhealthyConnectionTermination = false,
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{
* Name: pulumi.String("tf-example-lb-nlb-tg"),
* Port: pulumi.Int(25),
* Protocol: pulumi.String("TCP"),
* VpcId: pulumi.Any(main.Id),
* TargetHealthStates: lb.TargetGroupTargetHealthStateArray{
* &lb.TargetGroupTargetHealthStateArgs{
* EnableUnhealthyConnectionTermination: pulumi.Bool(false),
* },
* },
* })
* 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.aws.lb.TargetGroup;
* import com.pulumi.aws.lb.TargetGroupArgs;
* import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;
* 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 tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder()
* .name("tf-example-lb-nlb-tg")
* .port(25)
* .protocol("TCP")
* .vpcId(main.id())
* .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()
* .enableUnhealthyConnectionTermination(false)
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* tcp-example:
* type: aws:lb:TargetGroup
* properties:
* name: tf-example-lb-nlb-tg
* port: 25
* protocol: TCP
* vpcId: ${main.id}
* targetHealthStates:
* - enableUnhealthyConnectionTermination: false
* ```
*
* ### Target group with health requirements
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const tcp_example = new aws.lb.TargetGroup("tcp-example", {
* name: "tf-example-lb-nlb-tg",
* port: 80,
* protocol: "TCP",
* vpcId: main.id,
* targetGroupHealth: {
* dnsFailover: {
* minimumHealthyTargetsCount: "1",
* minimumHealthyTargetsPercentage: "off",
* },
* unhealthyStateRouting: {
* minimumHealthyTargetsCount: 1,
* minimumHealthyTargetsPercentage: "off",
* },
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* tcp_example = aws.lb.TargetGroup("tcp-example",
* name="tf-example-lb-nlb-tg",
* port=80,
* protocol="TCP",
* vpc_id=main["id"],
* target_group_health={
* "dns_failover": {
* "minimum_healthy_targets_count": "1",
* "minimum_healthy_targets_percentage": "off",
* },
* "unhealthy_state_routing": {
* "minimum_healthy_targets_count": 1,
* "minimum_healthy_targets_percentage": "off",
* },
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var tcp_example = new Aws.LB.TargetGroup("tcp-example", new()
* {
* Name = "tf-example-lb-nlb-tg",
* Port = 80,
* Protocol = "TCP",
* VpcId = main.Id,
* TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs
* {
* DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs
* {
* MinimumHealthyTargetsCount = "1",
* MinimumHealthyTargetsPercentage = "off",
* },
* UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs
* {
* MinimumHealthyTargetsCount = 1,
* MinimumHealthyTargetsPercentage = "off",
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{
* Name: pulumi.String("tf-example-lb-nlb-tg"),
* Port: pulumi.Int(80),
* Protocol: pulumi.String("TCP"),
* VpcId: pulumi.Any(main.Id),
* TargetGroupHealth: &lb.TargetGroupTargetGroupHealthArgs{
* DnsFailover: &lb.TargetGroupTargetGroupHealthDnsFailoverArgs{
* MinimumHealthyTargetsCount: pulumi.String("1"),
* MinimumHealthyTargetsPercentage: pulumi.String("off"),
* },
* UnhealthyStateRouting: &lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{
* MinimumHealthyTargetsCount: pulumi.Int(1),
* MinimumHealthyTargetsPercentage: pulumi.String("off"),
* },
* },
* })
* 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.aws.lb.TargetGroup;
* import com.pulumi.aws.lb.TargetGroupArgs;
* import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;
* import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;
* import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;
* 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 tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder()
* .name("tf-example-lb-nlb-tg")
* .port(80)
* .protocol("TCP")
* .vpcId(main.id())
* .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()
* .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()
* .minimumHealthyTargetsCount("1")
* .minimumHealthyTargetsPercentage("off")
* .build())
* .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()
* .minimumHealthyTargetsCount("1")
* .minimumHealthyTargetsPercentage("off")
* .build())
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* tcp-example:
* type: aws:lb:TargetGroup
* properties:
* name: tf-example-lb-nlb-tg
* port: 80
* protocol: TCP
* vpcId: ${main.id}
* targetGroupHealth:
* dnsFailover:
* minimumHealthyTargetsCount: '1'
* minimumHealthyTargetsPercentage: off
* unhealthyStateRouting:
* minimumHealthyTargetsCount: '1'
* minimumHealthyTargetsPercentage: off
* ```
*
* ## Import
* Using `pulumi import`, import Target Groups using their ARN. For example:
* ```sh
* $ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314
* ```
*/
public class TargetGroup internal constructor(
override val javaResource: com.pulumi.aws.lb.TargetGroup,
) : KotlinCustomResource(javaResource, TargetGroupMapper) {
/**
* ARN of the Target Group (matches `id`).
*/
public val arn: Output
get() = javaResource.arn().applyValue({ args0 -> args0 })
/**
* ARN suffix for use with CloudWatch Metrics.
*/
public val arnSuffix: Output
get() = javaResource.arnSuffix().applyValue({ args0 -> args0 })
/**
* Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#deregistration-delay) for more information. Default is `false`.
*/
public val connectionTermination: Output
get() = javaResource.connectionTermination().applyValue({ args0 -> args0 })
/**
* Amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.
*/
public val deregistrationDelay: Output?
get() = javaResource.deregistrationDelay().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Health Check configuration block. Detailed below.
*/
public val healthCheck: Output
get() = javaResource.healthCheck().applyValue({ args0 ->
args0.let({ args0 ->
targetGroupHealthCheckToKotlin(args0)
})
})
/**
* The type of IP addresses used by the target group, only supported when target type is set to `ip`. Possible values are `ipv4` or `ipv6`.
*/
public val ipAddressType: Output
get() = javaResource.ipAddressType().applyValue({ args0 -> args0 })
/**
* Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when `target_type` is `lambda`. Default is `false`.
*/
public val lambdaMultiValueHeadersEnabled: Output?
get() = javaResource.lambdaMultiValueHeadersEnabled().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* ARNs of the Load Balancers associated with the Target Group.
*/
public val loadBalancerArns: Output>
get() = javaResource.loadBalancerArns().applyValue({ args0 -> args0.map({ args0 -> args0 }) })
/**
* Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is `round_robin`, `least_outstanding_requests`, or `weighted_random`. The default is `round_robin`.
*/
public val loadBalancingAlgorithmType: Output
get() = javaResource.loadBalancingAlgorithmType().applyValue({ args0 -> args0 })
/**
* Determines whether to enable target anomaly mitigation. Target anomaly mitigation is only supported by the `weighted_random` load balancing algorithm type. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#automatic-target-weights) for more information. The value is `"on"` or `"off"`. The default is `"off"`.
*/
public val loadBalancingAnomalyMitigation: Output
get() = javaResource.loadBalancingAnomalyMitigation().applyValue({ args0 -> args0 })
/**
* Indicates whether cross zone load balancing is enabled. The value is `"true"`, `"false"` or `"use_load_balancer_configuration"`. The default is `"use_load_balancer_configuration"`.
*/
public val loadBalancingCrossZoneEnabled: Output
get() = javaResource.loadBalancingCrossZoneEnabled().applyValue({ args0 -> args0 })
/**
* Name of the target group. If omitted, this provider will assign a random, unique name. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen.
*/
public val name: Output
get() = javaResource.name().applyValue({ args0 -> args0 })
/**
* Creates a unique name beginning with the specified prefix. Conflicts with `name`. Cannot be longer than 6 characters.
*/
public val namePrefix: Output
get() = javaResource.namePrefix().applyValue({ args0 -> args0 })
/**
* Port on which targets receive traffic, unless overridden when registering a specific target. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`.
*/
public val port: Output?
get() = javaResource.port().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* Whether client IP preservation is enabled. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#client-ip-preservation) for more information.
*/
public val preserveClientIp: Output
get() = javaResource.preserveClientIp().applyValue({ args0 -> args0 })
/**
* Protocol to use for routing traffic to the targets.
* Should be one of `GENEVE`, `HTTP`, `HTTPS`, `TCP`, `TCP_UDP`, `TLS`, or `UDP`.
* Required when `target_type` is `instance`, `ip`, or `alb`.
* Does not apply when `target_type` is `lambda`.
*/
public val protocol: Output?
get() = javaResource.protocol().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* Only applicable when `protocol` is `HTTP` or `HTTPS`. The protocol version. Specify `GRPC` to send requests to targets using gRPC. Specify `HTTP2` to send requests to targets using HTTP/2. The default is `HTTP1`, which sends requests to targets using HTTP/1.1
*/
public val protocolVersion: Output
get() = javaResource.protocolVersion().applyValue({ args0 -> args0 })
/**
* Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`.
*/
public val proxyProtocolV2: Output?
get() = javaResource.proxyProtocolV2().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.
*/
public val slowStart: Output?
get() = javaResource.slowStart().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* Stickiness configuration block. Detailed below.
*/
public val stickiness: Output
get() = javaResource.stickiness().applyValue({ args0 ->
args0.let({ args0 ->
targetGroupStickinessToKotlin(args0)
})
})
/**
* Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
public val tags: Output>?
get() = javaResource.tags().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}).orElse(null)
})
/**
* A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
*/
@Deprecated(
message = """
Please use `tags` instead.
""",
)
public val tagsAll: Output>
get() = javaResource.tagsAll().applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
})
/**
* Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
*/
public val targetFailovers: Output>
get() = javaResource.targetFailovers().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> targetGroupTargetFailoverToKotlin(args0) })
})
})
/**
* Target health requirements block. See target_group_health for more information.
*/
public val targetGroupHealth: Output
get() = javaResource.targetGroupHealth().applyValue({ args0 ->
args0.let({ args0 ->
targetGroupTargetGroupHealthToKotlin(args0)
})
})
/**
* Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information.
*/
public val targetHealthStates: Output>
get() = javaResource.targetHealthStates().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> targetGroupTargetHealthStateToKotlin(args0) })
})
})
/**
* Type of target that you must specify when registering targets with this target group.
* See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values.
* The default is `instance`.
* Note that you can't specify targets for a target group using both instance IDs and IP addresses.
* If the target type is `ip`, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP addresses.
* Network Load Balancers do not support the `lambda` target type.
* Application Load Balancers do not support the `alb` target type.
*/
public val targetType: Output?
get() = javaResource.targetType().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Identifier of the VPC in which to create the target group. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`.
*/
public val vpcId: Output?
get() = javaResource.vpcId().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
}
public object TargetGroupMapper : ResourceMapper {
override fun supportsMappingOfType(javaResource: Resource): Boolean =
com.pulumi.aws.lb.TargetGroup::class == javaResource::class
override fun map(javaResource: Resource): TargetGroup = TargetGroup(
javaResource as
com.pulumi.aws.lb.TargetGroup,
)
}
/**
* @see [TargetGroup].
* @param name The _unique_ name of the resulting resource.
* @param block Builder for [TargetGroup].
*/
public suspend fun targetGroup(name: String, block: suspend TargetGroupResourceBuilder.() -> Unit): TargetGroup {
val builder = TargetGroupResourceBuilder()
builder.name(name)
block(builder)
return builder.build()
}
/**
* @see [TargetGroup].
* @param name The _unique_ name of the resulting resource.
*/
public fun targetGroup(name: String): TargetGroup {
val builder = TargetGroupResourceBuilder()
builder.name(name)
return builder.build()
}