# LoadBalancer

An interface of an abstract load balancer, as needed by CodeDeploy.

Create instances using the static factory methods:
`#classic`, `#application` and `#network`.

- Source: [`aws-codedeploy/lib/server/load-balancer.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-codedeploy/lib/server/load-balancer.ts#L24)
- Type last changed: v2.4.0 · 6 Jan 2022

## Example

```ts
declare const alb: elbv2.ApplicationLoadBalancer;
const listener = alb.addListener('Listener', { port: 80 });
const targetGroup = listener.addTargets('Fleet', { port: 80 });

const deploymentGroup = new codedeploy.ServerDeploymentGroup(this, 'DeploymentGroup', {
  loadBalancer: codedeploy.LoadBalancer.application(targetGroup),
});
```

## Initializer

```ts
new LoadBalancer()
```

## Properties

- `generation`: [LoadBalancerGeneration](/cdk/api/v2/docs/aws-cdk-lib.aws_codedeploy.LoadBalancerGeneration.html)

- `name`: string

## Methods

- `application(albTargetGroup: IApplicationTargetGroup): LoadBalancer // chainable` (static) — Creates a new CodeDeploy load balancer from an Application Load Balancer Target Group.

  **Parameters**

  - `albTargetGroup` — an ALB Target Group.

- `classic(loadBalancer: LoadBalancer): LoadBalancer // chainable` (static) — Creates a new CodeDeploy load balancer from a Classic ELB Load Balancer.

  **Parameters**

  - `loadBalancer` — a classic ELB Load Balancer.

- `network(nlbTargetGroup: INetworkTargetGroup): LoadBalancer // chainable` (static) — Creates a new CodeDeploy load balancer from a Network Load Balancer Target Group.

  **Parameters**

  - `nlbTargetGroup` — an NLB Target Group.
