# ConnectionRule

- Source: [`aws-ec2/lib/security-group.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/security-group.ts#L778)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
const connectionRule: ec2.ConnectionRule = {
  fromPort: 123,

  // the properties below are optional
  description: 'description',
  protocol: 'protocol',
  toPort: 123,
};
```

## Properties

- `description`: string — Description of this connection.

  **Default:** No description

  It is applied to both the ingress rule
  and the egress rule.

- `fromPort`: number (required) — Start of port range for the TCP and UDP protocols, or an ICMP type number.

  If you specify icmp for the IpProtocol property, you can specify
  -1 as a wildcard (i.e., any ICMP type number).

- `protocol`: string = tcp — The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers).

  Use -1 to specify all protocols. If you specify -1, or a protocol number
  other than tcp, udp, icmp, or 58 (ICMPv6), traffic on all ports is
  allowed, regardless of any ports you specify. For tcp, udp, and icmp, you
  must specify a port range. For protocol 58 (ICMPv6), you can optionally
  specify a port range; if you don't, traffic for all types and codes is
  allowed.

- `toPort`: number — End of port range for the TCP and UDP protocols, or an ICMP code.

  **Default:** If toPort is not specified, it will be the same as fromPort.

  If you specify icmp for the IpProtocol property, you can specify -1 as a
  wildcard (i.e., any ICMP code).
