NetworkListener object: NetworkListener networkListener = productsServiceProps.networkLoadBalancer()
.addListener("ProductsServiceNlbListener", BaseNetworkListenerProps.builder()
.build());

networkListener to listen on port 8081:.port(8081)

.protocol(software.amazon.awscdk.services.elasticloadbalancingv2.Protocol.TCP)
software.amazon.awscdk.services.elasticloadbalancingv2.Protocol.TCP: This is the way to specify the TCP protocol using CDK. Protocol.TCP is a constant in CDK representing the TCP protocol.

addTargets method called on the networkListener object to add new targets to the listener previously configured on the Network Load Balancer (NLB). networkListener.addTargets("ProductsServiceNlbTarget",
AddNetworkTargetsProps.builder()
.build()
);

.port(8081)

.protocol(software.amazon.awscdk.services.elasticloadbalancingv2.Protocol.TCP)

.targetGroupName("productsServiceNlb")

targets method..targets(Collections.singletonList(/* List of targets */))

.targets(Collections.singletonList(
fargateService.loadBalancerTarget(LoadBalancerTargetOptions.builder()
.build())
))

.targets(Collections.singletonList(
fargateService.loadBalancerTarget(LoadBalancerTargetOptions.builder()
.containerName("productsService")
.build())
))

.targets(Collections.singletonList(
fargateService.loadBalancerTarget(LoadBalancerTargetOptions.builder()
.containerName("productsService")
.containerPort(8081)
.protocol(Protocol.TCP)
.build())
))
