# Port

Interface for classes that provide the connection-specification parts of a security group rule.

- Source: [`aws-ec2/lib/port.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/port.ts#L190)
- Type last changed: v2.138.0 · 18 Apr 2024

## Example

```ts
declare const loadBalancer: elbv2.ApplicationLoadBalancer;

const vpc = new ec2.Vpc(this, 'MyVPC');
const fleet = new codebuild.Fleet(this, 'MyProject', {
  computeType: codebuild.FleetComputeType.MEDIUM,
  environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
  baseCapacity: 1,
  vpc,
});

fleet.connections.allowTo(loadBalancer, ec2.Port.tcp(443));

const project = new codebuild.Project(this, 'MyProject', {
  environment: {
    fleet,
  },
  buildSpec: codebuild.BuildSpec.fromObject({
    // ...
  }),
  // Trying to configure a project-level VPC is an error, because this project
  // runs on the Fleet created above.
  // vpc,
});
```

## Initializer

```ts
new Port(props: PortProps)
```

## Properties

- `canInlineRule`: boolean (required) — Whether the rule containing this port range can be inlined into a securitygroup or not.

- `DNS_TCP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known DNS port (TCP 53).

- `DNS_UDP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known DNS port (UDP 53).

- `HTTP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known HTTP port (TCP 80).

- `HTTPS`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known HTTPS port (TCP 443).

- `IMAP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known IMAP port (TCP 143).

- `IMAPS`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known IMAPS port (TCP 993).

- `LDAP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known LDAP port (TCP 389).

- `MSSQL`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known Microsoft SQL Server port (TCP 1433).

- `MYSQL_AURORA`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known MySQL and Aurora port (TCP 3306).

- `NFS`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known NFS port (TCP 2049).

- `POP3`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known POP3 port (TCP 110).

- `POP3S`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known POP3S port (TCP 995).

- `POSTGRES`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known PostgreSQL port (TCP 5432).

- `RDP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known Microsoft Remote Desktop Protocol port (TCP 3389).

- `SMB`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known SMB port (TCP 445).

- `SMTP`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known SMTP port (TCP 25).

- `SSH`: [Port](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Port.html) (required) (static) — Well-known SSH port (TCP 22).

## Methods

- `ah(): Port // chainable` (static) — A single AH port.

- `allIcmp(): Port // chainable` (static) — All ICMP traffic.

- `allIcmpV6(): Port // chainable` (static) — All ICMPv6 traffic.

- `allTcp(): Port // chainable` (static) — Any TCP traffic.

- `allTraffic(): Port // chainable` (static) — All traffic.

- `allUdp(): Port // chainable` (static) — Any UDP traffic.

- `esp(): Port // chainable` (static) — A single ESP port.

- `icmpPing(): Port // chainable` (static) — ICMP ping (echo) traffic.

- `icmpType(type: number): Port // chainable` (static) — All codes for a single ICMP type.

- `icmpTypeAndCode(type: number, code: number): Port // chainable` (static) — A specific combination of ICMP type and code.

- `tcp(port: number): Port // chainable` (static) — A single TCP port.

- `tcpRange(startPort: number, endPort: number): Port // chainable` (static) — A TCP port range.

- `toRuleJson(): any` — Produce the ingress/egress rule JSON for the given connection.

- `toString(): string`

- `udp(port: number): Port // chainable` (static) — A single UDP port.

- `udpRange(startPort: number, endPort: number): Port // chainable` (static) — A UDP port range.
