Overcast is alpha — behaviour and APIs may change between releases. Pin your version and read the changelog before upgrading.

overcast

EC2 / VPC operations

Every EC2 / VPC operation Overcast declares — 79 of 79 implemented — with status, behaviour notes and a link to the AWS API reference for each.

All 79 listed operations are implemented. Back to EC2 / VPC.

Summary

Category✅ Supported
General76
VPC network states3

Endpoints

General

OperationStatusNotesAWS Docs
AcceptVpcPeeringConnection✅ SupportedTransitions from pending-acceptance to activedocs
AllocateAddress✅ SupportedGenerates eipalloc- ID and synthetic public IP; Domain honoured; supports TagSpecificationdocs
AssociateAddress✅ SupportedAssociates EIP with instance; generates eipassoc- IDdocs
AssociateRouteTable✅ SupportedAssociates route table with subnetdocs
AttachInternetGateway✅ SupportedTakes the VPC Docker network out of --internal, moving any containers already on it to the recreated network with their addresses and DNS aliases; fails with InternalError, attaching nothing, if Docker refuses. A network shared by several VPCs is external while any of them has a gatewaydocs
AttachVpnGateway✅ SupportedMetadata-only VPC attachmentdocs
AuthorizeSecurityGroupEgress✅ Supporteddocs
AuthorizeSecurityGroupIngress✅ SupportedIpPermissions with protocol, ports, CIDR rangesdocs
CreateInternetGateway✅ SupportedGenerates igw-xxx IDdocs
CreateKeyPair✅ SupportedGenerates dummy fingerprint and key materialdocs
CreateNatGateway✅ SupportedRequires subnet and EIP; supports TagSpecificationdocs
CreateNetworkInterface✅ SupportedRequires subnet; assigns synthetic private IPdocs
CreateRoute✅ SupportedDestinationCidrBlock + GatewayId or NatGatewayIddocs
CreateRouteTable✅ SupportedVPC must exist; auto-creates local routedocs
CreateSecurityGroup✅ SupportedDefault egress allow-all rule added on createdocs
CreateSubnet✅ SupportedVPC must exist; honors AvailabilityZone; defaults to region+“a”docs
CreateTags✅ SupportedTag any resource by ID; visible to that resource’s own describedocs
CreateVpc✅ SupportedCidrBlock required; creates Docker bridge network (--internal unless IGW attached) and main route tabledocs
CreateLaunchTemplate✅ SupportedMints an lt- ID and version 1; LaunchTemplateData, VersionDescription and TagSpecification supporteddocs
CreateLaunchTemplateVersion✅ SupportedNumbers from the latest version; SourceVersion inherits the parameters the request does not setdocs
CreateVpcEndpoint✅ SupportedMetadata-only; Gateway and Interface types accepted; state always “available”docs
CreateVpnGateway✅ SupportedMetadata-only; type ipsec.1 with AmazonSideAsndocs
CreateVpcPeeringConnection✅ SupportedBoth VPCs must exist; starts in pending-acceptance statedocs
DeleteInternetGateway✅ SupportedMust be detached firstdocs
DeleteKeyPair✅ SupportedIdempotent (no error if not found)docs
DeleteNatGateway✅ SupportedMarks as deleteddocs
DeleteNetworkInterface✅ Supporteddocs
DeleteRoute✅ SupportedRemoves route by RouteTableId + DestinationCidrBlockdocs
DeleteRouteTable✅ SupportedCannot delete main route tabledocs
DeleteSecurityGroup✅ SupportedFails with DependencyViolation while attached to a running/pending instance; the VPC’s default group answers CannotDeletedocs
DeleteSubnet✅ SupportedFails with DependencyViolation while ENIs, non-terminated instances, or NAT gateways remain in the subnetdocs
DeleteTags✅ SupportedRemove tags by key; a resource’s tags are removed with the resourcedocs
DeleteVpc✅ SupportedRemoves Docker network; fails with DependencyViolation while subnets, gateways, endpoints, peering connections, ENIs, or instances remaindocs
DeleteLaunchTemplate✅ SupportedDeletes the template and every version it ownsdocs
DeleteLaunchTemplateVersions✅ SupportedPer-version outcomes; the default version is refused with OperationNotPermitteddocs
DeleteVpcEndpoints✅ SupportedAccepts VpcEndpointId.N; silently skips unknown IDsdocs
DeleteVpnGateway✅ SupportedRequires gateway to be detacheddocs
DeleteVpcPeeringConnection✅ SupportedFrom active or pending-acceptance; transitions to deleteddocs
DescribeAccountAttributes✅ SupportedHardcoded defaults (supported-platforms, max-instances…)docs
DescribeAddresses✅ SupportedSelects by AllocationId.N, raising InvalidAllocationID.NotFound for an allocation the region does not hold (AWS documents no Malformed code for one, so a wrongly shaped ID is NotFound too), and by PublicIp.N, raising InvalidAddress.NotFound for an address the region does not hold and InvalidAddress.Malformed for one that is not an IPv4 address; returns tags; Filters: allocation-id, association-id, domain, instance-id, network-interface-id, private-ip-address, public-ipdocs
DescribeAvailabilityZones✅ Supported3 AZs per region (a, b, c); Filters: region-name, state, zone-namedocs
DescribeDhcpOptions✅ SupportedReturns a fabricated default DHCP options set; Filters: nonedocs
DescribeImages✅ SupportedHardcoded set of 4 AMIs (AL2, Ubuntu, Windows, AL2023); selects by ImageId.N; Filters: architecture, description, image-id, image-type, is-public, name, owner-id, root-device-type, state, virtualization-typedocs
DescribeInstanceTypes✅ SupportedHardcoded set: t3.micro/small/medium, m5.large/xlarge; Filters: current-generation, instance-type, memory-info.size-in-mib, vcpu-info.default-vcpusdocs
DescribeInstances✅ SupportedSelects by InstanceId.N, raising InvalidInstanceID.NotFound for an ID the region does not hold and InvalidInstanceID.Malformed for one that is not an ID; Filters: availability-zone, image-id, instance-id, instance-state-code, instance-state-name, instance-type, placement.availability-zone, subnet-id, vpc-id, tag:, tag-key, tag-valuedocs
DescribeInternetGateways✅ SupportedSelects by InternetGatewayId.N, raising InvalidInternetGatewayID.NotFound for an ID the region does not hold and InvalidInternetGatewayId.Malformed for one that is not an ID; Filters: attachment.state, attachment.vpc-id, internet-gateway-id, tag:, tag-key, tag-valuedocs
DescribeKeyPairs✅ SupportedSelects by KeyName.N; Filters: fingerprint, key-name, key-pair-iddocs
DescribeNatGateways✅ SupportedSelects by NatGatewayId.N, raising NatGatewayNotFound for an ID the region does not hold and NatGatewayMalformed for one that is not an ID; Filters: nat-gateway-id, state, subnet-id, vpc-id, tag:, tag-key, tag-valuedocs
DescribeNetworkInterfaces✅ SupportedSelects by NetworkInterfaceId.N, raising InvalidNetworkInterfaceID.NotFound for an ID the region does not hold and InvalidNetworkInterfaceId.Malformed for one that is not an ID; Filters: availability-zone, description, mac-address, network-interface-id, status, subnet-id, vpc-id, tag:, tag-key, tag-valuedocs
DescribeRegions✅ SupportedHardcoded list of 8 regions; Filters: endpoint, opt-in-status, region-namedocs
DescribeRouteTables✅ SupportedSelects by RouteTableId.N, raising InvalidRouteTableID.NotFound for an ID the region does not hold and InvalidRouteTableId.Malformed for one that is not an ID; includes NAT gateway routes; Filters: association.main, association.route-table-association-id, association.subnet-id, route-table-id, vpc-id, tag:, tag-key, tag-valuedocs
DescribeSecurityGroups✅ SupportedSelects by GroupId.N, raising InvalidGroup.NotFound for an ID the region does not hold and InvalidGroupId.Malformed for one that is not an ID; Filters: description, group-id, group-name, vpc-id, tag:, tag-key, tag-valuedocs
DescribeSubnets✅ SupportedSelects by SubnetId.N, raising InvalidSubnetID.NotFound for an ID the region does not hold and InvalidSubnetID.Malformed for one that is not an ID; includes tagSet for CDK subnet groups; Filters: availability-zone, cidr-block, state, subnet-id, vpc-id, tag:, tag-key, tag-valuedocs
DescribeTags✅ SupportedFilters: key, resource-id, resource-type, valuedocs
DescribeVpcAttribute✅ SupportedReturns the stored enableDnsSupport or enableDnsHostnames valuedocs
DescribeLaunchTemplateVersions✅ SupportedResolves $Latest and $Default; honours LaunchTemplateVersion.N, MinVersion and MaxVersion; Filters: create-time, image-id, instance-typedocs
DescribeLaunchTemplates✅ SupportedSelects by LaunchTemplateId.N or LaunchTemplateName.N; Filters: create-time, launch-template-name, tag:, tag-key, tag-valuedocs
DescribeVpcEndpoints✅ SupportedSelects by VpcEndpointId.N, raising InvalidVpcEndpointId.NotFound for an ID the region does not hold and InvalidVpcEndpointId.Malformed for one that is not an ID; Filters: service-name, vpc-endpoint-id, vpc-endpoint-state, vpc-endpoint-type, vpc-iddocs
DescribeVpnGateways✅ SupportedSelects by VpnGatewayId.N, raising InvalidVpnGatewayID.NotFound for an ID the region does not hold (AWS documents no Malformed code for one, so a wrongly shaped ID is NotFound too); Filters: amazon-side-asn, attachment.state, attachment.vpc-id, availability-zone, state, type, vpn-gateway-id, tag:, tag-key, tag-valuedocs
DescribeVpcPeeringConnections✅ SupportedSelects by VpcPeeringConnectionId.N, raising InvalidVpcPeeringConnectionID.NotFound for an ID the region does not hold and InvalidVpcPeeringConnectionId.Malformed for one that is not an ID; Filters: accepter-vpc-info.vpc-id, requester-vpc-info.vpc-id, status-code, vpc-peering-connection-iddocs
DescribeVpcs✅ SupportedSelects by VpcId.N, raising InvalidVpcID.NotFound for an ID the region does not hold and InvalidVpcID.Malformed for one that is not an ID; Filters: cidr, isDefault, state, vpc-id, tag:, tag-key, tag-valuedocs
DetachInternetGateway✅ SupportedPuts the VPC Docker network back into --internal, moving attached containers the same way as AttachInternetGateway; fails with InternalError, detaching nothing, if Docker refuses. Stays external while another VPC sharing the network has a gatewaydocs
DetachVpnGateway✅ SupportedMetadata-only VPC detachmentdocs
DisassociateAddress✅ SupportedBy AssociationIddocs
DisassociateRouteTable✅ SupportedCannot disassociate main associationdocs
ModifyLaunchTemplate✅ SupportedSetDefaultVersion only, accepting a version number or $Latest/$Defaultdocs
ModifyInstanceAttribute✅ SupportedInstanceType.Value persisted; all other attributes accepteddocs
ModifySubnetAttribute✅ SupportedMapPublicIpOnLaunch is persisted and returned by DescribeSubnetsdocs
ModifyVpcAttribute✅ SupportedEnableDnsSupport, EnableDnsHostnames are persisted and returned by DescribeVpcAttributedocs
ReleaseAddress✅ SupportedBy AllocationId; an allocation that does not exist raises InvalidAllocationID.NotFounddocs
RevokeSecurityGroupEgress✅ Supporteddocs
RevokeSecurityGroupIngress✅ Supporteddocs
RunInstances✅ SupportedMinCount/MaxCount, TagSpecifications, async pending→running; each state emits an EC2 Instance State-change Notification to the default EventBridge bus. LaunchTemplate supplies ImageId, InstanceType, security groups, subnet and instance tags beneath any parameter the request passesdocs
StartInstances✅ SupportedFrom stopped state only; each state emits an EC2 Instance State-change Notification to the default EventBridge busdocs
StopInstances✅ SupportedFrom running state only; async stopping→stopped; each state emits an EC2 Instance State-change Notification to the default EventBridge busdocs
TerminateInstances✅ SupportedAsync shutting-down→terminated transition; each state emits an EC2 Instance State-change Notification to the default EventBridge busdocs

VPC network states

OperationStatusNotesAWS Docs
unbacked✅ SupportedNo Docker network (Docker unavailable, or the last create failed)docs
conflict✅ SupportedReserved for strict mode when CIDR collides with another existing VPCdocs
remapped✅ SupportedReserved for remapped mode and backed by a shadow CIDRdocs