Skip to content

AWS::EC2::SecurityGroup

Resource Type definition for AWS::EC2::SecurityGroup

Generated by cfn-typegen --out cfn_types AWS::EC2::SecurityGroup into cfn_types/ec2.py:

# Generated by cfn-typegen from the CloudFormation registry schemas. Do not edit.
# fmt: off
# ruff: noqa
"""AWS::EC2 resources."""

from collections.abc import Sequence
from typing import Any, Literal, NotRequired, Unpack
from typing_extensions import TypedDict
from cfn_typed.base import DeletionPolicy, DependsOn, ResourceAttrs, Tag, UpdateReplacePolicy, build
from cfn_typed.intrinsics import Expr


CONSTRAINTS:dict[str,Any]={
}


ATTRIBUTES:dict[str,Any]={"AWS::EC2::SecurityGroup":["GroupId","Id"]}


RULES:dict[str,Any]={}
Nested types (5)

These are defined above the properties in the generated module.

class SecurityGroupIngress(TypedDict, closed=True):
    CidrIp: NotRequired[Expr[str]]
    CidrIpv6: NotRequired[Expr[str]]
    Description: NotRequired[Expr[str]]
    FromPort: NotRequired[Expr[int]]
    SourceSecurityGroupName: NotRequired[Expr[str]]
    ToPort: NotRequired[Expr[int]]
    SourceSecurityGroupOwnerId: NotRequired[Expr[str]]
    IpProtocol: Expr[str]
    SourceSecurityGroupId: NotRequired[Expr[str]]
    SourcePrefixListId: NotRequired[Expr[str]]


class SecurityGroupEgress(TypedDict, closed=True):
    CidrIp: NotRequired[Expr[str]]
    CidrIpv6: NotRequired[Expr[str]]
    Description: NotRequired[Expr[str]]
    FromPort: NotRequired[Expr[int]]
    ToPort: NotRequired[Expr[int]]
    IpProtocol: Expr[str]
    DestinationSecurityGroupId: NotRequired[Expr[str]]
    DestinationPrefixListId: NotRequired[Expr[str]]


class SecurityGroupProps(TypedDict, closed=True):
    'Resource Type definition for AWS::EC2::SecurityGroup'
    GroupDescription: Expr[str]
    'A description for the security group.'
    GroupName: NotRequired[Expr[str]]
    'The name of the security group.'
    VpcId: NotRequired[Expr[str]]
    'The ID of the VPC for the security group.'
    SecurityGroupIngress: NotRequired[Expr[Sequence[Expr[SecurityGroupIngress]]]]
    'The inbound rules associated with the security group.'
    SecurityGroupEgress: NotRequired[Expr[Sequence[Expr[SecurityGroupEgress]]]]
    '[VPC only] The outbound rules associated with the security group.'
    Tags: NotRequired[Expr[Sequence[Expr[Tag]]]]
    'Any tags assigned to the security group.'


class SecurityGroup(ResourceAttrs):
    'Resource Type definition for AWS::EC2::SecurityGroup'
    Type: Literal['AWS::EC2::SecurityGroup']
    Properties: SecurityGroupProps


def security_group(
    *,
    depends_on: DependsOn | None = None,
    deletion_policy: DeletionPolicy | None = None,
    update_replace_policy: UpdateReplacePolicy | None = None,
    condition: str | None = None,
    metadata: dict[str, Any] | None = None,
    **props: Unpack[SecurityGroupProps],
) -> SecurityGroup:
    return build('AWS::EC2::SecurityGroup', props, depends_on, deletion_policy, update_replace_policy, condition, metadata)

Attributes

Read-only values for get_att(logical_id, attribute). They are not accepted as inputs.

  • GroupId
  • Id