From f511c17aac8ca4d3fa94ace051d9946dc23f40a3 Mon Sep 17 00:00:00 2001 From: Romain Marcadier Date: Tue, 18 Jan 2022 10:33:27 +0100 Subject: [PATCH] fix(elbv2): BaseLoadBalancer.vpc is not optional (#18474) The `BaseLoadBalancer.vpc` property fulfills the `IApplicationLoadBalancer.vpc` and `INetworkLoadBalancer.vpc` properties, both of which are optional. A bug in `jsii` (see aws/jsii#3342) makes this pass type system consistency checks, when it should not be allowed. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- allowed-breaking-changes.txt | 7 ++++++- .../lib/shared/base-load-balancer.ts | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/allowed-breaking-changes.txt b/allowed-breaking-changes.txt index 56b1145d61b39..599cc80596857 100644 --- a/allowed-breaking-changes.txt +++ b/allowed-breaking-changes.txt @@ -115,4 +115,9 @@ removed:@aws-cdk/aws-lambda-event-sources.SelfManagedKafkaEventSourceProps.retry removed:@aws-cdk/aws-lambda-event-sources.SelfManagedKafkaEventSourceProps.tumblingWindow base-types:@aws-cdk/aws-lambda-event-sources.KafkaEventSourceProps base-types:@aws-cdk/aws-lambda-event-sources.ManagedKafkaEventSourceProps -base-types:@aws-cdk/aws-lambda-event-sources.SelfManagedKafkaEventSourceProps \ No newline at end of file +base-types:@aws-cdk/aws-lambda-event-sources.SelfManagedKafkaEventSourceProps + +# fixed vpc property of BaseLoadBalancer so it correctly implements I(Application|Network)LoadBalancer (i.e: must be optional) +changed-type:@aws-cdk/aws-elasticloadbalancingv2.ApplicationLoadBalancer.vpc +changed-type:@aws-cdk/aws-elasticloadbalancingv2.BaseLoadBalancer.vpc +changed-type:@aws-cdk/aws-elasticloadbalancingv2.NetworkLoadBalancer.vpc diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.ts b/packages/@aws-cdk/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.ts index 85ae9d143f0e2..345583bf9e5f8 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.ts +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.ts @@ -192,8 +192,11 @@ export abstract class BaseLoadBalancer extends Resource { /** * The VPC this load balancer has been created in. + * + * This property is always defined (not `null` or `undefined`) for sub-classes of `BaseLoadBalancer`. */ - public readonly vpc: ec2.IVpc; + public readonly vpc?: ec2.IVpc; + /** * Attributes set on this load balancer */