package awselasticloadbalancingv2 // Basic properties for a Network Listener. // // Example: // import "github.com/aws/aws-cdk-go/awscdkapigatewayv2integrationsalpha" // // // vpc := ec2.NewVpc(this, jsii.String("VPC")) // lb := elbv2.NewNetworkLoadBalancer(this, jsii.String("lb"), &NetworkLoadBalancerProps{ // Vpc: Vpc, // }) // listener := lb.AddListener(jsii.String("listener"), &BaseNetworkListenerProps{ // Port: jsii.Number(80), // }) // listener.AddTargets(jsii.String("target"), &AddNetworkTargetsProps{ // Port: jsii.Number(80), // }) // // httpEndpoint := apigwv2.NewHttpApi(this, jsii.String("HttpProxyPrivateApi"), &HttpApiProps{ // DefaultIntegration: awscdkapigatewayv2integrationsalpha.NewHttpNlbIntegration(jsii.String("DefaultIntegration"), listener), // }) // type BaseNetworkListenerProps struct { // The port on which the listener listens for requests. Port *float64 `field:"required" json:"port" yaml:"port"` // Application-Layer Protocol Negotiation (ALPN) is a TLS extension that is sent on the initial TLS handshake hello messages. // // ALPN enables the application layer to negotiate which protocols should be used over a secure connection, such as HTTP/1 and HTTP/2. // // Can only be specified together with Protocol TLS. AlpnPolicy AlpnPolicy `field:"optional" json:"alpnPolicy" yaml:"alpnPolicy"` // 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 weighted forwarding. See the `NetworkListenerAction` class for // all options. // // Cannot be specified together with `defaultTargetGroups`. DefaultAction NetworkListenerAction `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 *[]INetworkTargetGroup `field:"optional" json:"defaultTargetGroups" yaml:"defaultTargetGroups"` // Protocol for listener, expects TCP, TLS, UDP, or TCP_UDP. Protocol Protocol `field:"optional" json:"protocol" yaml:"protocol"` // SSL Policy. SslPolicy SslPolicy `field:"optional" json:"sslPolicy" yaml:"sslPolicy"` }