1. Packages
  2. AWSx (Pulumi Crosswalk for AWS)
  3. API Docs
  4. lb
  5. NetworkLoadBalancer
Viewing docs for AWSx (Pulumi Crosswalk for AWS) v1.0.6 (Older version)
published on Monday, Mar 9, 2026 by Pulumi
awsx logo
Viewing docs for AWSx (Pulumi Crosswalk for AWS) v1.0.6 (Older version)
published on Monday, Mar 9, 2026 by Pulumi

    Provides a Network Load Balancer resource with listeners and default target group.

    Create NetworkLoadBalancer Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new NetworkLoadBalancer(name: string, args?: NetworkLoadBalancerArgs, opts?: ComponentResourceOptions);
    @overload
    def NetworkLoadBalancer(resource_name: str,
                            args: Optional[NetworkLoadBalancerArgs] = None,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def NetworkLoadBalancer(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            access_logs: Optional[pulumi_aws.lb.LoadBalancerAccessLogsArgs] = None,
                            customer_owned_ipv4_pool: Optional[str] = None,
                            default_target_group: Optional[TargetGroupArgs] = None,
                            default_target_group_port: Optional[int] = None,
                            desync_mitigation_mode: Optional[str] = None,
                            drop_invalid_header_fields: Optional[bool] = None,
                            enable_cross_zone_load_balancing: Optional[bool] = None,
                            enable_deletion_protection: Optional[bool] = None,
                            enable_tls_version_and_cipher_suite_headers: Optional[bool] = None,
                            enable_waf_fail_open: Optional[bool] = None,
                            enable_xff_client_port: Optional[bool] = None,
                            idle_timeout: Optional[int] = None,
                            internal: Optional[bool] = None,
                            ip_address_type: Optional[str] = None,
                            listener: Optional[ListenerArgs] = None,
                            listeners: Optional[Sequence[ListenerArgs]] = None,
                            name: Optional[str] = None,
                            name_prefix: Optional[str] = None,
                            preserve_host_header: Optional[bool] = None,
                            subnet_ids: Optional[Sequence[str]] = None,
                            subnet_mappings: Optional[Sequence[pulumi_aws.lb.LoadBalancerSubnetMappingArgs]] = None,
                            subnets: Optional[Sequence[pulumi_aws.ec2.Subnet]] = None,
                            tags: Optional[Mapping[str, str]] = None,
                            xff_header_processing_mode: Optional[str] = None)
    func NewNetworkLoadBalancer(ctx *Context, name string, args *NetworkLoadBalancerArgs, opts ...ResourceOption) (*NetworkLoadBalancer, error)
    public NetworkLoadBalancer(string name, NetworkLoadBalancerArgs? args = null, ComponentResourceOptions? opts = null)
    public NetworkLoadBalancer(String name, NetworkLoadBalancerArgs args)
    public NetworkLoadBalancer(String name, NetworkLoadBalancerArgs args, ComponentResourceOptions options)
    
    type: awsx:lb:NetworkLoadBalancer
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args NetworkLoadBalancerArgs
    The arguments to resource properties.
    opts ComponentResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args NetworkLoadBalancerArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args NetworkLoadBalancerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args NetworkLoadBalancerArgs
    The arguments to resource properties.
    opts ComponentResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args NetworkLoadBalancerArgs
    The arguments to resource properties.
    options ComponentResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var networkLoadBalancerResource = new Awsx.Lb.NetworkLoadBalancer("networkLoadBalancerResource", new()
    {
        AccessLogs = new Aws.LB.Inputs.LoadBalancerAccessLogsArgs
        {
            Bucket = "string",
            Enabled = false,
            Prefix = "string",
        },
        CustomerOwnedIpv4Pool = "string",
        DefaultTargetGroup = new Awsx.Lb.Inputs.TargetGroupArgs
        {
            ConnectionTermination = false,
            DeregistrationDelay = 0,
            HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs
            {
                Enabled = false,
                HealthyThreshold = 0,
                Interval = 0,
                Matcher = "string",
                Path = "string",
                Port = "string",
                Protocol = "string",
                Timeout = 0,
                UnhealthyThreshold = 0,
            },
            IpAddressType = "string",
            LambdaMultiValueHeadersEnabled = false,
            LoadBalancingAlgorithmType = "string",
            LoadBalancingCrossZoneEnabled = "string",
            Name = "string",
            NamePrefix = "string",
            Port = 0,
            PreserveClientIp = "string",
            Protocol = "string",
            ProtocolVersion = "string",
            ProxyProtocolV2 = false,
            SlowStart = 0,
            Stickiness = new Aws.LB.Inputs.TargetGroupStickinessArgs
            {
                Type = "string",
                CookieDuration = 0,
                CookieName = "string",
                Enabled = false,
            },
            Tags = 
            {
                { "string", "string" },
            },
            TargetFailovers = new()
            {
                new Aws.LB.Inputs.TargetGroupTargetFailoverArgs
                {
                    OnDeregistration = "string",
                    OnUnhealthy = "string",
                },
            },
            TargetType = "string",
            VpcId = "string",
        },
        DefaultTargetGroupPort = 0,
        DesyncMitigationMode = "string",
        DropInvalidHeaderFields = false,
        EnableCrossZoneLoadBalancing = false,
        EnableDeletionProtection = false,
        EnableTlsVersionAndCipherSuiteHeaders = false,
        EnableWafFailOpen = false,
        EnableXffClientPort = false,
        IdleTimeout = 0,
        Internal = false,
        IpAddressType = "string",
        Listener = new Awsx.Lb.Inputs.ListenerArgs
        {
            AlpnPolicy = "string",
            CertificateArn = "string",
            DefaultActions = new()
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "string",
                    AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs
                    {
                        UserPoolArn = "string",
                        UserPoolClientId = "string",
                        UserPoolDomain = "string",
                        AuthenticationRequestExtraParams = 
                        {
                            { "string", "string" },
                        },
                        OnUnauthenticatedRequest = "string",
                        Scope = "string",
                        SessionCookieName = "string",
                        SessionTimeout = 0,
                    },
                    AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs
                    {
                        AuthorizationEndpoint = "string",
                        ClientId = "string",
                        ClientSecret = "string",
                        Issuer = "string",
                        TokenEndpoint = "string",
                        UserInfoEndpoint = "string",
                        AuthenticationRequestExtraParams = 
                        {
                            { "string", "string" },
                        },
                        OnUnauthenticatedRequest = "string",
                        Scope = "string",
                        SessionCookieName = "string",
                        SessionTimeout = 0,
                    },
                    FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs
                    {
                        ContentType = "string",
                        MessageBody = "string",
                        StatusCode = "string",
                    },
                    Forward = new Aws.LB.Inputs.ListenerDefaultActionForwardArgs
                    {
                        TargetGroups = new()
                        {
                            new Aws.LB.Inputs.ListenerDefaultActionForwardTargetGroupArgs
                            {
                                Arn = "string",
                                Weight = 0,
                            },
                        },
                        Stickiness = new Aws.LB.Inputs.ListenerDefaultActionForwardStickinessArgs
                        {
                            Duration = 0,
                            Enabled = false,
                        },
                    },
                    Order = 0,
                    Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs
                    {
                        StatusCode = "string",
                        Host = "string",
                        Path = "string",
                        Port = "string",
                        Protocol = "string",
                        Query = "string",
                    },
                    TargetGroupArn = "string",
                },
            },
            Port = 0,
            Protocol = "string",
            SslPolicy = "string",
            Tags = 
            {
                { "string", "string" },
            },
        },
        Listeners = new()
        {
            new Awsx.Lb.Inputs.ListenerArgs
            {
                AlpnPolicy = "string",
                CertificateArn = "string",
                DefaultActions = new()
                {
                    new Aws.LB.Inputs.ListenerDefaultActionArgs
                    {
                        Type = "string",
                        AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs
                        {
                            UserPoolArn = "string",
                            UserPoolClientId = "string",
                            UserPoolDomain = "string",
                            AuthenticationRequestExtraParams = 
                            {
                                { "string", "string" },
                            },
                            OnUnauthenticatedRequest = "string",
                            Scope = "string",
                            SessionCookieName = "string",
                            SessionTimeout = 0,
                        },
                        AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs
                        {
                            AuthorizationEndpoint = "string",
                            ClientId = "string",
                            ClientSecret = "string",
                            Issuer = "string",
                            TokenEndpoint = "string",
                            UserInfoEndpoint = "string",
                            AuthenticationRequestExtraParams = 
                            {
                                { "string", "string" },
                            },
                            OnUnauthenticatedRequest = "string",
                            Scope = "string",
                            SessionCookieName = "string",
                            SessionTimeout = 0,
                        },
                        FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs
                        {
                            ContentType = "string",
                            MessageBody = "string",
                            StatusCode = "string",
                        },
                        Forward = new Aws.LB.Inputs.ListenerDefaultActionForwardArgs
                        {
                            TargetGroups = new()
                            {
                                new Aws.LB.Inputs.ListenerDefaultActionForwardTargetGroupArgs
                                {
                                    Arn = "string",
                                    Weight = 0,
                                },
                            },
                            Stickiness = new Aws.LB.Inputs.ListenerDefaultActionForwardStickinessArgs
                            {
                                Duration = 0,
                                Enabled = false,
                            },
                        },
                        Order = 0,
                        Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs
                        {
                            StatusCode = "string",
                            Host = "string",
                            Path = "string",
                            Port = "string",
                            Protocol = "string",
                            Query = "string",
                        },
                        TargetGroupArn = "string",
                    },
                },
                Port = 0,
                Protocol = "string",
                SslPolicy = "string",
                Tags = 
                {
                    { "string", "string" },
                },
            },
        },
        Name = "string",
        NamePrefix = "string",
        PreserveHostHeader = false,
        SubnetIds = new[]
        {
            "string",
        },
        SubnetMappings = new[]
        {
            new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs
            {
                SubnetId = "string",
                AllocationId = "string",
                Ipv6Address = "string",
                OutpostId = "string",
                PrivateIpv4Address = "string",
            },
        },
        Subnets = new[]
        {
            subnet,
        },
        Tags = 
        {
            { "string", "string" },
        },
        XffHeaderProcessingMode = "string",
    });
    
    example, err := lb.NewNetworkLoadBalancer(ctx, "networkLoadBalancerResource", &lb.NetworkLoadBalancerArgs{
    	AccessLogs: &lb.LoadBalancerAccessLogsArgs{
    		Bucket:  pulumi.String("string"),
    		Enabled: pulumi.Bool(false),
    		Prefix:  pulumi.String("string"),
    	},
    	CustomerOwnedIpv4Pool: pulumi.String("string"),
    	DefaultTargetGroup: &lb.TargetGroupArgs{
    		ConnectionTermination: pulumi.Bool(false),
    		DeregistrationDelay:   pulumi.Int(0),
    		HealthCheck: &lb.TargetGroupHealthCheckArgs{
    			Enabled:            pulumi.Bool(false),
    			HealthyThreshold:   pulumi.Int(0),
    			Interval:           pulumi.Int(0),
    			Matcher:            pulumi.String("string"),
    			Path:               pulumi.String("string"),
    			Port:               pulumi.String("string"),
    			Protocol:           pulumi.String("string"),
    			Timeout:            pulumi.Int(0),
    			UnhealthyThreshold: pulumi.Int(0),
    		},
    		IpAddressType:                  pulumi.String("string"),
    		LambdaMultiValueHeadersEnabled: pulumi.Bool(false),
    		LoadBalancingAlgorithmType:     pulumi.String("string"),
    		LoadBalancingCrossZoneEnabled:  pulumi.String("string"),
    		Name:                           pulumi.String("string"),
    		NamePrefix:                     pulumi.String("string"),
    		Port:                           pulumi.Int(0),
    		PreserveClientIp:               pulumi.String("string"),
    		Protocol:                       pulumi.String("string"),
    		ProtocolVersion:                pulumi.String("string"),
    		ProxyProtocolV2:                pulumi.Bool(false),
    		SlowStart:                      pulumi.Int(0),
    		Stickiness: &lb.TargetGroupStickinessArgs{
    			Type:           pulumi.String("string"),
    			CookieDuration: pulumi.Int(0),
    			CookieName:     pulumi.String("string"),
    			Enabled:        pulumi.Bool(false),
    		},
    		Tags: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		TargetFailovers: lb.TargetGroupTargetFailoverArray{
    			&lb.TargetGroupTargetFailoverArgs{
    				OnDeregistration: pulumi.String("string"),
    				OnUnhealthy:      pulumi.String("string"),
    			},
    		},
    		TargetType: pulumi.String("string"),
    		VpcId:      pulumi.String("string"),
    	},
    	DefaultTargetGroupPort:                pulumi.Int(0),
    	DesyncMitigationMode:                  pulumi.String("string"),
    	DropInvalidHeaderFields:               pulumi.Bool(false),
    	EnableCrossZoneLoadBalancing:          pulumi.Bool(false),
    	EnableDeletionProtection:              pulumi.Bool(false),
    	EnableTlsVersionAndCipherSuiteHeaders: pulumi.Bool(false),
    	EnableWafFailOpen:                     pulumi.Bool(false),
    	EnableXffClientPort:                   pulumi.Bool(false),
    	IdleTimeout:                           pulumi.Int(0),
    	Internal:                              pulumi.Bool(false),
    	IpAddressType:                         pulumi.String("string"),
    	Listener: &lb.ListenerArgs{
    		AlpnPolicy:     pulumi.String("string"),
    		CertificateArn: pulumi.String("string"),
    		DefaultActions: lb.ListenerDefaultActionArray{
    			&lb.ListenerDefaultActionArgs{
    				Type: pulumi.String("string"),
    				AuthenticateCognito: &lb.ListenerDefaultActionAuthenticateCognitoArgs{
    					UserPoolArn:      pulumi.String("string"),
    					UserPoolClientId: pulumi.String("string"),
    					UserPoolDomain:   pulumi.String("string"),
    					AuthenticationRequestExtraParams: pulumi.StringMap{
    						"string": pulumi.String("string"),
    					},
    					OnUnauthenticatedRequest: pulumi.String("string"),
    					Scope:                    pulumi.String("string"),
    					SessionCookieName:        pulumi.String("string"),
    					SessionTimeout:           pulumi.Int(0),
    				},
    				AuthenticateOidc: &lb.ListenerDefaultActionAuthenticateOidcArgs{
    					AuthorizationEndpoint: pulumi.String("string"),
    					ClientId:              pulumi.String("string"),
    					ClientSecret:          pulumi.String("string"),
    					Issuer:                pulumi.String("string"),
    					TokenEndpoint:         pulumi.String("string"),
    					UserInfoEndpoint:      pulumi.String("string"),
    					AuthenticationRequestExtraParams: pulumi.StringMap{
    						"string": pulumi.String("string"),
    					},
    					OnUnauthenticatedRequest: pulumi.String("string"),
    					Scope:                    pulumi.String("string"),
    					SessionCookieName:        pulumi.String("string"),
    					SessionTimeout:           pulumi.Int(0),
    				},
    				FixedResponse: &lb.ListenerDefaultActionFixedResponseArgs{
    					ContentType: pulumi.String("string"),
    					MessageBody: pulumi.String("string"),
    					StatusCode:  pulumi.String("string"),
    				},
    				Forward: &lb.ListenerDefaultActionForwardArgs{
    					TargetGroups: lb.ListenerDefaultActionForwardTargetGroupArray{
    						&lb.ListenerDefaultActionForwardTargetGroupArgs{
    							Arn:    pulumi.String("string"),
    							Weight: pulumi.Int(0),
    						},
    					},
    					Stickiness: &lb.ListenerDefaultActionForwardStickinessArgs{
    						Duration: pulumi.Int(0),
    						Enabled:  pulumi.Bool(false),
    					},
    				},
    				Order: pulumi.Int(0),
    				Redirect: &lb.ListenerDefaultActionRedirectArgs{
    					StatusCode: pulumi.String("string"),
    					Host:       pulumi.String("string"),
    					Path:       pulumi.String("string"),
    					Port:       pulumi.String("string"),
    					Protocol:   pulumi.String("string"),
    					Query:      pulumi.String("string"),
    				},
    				TargetGroupArn: pulumi.String("string"),
    			},
    		},
    		Port:      pulumi.Int(0),
    		Protocol:  pulumi.String("string"),
    		SslPolicy: pulumi.String("string"),
    		Tags: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    	},
    	Listeners: []lb.ListenerArgs{
    		{
    			AlpnPolicy:     pulumi.String("string"),
    			CertificateArn: pulumi.String("string"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				{
    					Type: pulumi.String("string"),
    					AuthenticateCognito: {
    						UserPoolArn:      pulumi.String("string"),
    						UserPoolClientId: pulumi.String("string"),
    						UserPoolDomain:   pulumi.String("string"),
    						AuthenticationRequestExtraParams: {
    							"string": pulumi.String("string"),
    						},
    						OnUnauthenticatedRequest: pulumi.String("string"),
    						Scope:                    pulumi.String("string"),
    						SessionCookieName:        pulumi.String("string"),
    						SessionTimeout:           pulumi.Int(0),
    					},
    					AuthenticateOidc: {
    						AuthorizationEndpoint: pulumi.String("string"),
    						ClientId:              pulumi.String("string"),
    						ClientSecret:          pulumi.String("string"),
    						Issuer:                pulumi.String("string"),
    						TokenEndpoint:         pulumi.String("string"),
    						UserInfoEndpoint:      pulumi.String("string"),
    						AuthenticationRequestExtraParams: {
    							"string": pulumi.String("string"),
    						},
    						OnUnauthenticatedRequest: pulumi.String("string"),
    						Scope:                    pulumi.String("string"),
    						SessionCookieName:        pulumi.String("string"),
    						SessionTimeout:           pulumi.Int(0),
    					},
    					FixedResponse: {
    						ContentType: pulumi.String("string"),
    						MessageBody: pulumi.String("string"),
    						StatusCode:  pulumi.String("string"),
    					},
    					Forward: {
    						TargetGroups: lb.ListenerDefaultActionForwardTargetGroupArray{
    							{
    								Arn:    pulumi.String("string"),
    								Weight: pulumi.Int(0),
    							},
    						},
    						Stickiness: {
    							Duration: pulumi.Int(0),
    							Enabled:  pulumi.Bool(false),
    						},
    					},
    					Order: pulumi.Int(0),
    					Redirect: {
    						StatusCode: pulumi.String("string"),
    						Host:       pulumi.String("string"),
    						Path:       pulumi.String("string"),
    						Port:       pulumi.String("string"),
    						Protocol:   pulumi.String("string"),
    						Query:      pulumi.String("string"),
    					},
    					TargetGroupArn: pulumi.String("string"),
    				},
    			},
    			Port:      pulumi.Int(0),
    			Protocol:  pulumi.String("string"),
    			SslPolicy: pulumi.String("string"),
    			Tags: {
    				"string": pulumi.String("string"),
    			},
    		},
    	},
    	Name:               pulumi.String("string"),
    	NamePrefix:         pulumi.String("string"),
    	PreserveHostHeader: pulumi.Bool(false),
    	SubnetIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	SubnetMappings: lb.LoadBalancerSubnetMappingArray{
    		&lb.LoadBalancerSubnetMappingArgs{
    			SubnetId:           pulumi.String("string"),
    			AllocationId:       pulumi.String("string"),
    			Ipv6Address:        pulumi.String("string"),
    			OutpostId:          pulumi.String("string"),
    			PrivateIpv4Address: pulumi.String("string"),
    		},
    	},
    	Subnets: ec2.SubnetArray{
    		subnet,
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	XffHeaderProcessingMode: pulumi.String("string"),
    })
    
    var networkLoadBalancerResource = new NetworkLoadBalancer("networkLoadBalancerResource", NetworkLoadBalancerArgs.builder()
        .accessLogs(LoadBalancerAccessLogsArgs.builder()
            .bucket("string")
            .enabled(false)
            .prefix("string")
            .build())
        .customerOwnedIpv4Pool("string")
        .defaultTargetGroup(TargetGroupArgs.builder()
            .connectionTermination(false)
            .deregistrationDelay(0)
            .healthCheck(TargetGroupHealthCheckArgs.builder()
                .enabled(false)
                .healthyThreshold(0)
                .interval(0)
                .matcher("string")
                .path("string")
                .port("string")
                .protocol("string")
                .timeout(0)
                .unhealthyThreshold(0)
                .build())
            .ipAddressType("string")
            .lambdaMultiValueHeadersEnabled(false)
            .loadBalancingAlgorithmType("string")
            .loadBalancingCrossZoneEnabled("string")
            .name("string")
            .namePrefix("string")
            .port(0)
            .preserveClientIp("string")
            .protocol("string")
            .protocolVersion("string")
            .proxyProtocolV2(false)
            .slowStart(0)
            .stickiness(TargetGroupStickinessArgs.builder()
                .type("string")
                .cookieDuration(0)
                .cookieName("string")
                .enabled(false)
                .build())
            .tags(Map.of("string", "string"))
            .targetFailovers(TargetGroupTargetFailoverArgs.builder()
                .onDeregistration("string")
                .onUnhealthy("string")
                .build())
            .targetType("string")
            .vpcId("string")
            .build())
        .defaultTargetGroupPort(0)
        .desyncMitigationMode("string")
        .dropInvalidHeaderFields(false)
        .enableCrossZoneLoadBalancing(false)
        .enableDeletionProtection(false)
        .enableTlsVersionAndCipherSuiteHeaders(false)
        .enableWafFailOpen(false)
        .enableXffClientPort(false)
        .idleTimeout(0)
        .internal(false)
        .ipAddressType("string")
        .listener(ListenerArgs.builder()
            .alpnPolicy("string")
            .certificateArn("string")
            .defaultActions(ListenerDefaultActionArgs.builder()
                .type("string")
                .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()
                    .userPoolArn("string")
                    .userPoolClientId("string")
                    .userPoolDomain("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()
                    .authorizationEndpoint("string")
                    .clientId("string")
                    .clientSecret("string")
                    .issuer("string")
                    .tokenEndpoint("string")
                    .userInfoEndpoint("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()
                    .contentType("string")
                    .messageBody("string")
                    .statusCode("string")
                    .build())
                .forward(ListenerDefaultActionForwardArgs.builder()
                    .targetGroups(ListenerDefaultActionForwardTargetGroupArgs.builder()
                        .arn("string")
                        .weight(0)
                        .build())
                    .stickiness(ListenerDefaultActionForwardStickinessArgs.builder()
                        .duration(0)
                        .enabled(false)
                        .build())
                    .build())
                .order(0)
                .redirect(ListenerDefaultActionRedirectArgs.builder()
                    .statusCode("string")
                    .host("string")
                    .path("string")
                    .port("string")
                    .protocol("string")
                    .query("string")
                    .build())
                .targetGroupArn("string")
                .build())
            .port(0)
            .protocol("string")
            .sslPolicy("string")
            .tags(Map.of("string", "string"))
            .build())
        .listeners(ListenerArgs.builder()
            .alpnPolicy("string")
            .certificateArn("string")
            .defaultActions(ListenerDefaultActionArgs.builder()
                .type("string")
                .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()
                    .userPoolArn("string")
                    .userPoolClientId("string")
                    .userPoolDomain("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()
                    .authorizationEndpoint("string")
                    .clientId("string")
                    .clientSecret("string")
                    .issuer("string")
                    .tokenEndpoint("string")
                    .userInfoEndpoint("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()
                    .contentType("string")
                    .messageBody("string")
                    .statusCode("string")
                    .build())
                .forward(ListenerDefaultActionForwardArgs.builder()
                    .targetGroups(ListenerDefaultActionForwardTargetGroupArgs.builder()
                        .arn("string")
                        .weight(0)
                        .build())
                    .stickiness(ListenerDefaultActionForwardStickinessArgs.builder()
                        .duration(0)
                        .enabled(false)
                        .build())
                    .build())
                .order(0)
                .redirect(ListenerDefaultActionRedirectArgs.builder()
                    .statusCode("string")
                    .host("string")
                    .path("string")
                    .port("string")
                    .protocol("string")
                    .query("string")
                    .build())
                .targetGroupArn("string")
                .build())
            .port(0)
            .protocol("string")
            .sslPolicy("string")
            .tags(Map.of("string", "string"))
            .build())
        .name("string")
        .namePrefix("string")
        .preserveHostHeader(false)
        .subnetIds("string")
        .subnetMappings(LoadBalancerSubnetMappingArgs.builder()
            .subnetId("string")
            .allocationId("string")
            .ipv6Address("string")
            .outpostId("string")
            .privateIpv4Address("string")
            .build())
        .subnets(subnet)
        .tags(Map.of("string", "string"))
        .xffHeaderProcessingMode("string")
        .build());
    
    network_load_balancer_resource = awsx.lb.NetworkLoadBalancer("networkLoadBalancerResource",
        access_logs={
            "bucket": "string",
            "enabled": False,
            "prefix": "string",
        },
        customer_owned_ipv4_pool="string",
        default_target_group={
            "connection_termination": False,
            "deregistration_delay": 0,
            "health_check": {
                "enabled": False,
                "healthy_threshold": 0,
                "interval": 0,
                "matcher": "string",
                "path": "string",
                "port": "string",
                "protocol": "string",
                "timeout": 0,
                "unhealthy_threshold": 0,
            },
            "ip_address_type": "string",
            "lambda_multi_value_headers_enabled": False,
            "load_balancing_algorithm_type": "string",
            "load_balancing_cross_zone_enabled": "string",
            "name": "string",
            "name_prefix": "string",
            "port": 0,
            "preserve_client_ip": "string",
            "protocol": "string",
            "protocol_version": "string",
            "proxy_protocol_v2": False,
            "slow_start": 0,
            "stickiness": {
                "type": "string",
                "cookie_duration": 0,
                "cookie_name": "string",
                "enabled": False,
            },
            "tags": {
                "string": "string",
            },
            "target_failovers": [{
                "on_deregistration": "string",
                "on_unhealthy": "string",
            }],
            "target_type": "string",
            "vpc_id": "string",
        },
        default_target_group_port=0,
        desync_mitigation_mode="string",
        drop_invalid_header_fields=False,
        enable_cross_zone_load_balancing=False,
        enable_deletion_protection=False,
        enable_tls_version_and_cipher_suite_headers=False,
        enable_waf_fail_open=False,
        enable_xff_client_port=False,
        idle_timeout=0,
        internal=False,
        ip_address_type="string",
        listener={
            "alpn_policy": "string",
            "certificate_arn": "string",
            "default_actions": [{
                "type": "string",
                "authenticate_cognito": {
                    "user_pool_arn": "string",
                    "user_pool_client_id": "string",
                    "user_pool_domain": "string",
                    "authentication_request_extra_params": {
                        "string": "string",
                    },
                    "on_unauthenticated_request": "string",
                    "scope": "string",
                    "session_cookie_name": "string",
                    "session_timeout": 0,
                },
                "authenticate_oidc": {
                    "authorization_endpoint": "string",
                    "client_id": "string",
                    "client_secret": "string",
                    "issuer": "string",
                    "token_endpoint": "string",
                    "user_info_endpoint": "string",
                    "authentication_request_extra_params": {
                        "string": "string",
                    },
                    "on_unauthenticated_request": "string",
                    "scope": "string",
                    "session_cookie_name": "string",
                    "session_timeout": 0,
                },
                "fixed_response": {
                    "content_type": "string",
                    "message_body": "string",
                    "status_code": "string",
                },
                "forward": {
                    "target_groups": [{
                        "arn": "string",
                        "weight": 0,
                    }],
                    "stickiness": {
                        "duration": 0,
                        "enabled": False,
                    },
                },
                "order": 0,
                "redirect": {
                    "status_code": "string",
                    "host": "string",
                    "path": "string",
                    "port": "string",
                    "protocol": "string",
                    "query": "string",
                },
                "target_group_arn": "string",
            }],
            "port": 0,
            "protocol": "string",
            "ssl_policy": "string",
            "tags": {
                "string": "string",
            },
        },
        listeners=[{
            "alpn_policy": "string",
            "certificate_arn": "string",
            "default_actions": [{
                "type": "string",
                "authenticate_cognito": {
                    "user_pool_arn": "string",
                    "user_pool_client_id": "string",
                    "user_pool_domain": "string",
                    "authentication_request_extra_params": {
                        "string": "string",
                    },
                    "on_unauthenticated_request": "string",
                    "scope": "string",
                    "session_cookie_name": "string",
                    "session_timeout": 0,
                },
                "authenticate_oidc": {
                    "authorization_endpoint": "string",
                    "client_id": "string",
                    "client_secret": "string",
                    "issuer": "string",
                    "token_endpoint": "string",
                    "user_info_endpoint": "string",
                    "authentication_request_extra_params": {
                        "string": "string",
                    },
                    "on_unauthenticated_request": "string",
                    "scope": "string",
                    "session_cookie_name": "string",
                    "session_timeout": 0,
                },
                "fixed_response": {
                    "content_type": "string",
                    "message_body": "string",
                    "status_code": "string",
                },
                "forward": {
                    "target_groups": [{
                        "arn": "string",
                        "weight": 0,
                    }],
                    "stickiness": {
                        "duration": 0,
                        "enabled": False,
                    },
                },
                "order": 0,
                "redirect": {
                    "status_code": "string",
                    "host": "string",
                    "path": "string",
                    "port": "string",
                    "protocol": "string",
                    "query": "string",
                },
                "target_group_arn": "string",
            }],
            "port": 0,
            "protocol": "string",
            "ssl_policy": "string",
            "tags": {
                "string": "string",
            },
        }],
        name="string",
        name_prefix="string",
        preserve_host_header=False,
        subnet_ids=["string"],
        subnet_mappings=[{
            "subnet_id": "string",
            "allocation_id": "string",
            "ipv6_address": "string",
            "outpost_id": "string",
            "private_ipv4_address": "string",
        }],
        subnets=[subnet],
        tags={
            "string": "string",
        },
        xff_header_processing_mode="string")
    
    const networkLoadBalancerResource = new awsx.lb.NetworkLoadBalancer("networkLoadBalancerResource", {
        accessLogs: {
            bucket: "string",
            enabled: false,
            prefix: "string",
        },
        customerOwnedIpv4Pool: "string",
        defaultTargetGroup: {
            connectionTermination: false,
            deregistrationDelay: 0,
            healthCheck: {
                enabled: false,
                healthyThreshold: 0,
                interval: 0,
                matcher: "string",
                path: "string",
                port: "string",
                protocol: "string",
                timeout: 0,
                unhealthyThreshold: 0,
            },
            ipAddressType: "string",
            lambdaMultiValueHeadersEnabled: false,
            loadBalancingAlgorithmType: "string",
            loadBalancingCrossZoneEnabled: "string",
            name: "string",
            namePrefix: "string",
            port: 0,
            preserveClientIp: "string",
            protocol: "string",
            protocolVersion: "string",
            proxyProtocolV2: false,
            slowStart: 0,
            stickiness: {
                type: "string",
                cookieDuration: 0,
                cookieName: "string",
                enabled: false,
            },
            tags: {
                string: "string",
            },
            targetFailovers: [{
                onDeregistration: "string",
                onUnhealthy: "string",
            }],
            targetType: "string",
            vpcId: "string",
        },
        defaultTargetGroupPort: 0,
        desyncMitigationMode: "string",
        dropInvalidHeaderFields: false,
        enableCrossZoneLoadBalancing: false,
        enableDeletionProtection: false,
        enableTlsVersionAndCipherSuiteHeaders: false,
        enableWafFailOpen: false,
        enableXffClientPort: false,
        idleTimeout: 0,
        internal: false,
        ipAddressType: "string",
        listener: {
            alpnPolicy: "string",
            certificateArn: "string",
            defaultActions: [{
                type: "string",
                authenticateCognito: {
                    userPoolArn: "string",
                    userPoolClientId: "string",
                    userPoolDomain: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                authenticateOidc: {
                    authorizationEndpoint: "string",
                    clientId: "string",
                    clientSecret: "string",
                    issuer: "string",
                    tokenEndpoint: "string",
                    userInfoEndpoint: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                fixedResponse: {
                    contentType: "string",
                    messageBody: "string",
                    statusCode: "string",
                },
                forward: {
                    targetGroups: [{
                        arn: "string",
                        weight: 0,
                    }],
                    stickiness: {
                        duration: 0,
                        enabled: false,
                    },
                },
                order: 0,
                redirect: {
                    statusCode: "string",
                    host: "string",
                    path: "string",
                    port: "string",
                    protocol: "string",
                    query: "string",
                },
                targetGroupArn: "string",
            }],
            port: 0,
            protocol: "string",
            sslPolicy: "string",
            tags: {
                string: "string",
            },
        },
        listeners: [{
            alpnPolicy: "string",
            certificateArn: "string",
            defaultActions: [{
                type: "string",
                authenticateCognito: {
                    userPoolArn: "string",
                    userPoolClientId: "string",
                    userPoolDomain: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                authenticateOidc: {
                    authorizationEndpoint: "string",
                    clientId: "string",
                    clientSecret: "string",
                    issuer: "string",
                    tokenEndpoint: "string",
                    userInfoEndpoint: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                fixedResponse: {
                    contentType: "string",
                    messageBody: "string",
                    statusCode: "string",
                },
                forward: {
                    targetGroups: [{
                        arn: "string",
                        weight: 0,
                    }],
                    stickiness: {
                        duration: 0,
                        enabled: false,
                    },
                },
                order: 0,
                redirect: {
                    statusCode: "string",
                    host: "string",
                    path: "string",
                    port: "string",
                    protocol: "string",
                    query: "string",
                },
                targetGroupArn: "string",
            }],
            port: 0,
            protocol: "string",
            sslPolicy: "string",
            tags: {
                string: "string",
            },
        }],
        name: "string",
        namePrefix: "string",
        preserveHostHeader: false,
        subnetIds: ["string"],
        subnetMappings: [{
            subnetId: "string",
            allocationId: "string",
            ipv6Address: "string",
            outpostId: "string",
            privateIpv4Address: "string",
        }],
        subnets: [subnet],
        tags: {
            string: "string",
        },
        xffHeaderProcessingMode: "string",
    });
    
    type: awsx:lb:NetworkLoadBalancer
    properties:
        accessLogs:
            bucket: string
            enabled: false
            prefix: string
        customerOwnedIpv4Pool: string
        defaultTargetGroup:
            connectionTermination: false
            deregistrationDelay: 0
            healthCheck:
                enabled: false
                healthyThreshold: 0
                interval: 0
                matcher: string
                path: string
                port: string
                protocol: string
                timeout: 0
                unhealthyThreshold: 0
            ipAddressType: string
            lambdaMultiValueHeadersEnabled: false
            loadBalancingAlgorithmType: string
            loadBalancingCrossZoneEnabled: string
            name: string
            namePrefix: string
            port: 0
            preserveClientIp: string
            protocol: string
            protocolVersion: string
            proxyProtocolV2: false
            slowStart: 0
            stickiness:
                cookieDuration: 0
                cookieName: string
                enabled: false
                type: string
            tags:
                string: string
            targetFailovers:
                - onDeregistration: string
                  onUnhealthy: string
            targetType: string
            vpcId: string
        defaultTargetGroupPort: 0
        desyncMitigationMode: string
        dropInvalidHeaderFields: false
        enableCrossZoneLoadBalancing: false
        enableDeletionProtection: false
        enableTlsVersionAndCipherSuiteHeaders: false
        enableWafFailOpen: false
        enableXffClientPort: false
        idleTimeout: 0
        internal: false
        ipAddressType: string
        listener:
            alpnPolicy: string
            certificateArn: string
            defaultActions:
                - authenticateCognito:
                    authenticationRequestExtraParams:
                        string: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    userPoolArn: string
                    userPoolClientId: string
                    userPoolDomain: string
                  authenticateOidc:
                    authenticationRequestExtraParams:
                        string: string
                    authorizationEndpoint: string
                    clientId: string
                    clientSecret: string
                    issuer: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    tokenEndpoint: string
                    userInfoEndpoint: string
                  fixedResponse:
                    contentType: string
                    messageBody: string
                    statusCode: string
                  forward:
                    stickiness:
                        duration: 0
                        enabled: false
                    targetGroups:
                        - arn: string
                          weight: 0
                  order: 0
                  redirect:
                    host: string
                    path: string
                    port: string
                    protocol: string
                    query: string
                    statusCode: string
                  targetGroupArn: string
                  type: string
            port: 0
            protocol: string
            sslPolicy: string
            tags:
                string: string
        listeners:
            - alpnPolicy: string
              certificateArn: string
              defaultActions:
                - authenticateCognito:
                    authenticationRequestExtraParams:
                        string: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    userPoolArn: string
                    userPoolClientId: string
                    userPoolDomain: string
                  authenticateOidc:
                    authenticationRequestExtraParams:
                        string: string
                    authorizationEndpoint: string
                    clientId: string
                    clientSecret: string
                    issuer: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    tokenEndpoint: string
                    userInfoEndpoint: string
                  fixedResponse:
                    contentType: string
                    messageBody: string
                    statusCode: string
                  forward:
                    stickiness:
                        duration: 0
                        enabled: false
                    targetGroups:
                        - arn: string
                          weight: 0
                  order: 0
                  redirect:
                    host: string
                    path: string
                    port: string
                    protocol: string
                    query: string
                    statusCode: string
                  targetGroupArn: string
                  type: string
              port: 0
              protocol: string
              sslPolicy: string
              tags:
                string: string
        name: string
        namePrefix: string
        preserveHostHeader: false
        subnetIds:
            - string
        subnetMappings:
            - allocationId: string
              ipv6Address: string
              outpostId: string
              privateIpv4Address: string
              subnetId: string
        subnets:
            - ${subnet}
        tags:
            string: string
        xffHeaderProcessingMode: string
    

    NetworkLoadBalancer Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The NetworkLoadBalancer resource accepts the following input properties:

    AccessLogs Pulumi.Aws.LB.Inputs.LoadBalancerAccessLogs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    CustomerOwnedIpv4Pool string
    The ID of the customer owned ipv4 pool to use for this load balancer.
    DefaultTargetGroup TargetGroup
    Options creating a default target group.
    DefaultTargetGroupPort int
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    DesyncMitigationMode string
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    DropInvalidHeaderFields bool
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    EnableCrossZoneLoadBalancing bool
    If true, cross-zone load balancing of the load balancer will be enabled. For network and gateway type load balancers, this feature is disabled by default (false). For application load balancer this feature is always enabled (true) and cannot be disabled. Defaults to false.
    EnableDeletionProtection bool
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    EnableTlsVersionAndCipherSuiteHeaders bool
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    EnableWafFailOpen bool
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    EnableXffClientPort bool
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to true.
    IdleTimeout int
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    Internal bool
    If true, the LB will be internal.
    IpAddressType string
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    Listener Listener
    A listener to create. Only one of [listener] and [listeners] can be specified.
    Listeners List<Listener>
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    Name string
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PreserveHostHeader bool
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    SubnetIds List<string>
    A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.
    SubnetMappings List<Pulumi.Aws.LB.Inputs.LoadBalancerSubnetMapping>
    A subnet mapping block as documented below.
    Subnets List<Pulumi.Aws.Ec2.Subnet>
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    Tags Dictionary<string, string>
    A 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.
    XffHeaderProcessingMode string
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    AccessLogs LoadBalancerAccessLogsArgs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    CustomerOwnedIpv4Pool string
    The ID of the customer owned ipv4 pool to use for this load balancer.
    DefaultTargetGroup TargetGroupArgs
    Options creating a default target group.
    DefaultTargetGroupPort int
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    DesyncMitigationMode string
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    DropInvalidHeaderFields bool
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    EnableCrossZoneLoadBalancing bool
    If true, cross-zone load balancing of the load balancer will be enabled. For network and gateway type load balancers, this feature is disabled by default (false). For application load balancer this feature is always enabled (true) and cannot be disabled. Defaults to false.
    EnableDeletionProtection bool
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    EnableTlsVersionAndCipherSuiteHeaders bool
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    EnableWafFailOpen bool
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    EnableXffClientPort bool
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to true.
    IdleTimeout int
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    Internal bool
    If true, the LB will be internal.
    IpAddressType string
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    Listener ListenerArgs
    A listener to create. Only one of [listener] and [listeners] can be specified.
    Listeners []ListenerArgs
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    Name string
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PreserveHostHeader bool
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    SubnetIds []string
    A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.
    SubnetMappings LoadBalancerSubnetMappingArgs
    A subnet mapping block as documented below.
    Subnets Subnet
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    Tags map[string]string
    A 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.
    XffHeaderProcessingMode string
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    accessLogs LoadBalancerAccessLogs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customerOwnedIpv4Pool String
    The ID of the customer owned ipv4 pool to use for this load balancer.
    defaultTargetGroup TargetGroup
    Options creating a default target group.
    defaultTargetGroupPort Integer
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desyncMitigationMode String
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dropInvalidHeaderFields Boolean
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enableCrossZoneLoadBalancing Boolean
    If true, cross-zone load balancing of the load balancer will be enabled. For network and gateway type load balancers, this feature is disabled by default (false). For application load balancer this feature is always enabled (true) and cannot be disabled. Defaults to false.
    enableDeletionProtection Boolean
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enableTlsVersionAndCipherSuiteHeaders Boolean
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enableWafFailOpen Boolean
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enableXffClientPort Boolean
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to true.
    idleTimeout Integer
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal Boolean
    If true, the LB will be internal.
    ipAddressType String
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener Listener
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners List<Listener>
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name String
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserveHostHeader Boolean
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    subnetIds List<String>
    A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.
    subnetMappings List<LoadBalancerSubnetMapping>
    A subnet mapping block as documented below.
    subnets List<Subnet>
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags Map<String,String>
    A 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.
    xffHeaderProcessingMode String
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    accessLogs pulumiAws.types.input.LoadBalancerAccessLogs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customerOwnedIpv4Pool string
    The ID of the customer owned ipv4 pool to use for this load balancer.
    defaultTargetGroup TargetGroup
    Options creating a default target group.
    defaultTargetGroupPort number
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desyncMitigationMode string
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dropInvalidHeaderFields boolean
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enableCrossZoneLoadBalancing boolean
    If true, cross-zone load balancing of the load balancer will be enabled. For network and gateway type load balancers, this feature is disabled by default (false). For application load balancer this feature is always enabled (true) and cannot be disabled. Defaults to false.
    enableDeletionProtection boolean
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enableTlsVersionAndCipherSuiteHeaders boolean
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enableWafFailOpen boolean
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enableXffClientPort boolean
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to true.
    idleTimeout number
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal boolean
    If true, the LB will be internal.
    ipAddressType string
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener Listener
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners Listener[]
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name string
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserveHostHeader boolean
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    subnetIds string[]
    A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.
    subnetMappings pulumiAws.types.input.LoadBalancerSubnetMapping[]
    A subnet mapping block as documented below.
    subnets pulumiAws.ec2.Subnet[]
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags {[key: string]: string}
    A 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.
    xffHeaderProcessingMode string
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    access_logs pulumi_aws.lb.LoadBalancerAccessLogsArgs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customer_owned_ipv4_pool str
    The ID of the customer owned ipv4 pool to use for this load balancer.
    default_target_group TargetGroupArgs
    Options creating a default target group.
    default_target_group_port int
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desync_mitigation_mode str
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    drop_invalid_header_fields bool
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enable_cross_zone_load_balancing bool
    If true, cross-zone load balancing of the load balancer will be enabled. For network and gateway type load balancers, this feature is disabled by default (false). For application load balancer this feature is always enabled (true) and cannot be disabled. Defaults to false.
    enable_deletion_protection bool
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enable_tls_version_and_cipher_suite_headers bool
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enable_waf_fail_open bool
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enable_xff_client_port bool
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to true.
    idle_timeout int
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal bool
    If true, the LB will be internal.
    ip_address_type str
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener ListenerArgs
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners Sequence[ListenerArgs]
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name str
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserve_host_header bool
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    subnet_ids Sequence[str]
    A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.
    subnet_mappings Sequence[pulumi_aws.lb.LoadBalancerSubnetMappingArgs]
    A subnet mapping block as documented below.
    subnets Sequence[pulumi_aws.ec2.Subnet]
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags Mapping[str, str]
    A 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.
    xff_header_processing_mode str
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    accessLogs Property Map

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customerOwnedIpv4Pool String
    The ID of the customer owned ipv4 pool to use for this load balancer.
    defaultTargetGroup Property Map
    Options creating a default target group.
    defaultTargetGroupPort Number
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desyncMitigationMode String
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dropInvalidHeaderFields Boolean
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enableCrossZoneLoadBalancing Boolean
    If true, cross-zone load balancing of the load balancer will be enabled. For network and gateway type load balancers, this feature is disabled by default (false). For application load balancer this feature is always enabled (true) and cannot be disabled. Defaults to false.
    enableDeletionProtection Boolean
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enableTlsVersionAndCipherSuiteHeaders Boolean
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enableWafFailOpen Boolean
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enableXffClientPort Boolean
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to true.
    idleTimeout Number
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal Boolean
    If true, the LB will be internal.
    ipAddressType String
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener Property Map
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners List<Property Map>
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name String
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserveHostHeader Boolean
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    subnetIds List<String>
    A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.
    subnetMappings List<Property Map>
    A subnet mapping block as documented below.
    subnets List<aws:ec2:Subnet>
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags Map<String>
    A 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.
    xffHeaderProcessingMode String
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the NetworkLoadBalancer resource produces the following output properties:

    LoadBalancer Pulumi.Aws.LB.LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    VpcId string
    Id of the VPC in which this load balancer is operating
    LoadBalancer LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    VpcId string
    Id of the VPC in which this load balancer is operating
    loadBalancer LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpcId String
    Id of the VPC in which this load balancer is operating
    loadBalancer pulumiAws.LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpcId string
    Id of the VPC in which this load balancer is operating
    load_balancer pulumi_aws.lb.LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpc_id str
    Id of the VPC in which this load balancer is operating
    loadBalancer aws::LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpcId String
    Id of the VPC in which this load balancer is operating

    Supporting Types

    Listener, ListenerArgs

    Provides a Load Balancer Listener resource.

    Note: aws.alb.Listener is known as aws.lb.Listener. The functionality is identical.

    Example Usage

    Forward Action

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {}); // … const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {}); // … const frontEndListener = new aws.lb.Listener("frontEndListener", { loadBalancerArn: frontEndLoadBalancer.arn, port: 443, protocol: "HTTPS", sslPolicy: "ELBSecurityPolicy-2016-08", certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", defaultActions: [{ type: "forward", targetGroupArn: frontEndTargetGroup.arn, }], });

    import pulumi
    import pulumi_aws as aws
    

    front_end_load_balancer = aws.lb.LoadBalancer("frontEndLoadBalancer")

    front_end_target_group = aws.lb.TargetGroup("frontEndTargetGroup")

    front_end_listener = aws.lb.Listener("frontEndListener", load_balancer_arn=front_end_load_balancer.arn, port=443, protocol="HTTPS", ssl_policy="ELBSecurityPolicy-2016-08", certificate_arn="arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", default_actions=[aws.lb.ListenerDefaultActionArgs( type="forward", target_group_arn=front_end_target_group.arn, )])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var frontEndLoadBalancer = new Aws.LB.LoadBalancer("frontEndLoadBalancer");
    
        // ...
        var frontEndTargetGroup = new Aws.LB.TargetGroup("frontEndTargetGroup");
    
        // ...
        var frontEndListener = new Aws.LB.Listener("frontEndListener", new()
        {
            LoadBalancerArn = frontEndLoadBalancer.Arn,
            Port = 443,
            Protocol = "HTTPS",
            SslPolicy = "ELBSecurityPolicy-2016-08",
            CertificateArn = "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4",
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "forward",
                    TargetGroupArn = frontEndTargetGroup.Arn,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		frontEndLoadBalancer, err := lb.NewLoadBalancer(ctx, "frontEndLoadBalancer", nil)
    		if err != nil {
    			return err
    		}
    		frontEndTargetGroup, err := lb.NewTargetGroup(ctx, "frontEndTargetGroup", nil)
    		if err != nil {
    			return err
    		}
    		_, err = lb.NewListener(ctx, "frontEndListener", &lb.ListenerArgs{
    			LoadBalancerArn: frontEndLoadBalancer.Arn,
    			Port:            pulumi.Int(443),
    			Protocol:        pulumi.String("HTTPS"),
    			SslPolicy:       pulumi.String("ELBSecurityPolicy-2016-08"),
    			CertificateArn:  pulumi.String("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					Type:           pulumi.String("forward"),
    					TargetGroupArn: frontEndTargetGroup.Arn,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.LoadBalancer;
    import com.pulumi.aws.lb.TargetGroup;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    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 frontEndLoadBalancer = new LoadBalancer("frontEndLoadBalancer");
    
            var frontEndTargetGroup = new TargetGroup("frontEndTargetGroup");
    
            var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder()        
                .loadBalancerArn(frontEndLoadBalancer.arn())
                .port("443")
                .protocol("HTTPS")
                .sslPolicy("ELBSecurityPolicy-2016-08")
                .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4")
                .defaultActions(ListenerDefaultActionArgs.builder()
                    .type("forward")
                    .targetGroupArn(frontEndTargetGroup.arn())
                    .build())
                .build());
    
        }
    }
    
    resources:
      frontEndLoadBalancer:
        type: aws:lb:LoadBalancer
      frontEndTargetGroup:
        type: aws:lb:TargetGroup
      frontEndListener:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${frontEndLoadBalancer.arn}
          port: '443'
          protocol: HTTPS
          sslPolicy: ELBSecurityPolicy-2016-08
          certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4
          defaultActions:
            - type: forward
              targetGroupArn: ${frontEndTargetGroup.arn}
    

    To a NLB:

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const frontEnd = new aws.lb.Listener("frontEnd", { loadBalancerArn: aws_lb.front_end.arn, port: 443, protocol: "TLS", certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", alpnPolicy: "HTTP2Preferred", defaultActions: [{ type: "forward", targetGroupArn: aws_lb_target_group.front_end.arn, }], });

    import pulumi
    import pulumi_aws as aws
    

    front_end = aws.lb.Listener("frontEnd", load_balancer_arn=aws_lb["front_end"]["arn"], port=443, protocol="TLS", certificate_arn="arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", alpn_policy="HTTP2Preferred", default_actions=[aws.lb.ListenerDefaultActionArgs( type="forward", target_group_arn=aws_lb_target_group["front_end"]["arn"], )])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var frontEnd = new Aws.LB.Listener("frontEnd", new()
        {
            LoadBalancerArn = aws_lb.Front_end.Arn,
            Port = 443,
            Protocol = "TLS",
            CertificateArn = "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4",
            AlpnPolicy = "HTTP2Preferred",
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "forward",
                    TargetGroupArn = aws_lb_target_group.Front_end.Arn,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := lb.NewListener(ctx, "frontEnd", &lb.ListenerArgs{
    			LoadBalancerArn: pulumi.Any(aws_lb.Front_end.Arn),
    			Port:            pulumi.Int(443),
    			Protocol:        pulumi.String("TLS"),
    			CertificateArn:  pulumi.String("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4"),
    			AlpnPolicy:      pulumi.String("HTTP2Preferred"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					Type:           pulumi.String("forward"),
    					TargetGroupArn: pulumi.Any(aws_lb_target_group.Front_end.Arn),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    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 frontEnd = new Listener("frontEnd", ListenerArgs.builder()        
                .loadBalancerArn(aws_lb.front_end().arn())
                .port("443")
                .protocol("TLS")
                .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4")
                .alpnPolicy("HTTP2Preferred")
                .defaultActions(ListenerDefaultActionArgs.builder()
                    .type("forward")
                    .targetGroupArn(aws_lb_target_group.front_end().arn())
                    .build())
                .build());
    
        }
    }
    
    resources:
      frontEnd:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${aws_lb.front_end.arn}
          port: '443'
          protocol: TLS
          certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4
          alpnPolicy: HTTP2Preferred
          defaultActions:
            - type: forward
              targetGroupArn: ${aws_lb_target_group.front_end.arn}
    

    Redirect Action

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {}); // … const frontEndListener = new aws.lb.Listener("frontEndListener", { loadBalancerArn: frontEndLoadBalancer.arn, port: 80, protocol: "HTTP", defaultActions: [{ type: "redirect", redirect: { port: "443", protocol: "HTTPS", statusCode: "HTTP_301", }, }], });

    import pulumi
    import pulumi_aws as aws
    

    front_end_load_balancer = aws.lb.LoadBalancer("frontEndLoadBalancer")

    front_end_listener = aws.lb.Listener("frontEndListener", load_balancer_arn=front_end_load_balancer.arn, port=80, protocol="HTTP", default_actions=[aws.lb.ListenerDefaultActionArgs( type="redirect", redirect=aws.lb.ListenerDefaultActionRedirectArgs( port="443", protocol="HTTPS", status_code="HTTP_301", ), )])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var frontEndLoadBalancer = new Aws.LB.LoadBalancer("frontEndLoadBalancer");
    
        // ...
        var frontEndListener = new Aws.LB.Listener("frontEndListener", new()
        {
            LoadBalancerArn = frontEndLoadBalancer.Arn,
            Port = 80,
            Protocol = "HTTP",
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "redirect",
                    Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs
                    {
                        Port = "443",
                        Protocol = "HTTPS",
                        StatusCode = "HTTP_301",
                    },
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		frontEndLoadBalancer, err := lb.NewLoadBalancer(ctx, "frontEndLoadBalancer", nil)
    		if err != nil {
    			return err
    		}
    		_, err = lb.NewListener(ctx, "frontEndListener", &lb.ListenerArgs{
    			LoadBalancerArn: frontEndLoadBalancer.Arn,
    			Port:            pulumi.Int(80),
    			Protocol:        pulumi.String("HTTP"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					Type: pulumi.String("redirect"),
    					Redirect: &lb.ListenerDefaultActionRedirectArgs{
    						Port:       pulumi.String("443"),
    						Protocol:   pulumi.String("HTTPS"),
    						StatusCode: pulumi.String("HTTP_301"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.LoadBalancer;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;
    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 frontEndLoadBalancer = new LoadBalancer("frontEndLoadBalancer");
    
            var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder()        
                .loadBalancerArn(frontEndLoadBalancer.arn())
                .port("80")
                .protocol("HTTP")
                .defaultActions(ListenerDefaultActionArgs.builder()
                    .type("redirect")
                    .redirect(ListenerDefaultActionRedirectArgs.builder()
                        .port("443")
                        .protocol("HTTPS")
                        .statusCode("HTTP_301")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      frontEndLoadBalancer:
        type: aws:lb:LoadBalancer
      frontEndListener:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${frontEndLoadBalancer.arn}
          port: '80'
          protocol: HTTP
          defaultActions:
            - type: redirect
              redirect:
                port: '443'
                protocol: HTTPS
                statusCode: HTTP_301
    

    Fixed-response Action

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {}); // … const frontEndListener = new aws.lb.Listener("frontEndListener", { loadBalancerArn: frontEndLoadBalancer.arn, port: 80, protocol: "HTTP", defaultActions: [{ type: "fixed-response", fixedResponse: { contentType: "text/plain", messageBody: "Fixed response content", statusCode: "200", }, }], });

    import pulumi
    import pulumi_aws as aws
    

    front_end_load_balancer = aws.lb.LoadBalancer("frontEndLoadBalancer")

    front_end_listener = aws.lb.Listener("frontEndListener", load_balancer_arn=front_end_load_balancer.arn, port=80, protocol="HTTP", default_actions=[aws.lb.ListenerDefaultActionArgs( type="fixed-response", fixed_response=aws.lb.ListenerDefaultActionFixedResponseArgs( content_type="text/plain", message_body="Fixed response content", status_code="200", ), )])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var frontEndLoadBalancer = new Aws.LB.LoadBalancer("frontEndLoadBalancer");
    
        // ...
        var frontEndListener = new Aws.LB.Listener("frontEndListener", new()
        {
            LoadBalancerArn = frontEndLoadBalancer.Arn,
            Port = 80,
            Protocol = "HTTP",
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "fixed-response",
                    FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs
                    {
                        ContentType = "text/plain",
                        MessageBody = "Fixed response content",
                        StatusCode = "200",
                    },
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		frontEndLoadBalancer, err := lb.NewLoadBalancer(ctx, "frontEndLoadBalancer", nil)
    		if err != nil {
    			return err
    		}
    		_, err = lb.NewListener(ctx, "frontEndListener", &lb.ListenerArgs{
    			LoadBalancerArn: frontEndLoadBalancer.Arn,
    			Port:            pulumi.Int(80),
    			Protocol:        pulumi.String("HTTP"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					Type: pulumi.String("fixed-response"),
    					FixedResponse: &lb.ListenerDefaultActionFixedResponseArgs{
    						ContentType: pulumi.String("text/plain"),
    						MessageBody: pulumi.String("Fixed response content"),
    						StatusCode:  pulumi.String("200"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.LoadBalancer;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;
    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 frontEndLoadBalancer = new LoadBalancer("frontEndLoadBalancer");
    
            var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder()        
                .loadBalancerArn(frontEndLoadBalancer.arn())
                .port("80")
                .protocol("HTTP")
                .defaultActions(ListenerDefaultActionArgs.builder()
                    .type("fixed-response")
                    .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()
                        .contentType("text/plain")
                        .messageBody("Fixed response content")
                        .statusCode("200")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      frontEndLoadBalancer:
        type: aws:lb:LoadBalancer
      frontEndListener:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${frontEndLoadBalancer.arn}
          port: '80'
          protocol: HTTP
          defaultActions:
            - type: fixed-response
              fixedResponse:
                contentType: text/plain
                messageBody: Fixed response content
                statusCode: '200'
    

    Authenticate-cognito Action

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {}); // … const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {}); // … const pool = new aws.cognito.UserPool("pool", {}); // … const client = new aws.cognito.UserPoolClient("client", {}); // … const domain = new aws.cognito.UserPoolDomain("domain", {}); // … const frontEndListener = new aws.lb.Listener("frontEndListener", { loadBalancerArn: frontEndLoadBalancer.arn, port: 80, protocol: "HTTP", defaultActions: [ { type: "authenticate-cognito", authenticateCognito: { userPoolArn: pool.arn, userPoolClientId: client.id, userPoolDomain: domain.domain, }, }, { type: "forward", targetGroupArn: frontEndTargetGroup.arn, }, ], });

    import pulumi
    import pulumi_aws as aws
    

    front_end_load_balancer = aws.lb.LoadBalancer("frontEndLoadBalancer")

    front_end_target_group = aws.lb.TargetGroup("frontEndTargetGroup")

    pool = aws.cognito.UserPool("pool")

    client = aws.cognito.UserPoolClient("client")

    domain = aws.cognito.UserPoolDomain("domain")

    front_end_listener = aws.lb.Listener("frontEndListener", load_balancer_arn=front_end_load_balancer.arn, port=80, protocol="HTTP", default_actions=[ aws.lb.ListenerDefaultActionArgs( type="authenticate-cognito", authenticate_cognito=aws.lb.ListenerDefaultActionAuthenticateCognitoArgs( user_pool_arn=pool.arn, user_pool_client_id=client.id, user_pool_domain=domain.domain, ), ), aws.lb.ListenerDefaultActionArgs( type="forward", target_group_arn=front_end_target_group.arn, ), ])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var frontEndLoadBalancer = new Aws.LB.LoadBalancer("frontEndLoadBalancer");
    
        // ...
        var frontEndTargetGroup = new Aws.LB.TargetGroup("frontEndTargetGroup");
    
        // ...
        var pool = new Aws.Cognito.UserPool("pool");
    
        // ...
        var client = new Aws.Cognito.UserPoolClient("client");
    
        // ...
        var domain = new Aws.Cognito.UserPoolDomain("domain");
    
        // ...
        var frontEndListener = new Aws.LB.Listener("frontEndListener", new()
        {
            LoadBalancerArn = frontEndLoadBalancer.Arn,
            Port = 80,
            Protocol = "HTTP",
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "authenticate-cognito",
                    AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs
                    {
                        UserPoolArn = pool.Arn,
                        UserPoolClientId = client.Id,
                        UserPoolDomain = domain.Domain,
                    },
                },
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "forward",
                    TargetGroupArn = frontEndTargetGroup.Arn,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cognito"
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		frontEndLoadBalancer, err := lb.NewLoadBalancer(ctx, "frontEndLoadBalancer", nil)
    		if err != nil {
    			return err
    		}
    		frontEndTargetGroup, err := lb.NewTargetGroup(ctx, "frontEndTargetGroup", nil)
    		if err != nil {
    			return err
    		}
    		pool, err := cognito.NewUserPool(ctx, "pool", nil)
    		if err != nil {
    			return err
    		}
    		client, err := cognito.NewUserPoolClient(ctx, "client", nil)
    		if err != nil {
    			return err
    		}
    		domain, err := cognito.NewUserPoolDomain(ctx, "domain", nil)
    		if err != nil {
    			return err
    		}
    		_, err = lb.NewListener(ctx, "frontEndListener", &lb.ListenerArgs{
    			LoadBalancerArn: frontEndLoadBalancer.Arn,
    			Port:            pulumi.Int(80),
    			Protocol:        pulumi.String("HTTP"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					Type: pulumi.String("authenticate-cognito"),
    					AuthenticateCognito: &lb.ListenerDefaultActionAuthenticateCognitoArgs{
    						UserPoolArn:      pool.Arn,
    						UserPoolClientId: client.ID(),
    						UserPoolDomain:   domain.Domain,
    					},
    				},
    				&lb.ListenerDefaultActionArgs{
    					Type:           pulumi.String("forward"),
    					TargetGroupArn: frontEndTargetGroup.Arn,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.LoadBalancer;
    import com.pulumi.aws.lb.TargetGroup;
    import com.pulumi.aws.cognito.UserPool;
    import com.pulumi.aws.cognito.UserPoolClient;
    import com.pulumi.aws.cognito.UserPoolDomain;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;
    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 frontEndLoadBalancer = new LoadBalancer("frontEndLoadBalancer");
    
            var frontEndTargetGroup = new TargetGroup("frontEndTargetGroup");
    
            var pool = new UserPool("pool");
    
            var client = new UserPoolClient("client");
    
            var domain = new UserPoolDomain("domain");
    
            var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder()        
                .loadBalancerArn(frontEndLoadBalancer.arn())
                .port("80")
                .protocol("HTTP")
                .defaultActions(            
                    ListenerDefaultActionArgs.builder()
                        .type("authenticate-cognito")
                        .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()
                            .userPoolArn(pool.arn())
                            .userPoolClientId(client.id())
                            .userPoolDomain(domain.domain())
                            .build())
                        .build(),
                    ListenerDefaultActionArgs.builder()
                        .type("forward")
                        .targetGroupArn(frontEndTargetGroup.arn())
                        .build())
                .build());
    
        }
    }
    
    resources:
      frontEndLoadBalancer:
        type: aws:lb:LoadBalancer
      frontEndTargetGroup:
        type: aws:lb:TargetGroup
      pool:
        type: aws:cognito:UserPool
      client:
        type: aws:cognito:UserPoolClient
      domain:
        type: aws:cognito:UserPoolDomain
      frontEndListener:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${frontEndLoadBalancer.arn}
          port: '80'
          protocol: HTTP
          defaultActions:
            - type: authenticate-cognito
              authenticateCognito:
                userPoolArn: ${pool.arn}
                userPoolClientId: ${client.id}
                userPoolDomain: ${domain.domain}
            - type: forward
              targetGroupArn: ${frontEndTargetGroup.arn}
    

    Authenticate-OIDC Action

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {}); // … const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {}); // … const frontEndListener = new aws.lb.Listener("frontEndListener", { loadBalancerArn: frontEndLoadBalancer.arn, port: 80, protocol: "HTTP", defaultActions: [ { type: "authenticate-oidc", authenticateOidc: { authorizationEndpoint: "https://example.com/authorization_endpoint", clientId: "client_id", clientSecret: "client_secret", issuer: "https://example.com", tokenEndpoint: "https://example.com/token_endpoint", userInfoEndpoint: "https://example.com/user_info_endpoint", }, }, { type: "forward", targetGroupArn: frontEndTargetGroup.arn, }, ], });

    import pulumi
    import pulumi_aws as aws
    

    front_end_load_balancer = aws.lb.LoadBalancer("frontEndLoadBalancer")

    front_end_target_group = aws.lb.TargetGroup("frontEndTargetGroup")

    front_end_listener = aws.lb.Listener("frontEndListener", load_balancer_arn=front_end_load_balancer.arn, port=80, protocol="HTTP", default_actions=[ aws.lb.ListenerDefaultActionArgs( type="authenticate-oidc", authenticate_oidc=aws.lb.ListenerDefaultActionAuthenticateOidcArgs( authorization_endpoint="https://example.com/authorization_endpoint", client_id="client_id", client_secret="client_secret", issuer="https://example.com", token_endpoint="https://example.com/token_endpoint", user_info_endpoint="https://example.com/user_info_endpoint", ), ), aws.lb.ListenerDefaultActionArgs( type="forward", target_group_arn=front_end_target_group.arn, ), ])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var frontEndLoadBalancer = new Aws.LB.LoadBalancer("frontEndLoadBalancer");
    
        // ...
        var frontEndTargetGroup = new Aws.LB.TargetGroup("frontEndTargetGroup");
    
        // ...
        var frontEndListener = new Aws.LB.Listener("frontEndListener", new()
        {
            LoadBalancerArn = frontEndLoadBalancer.Arn,
            Port = 80,
            Protocol = "HTTP",
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "authenticate-oidc",
                    AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs
                    {
                        AuthorizationEndpoint = "https://example.com/authorization_endpoint",
                        ClientId = "client_id",
                        ClientSecret = "client_secret",
                        Issuer = "https://example.com",
                        TokenEndpoint = "https://example.com/token_endpoint",
                        UserInfoEndpoint = "https://example.com/user_info_endpoint",
                    },
                },
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    Type = "forward",
                    TargetGroupArn = frontEndTargetGroup.Arn,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		frontEndLoadBalancer, err := lb.NewLoadBalancer(ctx, "frontEndLoadBalancer", nil)
    		if err != nil {
    			return err
    		}
    		frontEndTargetGroup, err := lb.NewTargetGroup(ctx, "frontEndTargetGroup", nil)
    		if err != nil {
    			return err
    		}
    		_, err = lb.NewListener(ctx, "frontEndListener", &lb.ListenerArgs{
    			LoadBalancerArn: frontEndLoadBalancer.Arn,
    			Port:            pulumi.Int(80),
    			Protocol:        pulumi.String("HTTP"),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					Type: pulumi.String("authenticate-oidc"),
    					AuthenticateOidc: &lb.ListenerDefaultActionAuthenticateOidcArgs{
    						AuthorizationEndpoint: pulumi.String("https://example.com/authorization_endpoint"),
    						ClientId:              pulumi.String("client_id"),
    						ClientSecret:          pulumi.String("client_secret"),
    						Issuer:                pulumi.String("https://example.com"),
    						TokenEndpoint:         pulumi.String("https://example.com/token_endpoint"),
    						UserInfoEndpoint:      pulumi.String("https://example.com/user_info_endpoint"),
    					},
    				},
    				&lb.ListenerDefaultActionArgs{
    					Type:           pulumi.String("forward"),
    					TargetGroupArn: frontEndTargetGroup.Arn,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.LoadBalancer;
    import com.pulumi.aws.lb.TargetGroup;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;
    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 frontEndLoadBalancer = new LoadBalancer("frontEndLoadBalancer");
    
            var frontEndTargetGroup = new TargetGroup("frontEndTargetGroup");
    
            var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder()        
                .loadBalancerArn(frontEndLoadBalancer.arn())
                .port("80")
                .protocol("HTTP")
                .defaultActions(            
                    ListenerDefaultActionArgs.builder()
                        .type("authenticate-oidc")
                        .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()
                            .authorizationEndpoint("https://example.com/authorization_endpoint")
                            .clientId("client_id")
                            .clientSecret("client_secret")
                            .issuer("https://example.com")
                            .tokenEndpoint("https://example.com/token_endpoint")
                            .userInfoEndpoint("https://example.com/user_info_endpoint")
                            .build())
                        .build(),
                    ListenerDefaultActionArgs.builder()
                        .type("forward")
                        .targetGroupArn(frontEndTargetGroup.arn())
                        .build())
                .build());
    
        }
    }
    
    resources:
      frontEndLoadBalancer:
        type: aws:lb:LoadBalancer
      frontEndTargetGroup:
        type: aws:lb:TargetGroup
      frontEndListener:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${frontEndLoadBalancer.arn}
          port: '80'
          protocol: HTTP
          defaultActions:
            - type: authenticate-oidc
              authenticateOidc:
                authorizationEndpoint: https://example.com/authorization_endpoint
                clientId: client_id
                clientSecret: client_secret
                issuer: https://example.com
                tokenEndpoint: https://example.com/token_endpoint
                userInfoEndpoint: https://example.com/user_info_endpoint
            - type: forward
              targetGroupArn: ${frontEndTargetGroup.arn}
    

    Gateway Load Balancer Listener

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const exampleLoadBalancer = new aws.lb.LoadBalancer("exampleLoadBalancer", { loadBalancerType: "gateway", subnetMappings: [{ subnetId: aws_subnet.example.id, }], }); const exampleTargetGroup = new aws.lb.TargetGroup("exampleTargetGroup", { port: 6081, protocol: "GENEVE", vpcId: aws_vpc.example.id, healthCheck: { port: "80", protocol: "HTTP", }, }); const exampleListener = new aws.lb.Listener("exampleListener", { loadBalancerArn: exampleLoadBalancer.id, defaultActions: [{ targetGroupArn: exampleTargetGroup.id, type: "forward", }], });

    import pulumi
    import pulumi_aws as aws
    

    example_load_balancer = aws.lb.LoadBalancer("exampleLoadBalancer", load_balancer_type="gateway", subnet_mappings=[aws.lb.LoadBalancerSubnetMappingArgs( subnet_id=aws_subnet["example"]["id"], )]) example_target_group = aws.lb.TargetGroup("exampleTargetGroup", port=6081, protocol="GENEVE", vpc_id=aws_vpc["example"]["id"], health_check=aws.lb.TargetGroupHealthCheckArgs( port="80", protocol="HTTP", )) example_listener = aws.lb.Listener("exampleListener", load_balancer_arn=example_load_balancer.id, default_actions=[aws.lb.ListenerDefaultActionArgs( target_group_arn=example_target_group.id, type="forward", )])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleLoadBalancer = new Aws.LB.LoadBalancer("exampleLoadBalancer", new()
        {
            LoadBalancerType = "gateway",
            SubnetMappings = new[]
            {
                new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs
                {
                    SubnetId = aws_subnet.Example.Id,
                },
            },
        });
    
        var exampleTargetGroup = new Aws.LB.TargetGroup("exampleTargetGroup", new()
        {
            Port = 6081,
            Protocol = "GENEVE",
            VpcId = aws_vpc.Example.Id,
            HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs
            {
                Port = "80",
                Protocol = "HTTP",
            },
        });
    
        var exampleListener = new Aws.LB.Listener("exampleListener", new()
        {
            LoadBalancerArn = exampleLoadBalancer.Id,
            DefaultActions = new[]
            {
                new Aws.LB.Inputs.ListenerDefaultActionArgs
                {
                    TargetGroupArn = exampleTargetGroup.Id,
                    Type = "forward",
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleLoadBalancer, err := lb.NewLoadBalancer(ctx, "exampleLoadBalancer", &lb.LoadBalancerArgs{
    			LoadBalancerType: pulumi.String("gateway"),
    			SubnetMappings: lb.LoadBalancerSubnetMappingArray{
    				&lb.LoadBalancerSubnetMappingArgs{
    					SubnetId: pulumi.Any(aws_subnet.Example.Id),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		exampleTargetGroup, err := lb.NewTargetGroup(ctx, "exampleTargetGroup", &lb.TargetGroupArgs{
    			Port:     pulumi.Int(6081),
    			Protocol: pulumi.String("GENEVE"),
    			VpcId:    pulumi.Any(aws_vpc.Example.Id),
    			HealthCheck: &lb.TargetGroupHealthCheckArgs{
    				Port:     pulumi.String("80"),
    				Protocol: pulumi.String("HTTP"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = lb.NewListener(ctx, "exampleListener", &lb.ListenerArgs{
    			LoadBalancerArn: exampleLoadBalancer.ID(),
    			DefaultActions: lb.ListenerDefaultActionArray{
    				&lb.ListenerDefaultActionArgs{
    					TargetGroupArn: exampleTargetGroup.ID(),
    					Type:           pulumi.String("forward"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.lb.LoadBalancer;
    import com.pulumi.aws.lb.LoadBalancerArgs;
    import com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;
    import com.pulumi.aws.lb.TargetGroup;
    import com.pulumi.aws.lb.TargetGroupArgs;
    import com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;
    import com.pulumi.aws.lb.Listener;
    import com.pulumi.aws.lb.ListenerArgs;
    import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
    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 exampleLoadBalancer = new LoadBalancer("exampleLoadBalancer", LoadBalancerArgs.builder()        
                .loadBalancerType("gateway")
                .subnetMappings(LoadBalancerSubnetMappingArgs.builder()
                    .subnetId(aws_subnet.example().id())
                    .build())
                .build());
    
            var exampleTargetGroup = new TargetGroup("exampleTargetGroup", TargetGroupArgs.builder()        
                .port(6081)
                .protocol("GENEVE")
                .vpcId(aws_vpc.example().id())
                .healthCheck(TargetGroupHealthCheckArgs.builder()
                    .port(80)
                    .protocol("HTTP")
                    .build())
                .build());
    
            var exampleListener = new Listener("exampleListener", ListenerArgs.builder()        
                .loadBalancerArn(exampleLoadBalancer.id())
                .defaultActions(ListenerDefaultActionArgs.builder()
                    .targetGroupArn(exampleTargetGroup.id())
                    .type("forward")
                    .build())
                .build());
    
        }
    }
    
    resources:
      exampleLoadBalancer:
        type: aws:lb:LoadBalancer
        properties:
          loadBalancerType: gateway
          subnetMappings:
            - subnetId: ${aws_subnet.example.id}
      exampleTargetGroup:
        type: aws:lb:TargetGroup
        properties:
          port: 6081
          protocol: GENEVE
          vpcId: ${aws_vpc.example.id}
          healthCheck:
            port: 80
            protocol: HTTP
      exampleListener:
        type: aws:lb:Listener
        properties:
          loadBalancerArn: ${exampleLoadBalancer.id}
          defaultActions:
            - targetGroupArn: ${exampleTargetGroup.id}
              type: forward
    

    Import

    Listeners can be imported using their ARN, e.g.,

     $ pulumi import aws:lb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96
    
    AlpnPolicy string
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    CertificateArn string
    ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws.lb.ListenerCertificate resource.
    DefaultActions List<Pulumi.Aws.LB.Inputs.ListenerDefaultAction>
    Configuration block for default actions. Detailed below.
    Port int
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    Protocol string
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    SslPolicy string
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    Tags Dictionary<string, string>
    A 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.
    AlpnPolicy string
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    CertificateArn string
    ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws.lb.ListenerCertificate resource.
    DefaultActions ListenerDefaultAction
    Configuration block for default actions. Detailed below.
    Port int
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    Protocol string
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    SslPolicy string
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    Tags map[string]string
    A 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.
    alpnPolicy String
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificateArn String
    ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws.lb.ListenerCertificate resource.
    defaultActions List<ListenerDefaultAction>
    Configuration block for default actions. Detailed below.
    port Integer
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol String
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    sslPolicy String
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags Map<String,String>
    A 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.
    alpnPolicy string
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificateArn string
    ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws.lb.ListenerCertificate resource.
    defaultActions pulumiAws.types.input.ListenerDefaultAction[]
    Configuration block for default actions. Detailed below.
    port number
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol string
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    sslPolicy string
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags {[key: string]: string}
    A 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.
    alpn_policy str
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificate_arn str
    ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws.lb.ListenerCertificate resource.
    default_actions Sequence[pulumi_aws.lb.ListenerDefaultActionArgs]
    Configuration block for default actions. Detailed below.
    port int
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol str
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    ssl_policy str
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags Mapping[str, str]
    A 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.
    alpnPolicy String
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificateArn String
    ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws.lb.ListenerCertificate resource.
    defaultActions List<Property Map>
    Configuration block for default actions. Detailed below.
    port Number
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol String
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    sslPolicy String
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags Map<String>
    A 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.

    TargetGroup, TargetGroupArgs

    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

    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", { port: 80, protocol: "HTTP", vpcId: main.id, });

    import pulumi
    import pulumi_aws as aws
    

    main = aws.ec2.Vpc("main", cidr_block="10.0.0.0/16") test = aws.lb.TargetGroup("test", port=80, protocol="HTTP", vpc_id=main.id)

    using System.Collections.Generic;
    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()
        {
            Port = 80,
            Protocol = "HTTP",
            VpcId = main.Id,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
    	"github.com/pulumi/pulumi-aws/sdk/v5/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{
    			Port:     pulumi.Int(80),
    			Protocol: pulumi.String("HTTP"),
    			VpcId:    main.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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()        
                .port(80)
                .protocol("HTTP")
                .vpcId(main.id())
                .build());
    
        }
    }
    
    resources:
      test:
        type: aws:lb:TargetGroup
        properties:
          port: 80
          protocol: HTTP
          vpcId: ${main.id}
      main:
        type: aws:ec2:Vpc
        properties:
          cidrBlock: 10.0.0.0/16
    

    IP Target Group

    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", { port: 80, protocol: "HTTP", targetType: "ip", vpcId: main.id, });

    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", port=80, protocol="HTTP", target_type="ip", vpc_id=main.id)

    using System.Collections.Generic;
    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()
        {
            Port = 80,
            Protocol = "HTTP",
            TargetType = "ip",
            VpcId = main.Id,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
    	"github.com/pulumi/pulumi-aws/sdk/v5/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{
    			Port:       pulumi.Int(80),
    			Protocol:   pulumi.String("HTTP"),
    			TargetType: pulumi.String("ip"),
    			VpcId:      main.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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()        
                .port(80)
                .protocol("HTTP")
                .targetType("ip")
                .vpcId(main.id())
                .build());
    
        }
    }
    
    resources:
      ip-example:
        type: aws:lb:TargetGroup
        properties:
          port: 80
          protocol: HTTP
          targetType: ip
          vpcId: ${main.id}
      main:
        type: aws:ec2:Vpc
        properties:
          cidrBlock: 10.0.0.0/16
    

    Lambda Target Group

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const lambda_example = new aws.lb.TargetGroup("lambda-example", {targetType: "lambda"});

    import pulumi
    import pulumi_aws as aws
    

    lambda_example = aws.lb.TargetGroup("lambda-example", target_type="lambda")

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var lambda_example = new Aws.LB.TargetGroup("lambda-example", new()
        {
            TargetType = "lambda",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/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{
    			TargetType: pulumi.String("lambda"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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()        
                .targetType("lambda")
                .build());
    
        }
    }
    
    resources:
      lambda-example:
        type: aws:lb:TargetGroup
        properties:
          targetType: lambda
    

    ALB Target Group

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const alb_example = new aws.lb.TargetGroup("alb-example", { targetType: "alb", port: 80, protocol: "TCP", vpcId: aws_vpc.main.id, });

    import pulumi
    import pulumi_aws as aws
    

    alb_example = aws.lb.TargetGroup("alb-example", target_type="alb", port=80, protocol="TCP", vpc_id=aws_vpc["main"]["id"])

    using System.Collections.Generic;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var alb_example = new Aws.LB.TargetGroup("alb-example", new()
        {
            TargetType = "alb",
            Port = 80,
            Protocol = "TCP",
            VpcId = aws_vpc.Main.Id,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/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{
    			TargetType: pulumi.String("alb"),
    			Port:       pulumi.Int(80),
    			Protocol:   pulumi.String("TCP"),
    			VpcId:      pulumi.Any(aws_vpc.Main.Id),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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()        
                .targetType("alb")
                .port(80)
                .protocol("TCP")
                .vpcId(aws_vpc.main().id())
                .build());
    
        }
    }
    
    resources:
      alb-example:
        type: aws:lb:TargetGroup
        properties:
          targetType: alb
          port: 80
          protocol: TCP
          vpcId: ${aws_vpc.main.id}
    

    Import

    Target Groups can be imported using their ARN, e.g.,

     $ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314
    
    ConnectionTermination bool
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    DeregistrationDelay int
    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.
    HealthCheck Pulumi.Aws.LB.Inputs.TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    IpAddressType string
    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.
    LambdaMultiValueHeadersEnabled bool
    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.
    LoadBalancingAlgorithmType string
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    LoadBalancingCrossZoneEnabled string
    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".
    Name string
    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.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    Port int
    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.
    PreserveClientIp string
    Whether client IP preservation is enabled. See doc for more information.
    Protocol string
    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.
    ProtocolVersion string
    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
    ProxyProtocolV2 bool
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    SlowStart int
    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.
    Stickiness Pulumi.Aws.LB.Inputs.TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    Tags Dictionary<string, string>
    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.
    TargetFailovers List<Pulumi.Aws.LB.Inputs.TargetGroupTargetFailover>
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    TargetType string
    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.
    VpcId string
    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.
    ConnectionTermination bool
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    DeregistrationDelay int
    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.
    HealthCheck TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    IpAddressType string
    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.
    LambdaMultiValueHeadersEnabled bool
    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.
    LoadBalancingAlgorithmType string
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    LoadBalancingCrossZoneEnabled string
    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".
    Name string
    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.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    Port int
    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.
    PreserveClientIp string
    Whether client IP preservation is enabled. See doc for more information.
    Protocol string
    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.
    ProtocolVersion string
    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
    ProxyProtocolV2 bool
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    SlowStart int
    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.
    Stickiness TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    Tags map[string]string
    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.
    TargetFailovers TargetGroupTargetFailover
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    TargetType string
    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.
    VpcId string
    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.
    connectionTermination Boolean
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistrationDelay Integer
    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.
    healthCheck TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ipAddressType String
    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.
    lambdaMultiValueHeadersEnabled Boolean
    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.
    loadBalancingAlgorithmType String
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    loadBalancingCrossZoneEnabled String
    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".
    name String
    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.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port Integer
    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.
    preserveClientIp String
    Whether client IP preservation is enabled. See doc for more information.
    protocol String
    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.
    protocolVersion String
    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
    proxyProtocolV2 Boolean
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slowStart Integer
    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.
    stickiness TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags Map<String,String>
    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.
    targetFailovers List<TargetGroupTargetFailover>
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    targetType String
    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.
    vpcId String
    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.
    connectionTermination boolean
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistrationDelay number
    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.
    healthCheck pulumiAws.types.input.TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ipAddressType string
    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.
    lambdaMultiValueHeadersEnabled boolean
    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.
    loadBalancingAlgorithmType string
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    loadBalancingCrossZoneEnabled string
    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".
    name string
    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.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port number
    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.
    preserveClientIp string
    Whether client IP preservation is enabled. See doc for more information.
    protocol string
    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.
    protocolVersion string
    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
    proxyProtocolV2 boolean
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slowStart number
    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.
    stickiness pulumiAws.types.input.TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags {[key: string]: string}
    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.
    targetFailovers pulumiAws.types.input.TargetGroupTargetFailover[]
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    targetType string
    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.
    vpcId string
    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.
    connection_termination bool
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistration_delay int
    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.
    health_check pulumi_aws.lb.TargetGroupHealthCheckArgs

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ip_address_type str
    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.
    lambda_multi_value_headers_enabled bool
    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.
    load_balancing_algorithm_type str
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    load_balancing_cross_zone_enabled str
    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".
    name str
    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.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port int
    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.
    preserve_client_ip str
    Whether client IP preservation is enabled. See doc for more information.
    protocol str
    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.
    protocol_version str
    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
    proxy_protocol_v2 bool
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slow_start int
    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.
    stickiness pulumi_aws.lb.TargetGroupStickinessArgs

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags Mapping[str, str]
    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.
    target_failovers Sequence[pulumi_aws.lb.TargetGroupTargetFailoverArgs]
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    target_type str
    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.
    vpc_id str
    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.
    connectionTermination Boolean
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistrationDelay Number
    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.
    healthCheck Property Map

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ipAddressType String
    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.
    lambdaMultiValueHeadersEnabled Boolean
    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.
    loadBalancingAlgorithmType String
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    loadBalancingCrossZoneEnabled String
    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".
    name String
    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.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port Number
    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.
    preserveClientIp String
    Whether client IP preservation is enabled. See doc for more information.
    protocol String
    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.
    protocolVersion String
    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
    proxyProtocolV2 Boolean
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slowStart Number
    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.
    stickiness Property Map

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags Map<String>
    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.
    targetFailovers List<Property Map>
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    targetType String
    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.
    vpcId String
    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.

    Package Details

    Repository
    AWSx (Pulumi Crosswalk for AWS) pulumi/pulumi-awsx
    License
    Apache-2.0
    awsx logo
    Viewing docs for AWSx (Pulumi Crosswalk for AWS) v1.0.6 (Older version)
    published on Monday, Mar 9, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.