Skip to content

Commit 740d241

Browse files
author
awstools
committed
feat(client-ec2): This release adds support for Security group referencing over Transit gateways, enabling you to simplify Security group management and control of instance-to-instance traffic across VPCs that are connected by Transit gateway.
1 parent bdea14f commit 740d241

29 files changed

+360
-187
lines changed

clients/client-ec2/src/commands/AcceptTransitGatewayVpcAttachmentCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export interface AcceptTransitGatewayVpcAttachmentCommandOutput
7171
* // CreationTime: new Date("TIMESTAMP"),
7272
* // Options: { // TransitGatewayVpcAttachmentOptions
7373
* // DnsSupport: "enable" || "disable",
74+
* // SecurityGroupReferencingSupport: "enable" || "disable",
7475
* // Ipv6Support: "enable" || "disable",
7576
* // ApplianceModeSupport: "enable" || "disable",
7677
* // },

clients/client-ec2/src/commands/AuthorizeSecurityGroupEgressCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ export interface AuthorizeSecurityGroupEgressCommandOutput
5050
* You can use -1 for the type or code to mean all types or all codes.</p>
5151
* <p>Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.</p>
5252
* <p>For information about VPC security group quotas, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon VPC quotas</a>.</p>
53+
* <note>
54+
* <p>If you want to reference a security group across VPCs attached to a transit gateway using the
55+
* <a href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html#create-tgw">security group
56+
* referencing feature</a>, note that you can only reference security groups
57+
* for ingress rules. You cannot reference a security group for egress rules.</p>
58+
* </note>
5359
* @example
5460
* Use a bare-bones client and the command you need to make an API call.
5561
* ```javascript

clients/client-ec2/src/commands/CreateCarrierGatewayCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import {
1515
} from "@smithy/types";
1616

1717
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
18-
import { CreateCarrierGatewayRequest } from "../models/models_0";
19-
import { CreateCarrierGatewayResult } from "../models/models_1";
18+
import { CreateCarrierGatewayRequest, CreateCarrierGatewayResult } from "../models/models_1";
2019
import { de_CreateCarrierGatewayCommand, se_CreateCarrierGatewayCommand } from "../protocols/Aws_ec2";
2120

2221
/**

clients/client-ec2/src/commands/CreateTransitGatewayCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ export interface CreateTransitGatewayCommandOutput extends CreateTransitGatewayR
6565
* DefaultRouteTablePropagation: "enable" || "disable",
6666
* VpnEcmpSupport: "enable" || "disable",
6767
* DnsSupport: "enable" || "disable",
68+
* SecurityGroupReferencingSupport: "enable" || "disable",
6869
* MulticastSupport: "enable" || "disable",
6970
* TransitGatewayCidrBlocks: [ // TransitGatewayCidrBlockStringList
7071
* "STRING_VALUE",
@@ -105,6 +106,7 @@ export interface CreateTransitGatewayCommandOutput extends CreateTransitGatewayR
105106
* // PropagationDefaultRouteTableId: "STRING_VALUE",
106107
* // VpnEcmpSupport: "enable" || "disable",
107108
* // DnsSupport: "enable" || "disable",
109+
* // SecurityGroupReferencingSupport: "enable" || "disable",
108110
* // MulticastSupport: "enable" || "disable",
109111
* // },
110112
* // Tags: [ // TagList

clients/client-ec2/src/commands/CreateTransitGatewayVpcAttachmentCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export interface CreateTransitGatewayVpcAttachmentCommandOutput
6060
* ],
6161
* Options: { // CreateTransitGatewayVpcAttachmentRequestOptions
6262
* DnsSupport: "enable" || "disable",
63+
* SecurityGroupReferencingSupport: "enable" || "disable",
6364
* Ipv6Support: "enable" || "disable",
6465
* ApplianceModeSupport: "enable" || "disable",
6566
* },
@@ -91,6 +92,7 @@ export interface CreateTransitGatewayVpcAttachmentCommandOutput
9192
* // CreationTime: new Date("TIMESTAMP"),
9293
* // Options: { // TransitGatewayVpcAttachmentOptions
9394
* // DnsSupport: "enable" || "disable",
95+
* // SecurityGroupReferencingSupport: "enable" || "disable",
9496
* // Ipv6Support: "enable" || "disable",
9597
* // ApplianceModeSupport: "enable" || "disable",
9698
* // },

clients/client-ec2/src/commands/DeleteNatGatewayCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import {
1515
} from "@smithy/types";
1616

1717
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
18-
import { DeleteNatGatewayRequest } from "../models/models_2";
19-
import { DeleteNatGatewayResult } from "../models/models_3";
18+
import { DeleteNatGatewayRequest, DeleteNatGatewayResult } from "../models/models_3";
2019
import { de_DeleteNatGatewayCommand, se_DeleteNatGatewayCommand } from "../protocols/Aws_ec2";
2120

2221
/**

clients/client-ec2/src/commands/DeleteTransitGatewayCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export interface DeleteTransitGatewayCommandOutput extends DeleteTransitGatewayR
7070
* // PropagationDefaultRouteTableId: "STRING_VALUE",
7171
* // VpnEcmpSupport: "enable" || "disable",
7272
* // DnsSupport: "enable" || "disable",
73+
* // SecurityGroupReferencingSupport: "enable" || "disable",
7374
* // MulticastSupport: "enable" || "disable",
7475
* // },
7576
* // Tags: [ // TagList

clients/client-ec2/src/commands/DeleteTransitGatewayVpcAttachmentCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ export interface DeleteTransitGatewayVpcAttachmentCommandOutput
6868
* // CreationTime: new Date("TIMESTAMP"),
6969
* // Options: { // TransitGatewayVpcAttachmentOptions
7070
* // DnsSupport: "enable" || "disable",
71+
* // SecurityGroupReferencingSupport: "enable" || "disable",
7172
* // Ipv6Support: "enable" || "disable",
7273
* // ApplianceModeSupport: "enable" || "disable",
7374
* // },

clients/client-ec2/src/commands/DescribeImportSnapshotTasksCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import {
1515
} from "@smithy/types";
1616

1717
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
18-
import { DescribeImportSnapshotTasksRequest } from "../models/models_3";
1918
import {
19+
DescribeImportSnapshotTasksRequest,
2020
DescribeImportSnapshotTasksResult,
2121
DescribeImportSnapshotTasksResultFilterSensitiveLog,
2222
} from "../models/models_4";

clients/client-ec2/src/commands/DescribeSecurityGroupReferencesCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export interface DescribeSecurityGroupReferencesCommandOutput
4242

4343
/**
4444
* @public
45-
* <p>Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.</p>
45+
* <p>Describes the VPCs on the other side of a VPC peering connection or the VPCs attached to a transit gateway that are referencing the security groups you've specified in this request.</p>
4646
* @example
4747
* Use a bare-bones client and the command you need to make an API call.
4848
* ```javascript
@@ -63,6 +63,7 @@ export interface DescribeSecurityGroupReferencesCommandOutput
6363
* // GroupId: "STRING_VALUE",
6464
* // ReferencingVpcId: "STRING_VALUE",
6565
* // VpcPeeringConnectionId: "STRING_VALUE",
66+
* // TransitGatewayId: "STRING_VALUE",
6667
* // },
6768
* // ],
6869
* // };

