package awselasticloadbalancingv2 // Basic properties for an ApplicationListener. // // Example: // var cluster cluster // var taskDefinition taskDefinition // var vpc vpc // // service := ecs.NewFargateService(this, jsii.String("Service"), &FargateServiceProps{ // Cluster: Cluster, // TaskDefinition: TaskDefinition, // }) // // lb := elbv2.NewApplicationLoadBalancer(this, jsii.String("LB"), &ApplicationLoadBalancerProps{ // Vpc: Vpc, // InternetFacing: jsii.Boolean(true), // }) // listener := lb.AddListener(jsii.String("Listener"), &BaseApplicationListenerProps{ // Port: jsii.Number(80), // }) // service.RegisterLoadBalancerTargets(&EcsTarget{ // ContainerName: jsii.String("web"), // ContainerPort: jsii.Number(80), // NewTargetGroupId: jsii.String("ECS"), // Listener: ecs.ListenerConfig_ApplicationListener(listener, &AddApplicationTargetsProps{ // Protocol: elbv2.ApplicationProtocol_HTTPS, // }), // }) // type BaseApplicationListenerProps struct { // Certificate list of ACM cert ARNs. // // You must provide exactly one certificate if the listener protocol is HTTPS or TLS. Certificates *[]IListenerCertificate `field:"optional" json:"certificates" yaml:"certificates"` // Default action to take for requests to this listener. // // This allows full control of the default action of the load balancer, // including Action chaining, fixed responses and redirect responses. // // See the `ListenerAction` class for all options. // // Cannot be specified together with `defaultTargetGroups`. DefaultAction ListenerAction `field:"optional" json:"defaultAction" yaml:"defaultAction"` // Default target groups to load balance to. // // All target groups will be load balanced to with equal weight and without // stickiness. For a more complex configuration than that, use // either `defaultAction` or `addAction()`. // // Cannot be specified together with `defaultAction`. DefaultTargetGroups *[]IApplicationTargetGroup `field:"optional" json:"defaultTargetGroups" yaml:"defaultTargetGroups"` // Allow anyone to connect to the load balancer on the listener port. // // If this is specified, the load balancer will be opened up to anyone who can reach it. // For internal load balancers this is anyone in the same VPC. For public load // balancers, this is anyone on the internet. // // If you want to be more selective about who can access this load // balancer, set this to `false` and use the listener's `connections` // object to selectively grant access to the load balancer on the listener port. Open *bool `field:"optional" json:"open" yaml:"open"` // The port on which the listener listens for requests. Port *float64 `field:"optional" json:"port" yaml:"port"` // The protocol to use. Protocol ApplicationProtocol `field:"optional" json:"protocol" yaml:"protocol"` // The security policy that defines which ciphers and protocols are supported. SslPolicy SslPolicy `field:"optional" json:"sslPolicy" yaml:"sslPolicy"` }