clients/client-ec2/src/commands/DescribeStaleSecurityGroupsCommand.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@ export interface DescribeStaleSecurityGroupsCommandOutput extends DescribeStaleS
3838
/**
3939
* @public
4040
* <p>Describes the stale security group rules for security groups in a specified VPC.
41-
* Rules are stale when they reference a deleted security group in the same VPC or in a peer VPC,
42-
* or if they reference a security group in a peer VPC for which the VPC peering connection has
43-
* been deleted.</p>
41+
* Rules are stale when they reference a deleted security group in the same VPC, peered VPC, or in separate VPCs attached to a transit gateway (with <a href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html#create-tgw">security group referencing support</a> enabled). Rules can also be stale if they reference a security group in a peer VPC for which the VPC peering connection has
42+
* been deleted or if they reference a security group in a VPC that has been detached from a transit gateway.</p>
4443
* @example
4544
* Use a bare-bones client and the command you need to make an API call.
4645
* ```javascript

clients/client-ec2/src/commands/DescribeSubnetsCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import {
1515
} from "@smithy/types";
1616

1717
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
18-
import { DescribeSubnetsRequest, DescribeSubnetsResult } from "../models/models_4";
18+
import { DescribeSubnetsRequest } from "../models/models_4";
19+
import { DescribeSubnetsResult } from "../models/models_5";
1920
import { de_DescribeSubnetsCommand, se_DescribeSubnetsCommand } from "../protocols/Aws_ec2";
2021

2122
/**

clients/client-ec2/src/commands/DescribeTransitGatewayVpcAttachmentsCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export interface DescribeTransitGatewayVpcAttachmentsCommandOutput
8585
* // CreationTime: new Date("TIMESTAMP"),
8686
* // Options: { // TransitGatewayVpcAttachmentOptions
8787
* // DnsSupport: "enable" || "disable",
88+
* // SecurityGroupReferencingSupport: "enable" || "disable",
8889
* // Ipv6Support: "enable" || "disable",
8990
* // ApplianceModeSupport: "enable" || "disable",
9091
* // },

clients/client-ec2/src/commands/DescribeTransitGatewaysCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ export interface DescribeTransitGatewaysCommandOutput extends DescribeTransitGat
8484
* // PropagationDefaultRouteTableId: "STRING_VALUE",
8585
* // VpnEcmpSupport: "enable" || "disable",
8686
* // DnsSupport: "enable" || "disable",
87+
* // SecurityGroupReferencingSupport: "enable" || "disable",
8788
* // MulticastSupport: "enable" || "disable",
8889
* // },
8990
* // Tags: [ // TagList

clients/client-ec2/src/commands/GetIpamPoolCidrsCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import {
1515
} from "@smithy/types";
1616

1717
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
18-
import { GetIpamPoolCidrsRequest, GetIpamPoolCidrsResult } from "../models/models_5";
18+
import { GetIpamPoolCidrsRequest } from "../models/models_5";
19+
import { GetIpamPoolCidrsResult } from "../models/models_6";
1920
import { de_GetIpamPoolCidrsCommand, se_GetIpamPoolCidrsCommand } from "../protocols/Aws_ec2";
2021

2122
/**

clients/client-ec2/src/commands/ModifyTransitGatewayCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export interface ModifyTransitGatewayCommandOutput extends ModifyTransitGatewayR
5656
* ],
5757
* VpnEcmpSupport: "enable" || "disable",
5858
* DnsSupport: "enable" || "disable",
59+
* SecurityGroupReferencingSupport: "enable" || "disable",
5960
* AutoAcceptSharedAttachments: "enable" || "disable",
6061
* DefaultRouteTableAssociation: "enable" || "disable",
6162
* AssociationDefaultRouteTableId: "STRING_VALUE",
@@ -87,6 +88,7 @@ export interface ModifyTransitGatewayCommandOutput extends ModifyTransitGatewayR
8788
* // PropagationDefaultRouteTableId: "STRING_VALUE",
8889
* // VpnEcmpSupport: "enable" || "disable",
8990
* // DnsSupport: "enable" || "disable",
91+
* // SecurityGroupReferencingSupport: "enable" || "disable",
9092
* // MulticastSupport: "enable" || "disable",
9193
* // },
9294
* // Tags: [ // TagList

clients/client-ec2/src/commands/ModifyTransitGatewayVpcAttachmentCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export interface ModifyTransitGatewayVpcAttachmentCommandOutput
5959
* ],
6060
* Options: { // ModifyTransitGatewayVpcAttachmentRequestOptions
6161
* DnsSupport: "enable" || "disable",
62+
* SecurityGroupReferencingSupport: "enable" || "disable",
6263
* Ipv6Support: "enable" || "disable",
6364
* ApplianceModeSupport: "enable" || "disable",
6465
* },
@@ -79,6 +80,7 @@ export interface ModifyTransitGatewayVpcAttachmentCommandOutput
7980
* // CreationTime: new Date("TIMESTAMP"),
8081
* // Options: { // TransitGatewayVpcAttachmentOptions
8182
* // DnsSupport: "enable" || "disable",
83+
* // SecurityGroupReferencingSupport: "enable" || "disable",
8284
* // Ipv6Support: "enable" || "disable",
8385
* // ApplianceModeSupport: "enable" || "disable",
8486
* // },

clients/client-ec2/src/commands/RegisterTransitGatewayMulticastGroupSourcesCommand.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ import {
1515
} from "@smithy/types";
1616

1717
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
18-
import {
19-
RegisterTransitGatewayMulticastGroupSourcesRequest,
20-
RegisterTransitGatewayMulticastGroupSourcesResult,
21-
} from "../models/models_6";
18+
import { RegisterTransitGatewayMulticastGroupSourcesRequest } from "../models/models_6";
19+
import { RegisterTransitGatewayMulticastGroupSourcesResult } from "../models/models_7";
2220
import {
2321
de_RegisterTransitGatewayMulticastGroupSourcesCommand,
2422
se_RegisterTransitGatewayMulticastGroupSourcesCommand,

clients/client-ec2/src/commands/RejectTransitGatewayVpcAttachmentCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export interface RejectTransitGatewayVpcAttachmentCommandOutput
7171
* // CreationTime: new Date("TIMESTAMP"),
7272
* // Options: { // TransitGatewayVpcAttachmentOptions
7373
* // DnsSupport: "enable" || "disable",
74+
* // SecurityGroupReferencingSupport: "enable" || "disable",
7475
* // Ipv6Support: "enable" || "disable",
7576
* // ApplianceModeSupport: "enable" || "disable",
7677
* // },

clients/client-ec2/src/models/models_0.ts

Lines changed: 22 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -830,6 +830,21 @@ export const Ipv6SupportValue = {
830830
*/
831831
export type Ipv6SupportValue = (typeof Ipv6SupportValue)[keyof typeof Ipv6SupportValue];
832832

833+
/**
834+
* @public
835+
* @enum
836+
*/
837+
export const SecurityGroupReferencingSupportValue = {
838+
disable: "disable",
839+
enable: "enable",
840+
} as const;
841+
842+
/**
843+
* @public
844+
*/
845+
export type SecurityGroupReferencingSupportValue =
846+
(typeof SecurityGroupReferencingSupportValue)[keyof typeof SecurityGroupReferencingSupportValue];
847+
833848
/**
834849
* @public
835850
* <p>Describes the VPC attachment options.</p>
@@ -841,6 +856,12 @@ export interface TransitGatewayVpcAttachmentOptions {
841856
*/
842857
DnsSupport?: DnsSupportValue;
843858

859+
/**
860+
* @public
861+
* <p>For important information about this feature, see <a href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#create-vpc-attachment">Create a transit gateway attachment to a VPC</a> in the <i>Amazon Web Services Transit Gateway Guide</i>.</p>
862+
*/
863+
SecurityGroupReferencingSupport?: SecurityGroupReferencingSupportValue;
864+
844865
/**
845866
* @public
846867
* <p>Indicates whether IPv6 support is disabled.</p>
@@ -6549,7 +6570,7 @@ export interface ReferencedSecurityGroup {
65496570

65506571
/**
65516572
* @public
6552-
* <p>The ID of the VPC peering connection.</p>
6573+
* <p>The ID of the VPC peering connection (if applicable).</p>
65536574
*/
65546575
VpcPeeringConnectionId?: string;
65556576
}
@@ -9643,39 +9664,6 @@ export interface CreateCapacityReservationFleetResult {
96439664
Tags?: Tag[];
96449665
}
96459666

9646-
/**
9647-
* @public
9648-
*/
9649-
export interface CreateCarrierGatewayRequest {
9650-
/**
9651-
* @public
9652-
* <p>The ID of the VPC to associate with the carrier gateway.</p>
9653-
*/
9654-
VpcId: string | undefined;
9655-
9656-
/**
9657-
* @public
9658-
* <p>The tags to associate with the carrier gateway.</p>
9659-
*/
9660-
TagSpecifications?: TagSpecification[];
9661-
9662-
/**
9663-
* @public
9664-
* <p>Checks whether you have the required permissions for the action, without actually making the request,
9665-
* and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>.
9666-
* Otherwise, it is <code>UnauthorizedOperation</code>.</p>
9667-
*/
9668-
DryRun?: boolean;
9669-
9670-
/**
9671-
* @public
9672-
* <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
9673-
* request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to ensure
9674-
* idempotency</a>.</p>
9675-
*/
9676-
ClientToken?: string;
9677-
}
9678-
96799667
/**
96809668
* @internal
96819669
*/

clients/client-ec2/src/models/models_1.ts

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,39 @@ import {
3030
WeekDay,
3131
} from "./models_0";
3232

33+
/**
34+
* @public
35+
*/
36+
export interface CreateCarrierGatewayRequest {
37+
/**
38+
* @public
39+
* <p>The ID of the VPC to associate with the carrier gateway.</p>
40+
*/
41+
VpcId: string | undefined;
42+
43+
/**
44+
* @public
45+
* <p>The tags to associate with the carrier gateway.</p>
46+
*/
47+
TagSpecifications?: TagSpecification[];
48+
49+
/**
50+
* @public
51+
* <p>Checks whether you have the required permissions for the action, without actually making the request,
52+
* and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>.
53+
* Otherwise, it is <code>UnauthorizedOperation</code>.</p>
54+
*/
55+
DryRun?: boolean;
56+
57+
/**
58+
* @public
59+
* <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
60+
* request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to ensure
61+
* idempotency</a>.</p>
62+
*/
63+
ClientToken?: string;
64+
}
65+
3366
/**
3467
* @public
3568
* @enum
@@ -10925,24 +10958,6 @@ export const NetworkInterfaceType = {
1092510958
*/
1092610959
export type NetworkInterfaceType = (typeof NetworkInterfaceType)[keyof typeof NetworkInterfaceType];
1092710960

10928-
/**
10929-
* @public
10930-
* <p>Describes an IPv6 address associated with a network interface.</p>
10931-
*/
10932-
export interface NetworkInterfaceIpv6Address {
10933-
/**
10934-
* @public
10935-
* <p>The IPv6 address.</p>
10936-
*/
10937-
Ipv6Address?: string;
10938-
10939-
/**
10940-
* @public
10941-
* <p>Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyNetworkInterfaceAttribute.html">ModifyNetworkInterfaceAttribute</a>.</p>
10942-
*/
10943-
IsPrimaryIpv6?: boolean;
10944-
}
10945-
1094610961
/**
1094710962
* @internal
1094810963
*/

0 commit comments

Comments
 (0)