Skip to content

Commit 095a3b8

Browse files
author
awstools
committed
feat(client-ec2): This release adds two new capabilities to VPC Security Groups: Security Group VPC Associations and Shared Security Groups.
1 parent 9029bbd commit 095a3b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+3007
-1373
lines changed

clients/client-ec2/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,14 @@ AssociateRouteTable
421421

422422
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/AssociateRouteTableCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/AssociateRouteTableCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/AssociateRouteTableCommandOutput/)
423423

424+
</details>
425+
<details>
426+
<summary>
427+
AssociateSecurityGroupVpc
428+
</summary>
429+
430+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/AssociateSecurityGroupVpcCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/AssociateSecurityGroupVpcCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/AssociateSecurityGroupVpcCommandOutput/)
431+
424432
</details>
425433
<details>
426434
<summary>
@@ -2829,6 +2837,14 @@ DescribeSecurityGroups
28292837

28302838
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/DescribeSecurityGroupsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DescribeSecurityGroupsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DescribeSecurityGroupsCommandOutput/)
28312839

2840+
</details>
2841+
<details>
2842+
<summary>
2843+
DescribeSecurityGroupVpcAssociations
2844+
</summary>
2845+
2846+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/DescribeSecurityGroupVpcAssociationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DescribeSecurityGroupVpcAssociationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DescribeSecurityGroupVpcAssociationsCommandOutput/)
2847+
28322848
</details>
28332849
<details>
28342850
<summary>
@@ -3485,6 +3501,14 @@ DisassociateRouteTable
34853501

34863502
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/DisassociateRouteTableCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DisassociateRouteTableCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DisassociateRouteTableCommandOutput/)
34873503

3504+
</details>
3505+
<details>
3506+
<summary>
3507+
DisassociateSecurityGroupVpc
3508+
</summary>
3509+
3510+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/DisassociateSecurityGroupVpcCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DisassociateSecurityGroupVpcCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/DisassociateSecurityGroupVpcCommandOutput/)
3511+
34883512
</details>
34893513
<details>
34903514
<summary>

clients/client-ec2/src/EC2.ts

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ import {
137137
AssociateRouteTableCommandInput,
138138
AssociateRouteTableCommandOutput,
139139
} from "./commands/AssociateRouteTableCommand";
140+
import {
141+
AssociateSecurityGroupVpcCommand,
142+
AssociateSecurityGroupVpcCommandInput,
143+
AssociateSecurityGroupVpcCommandOutput,
144+
} from "./commands/AssociateSecurityGroupVpcCommand";
140145
import {
141146
AssociateSubnetCidrBlockCommand,
142147
AssociateSubnetCidrBlockCommandInput,
@@ -1598,6 +1603,11 @@ import {
15981603
DescribeSecurityGroupsCommandInput,
15991604
DescribeSecurityGroupsCommandOutput,
16001605
} from "./commands/DescribeSecurityGroupsCommand";
1606+
import {
1607+
DescribeSecurityGroupVpcAssociationsCommand,
1608+
DescribeSecurityGroupVpcAssociationsCommandInput,
1609+
DescribeSecurityGroupVpcAssociationsCommandOutput,
1610+
} from "./commands/DescribeSecurityGroupVpcAssociationsCommand";
16011611
import {
16021612
DescribeSnapshotAttributeCommand,
16031613
DescribeSnapshotAttributeCommandInput,
@@ -2008,6 +2018,11 @@ import {
20082018
DisassociateRouteTableCommandInput,
20092019
DisassociateRouteTableCommandOutput,
20102020
} from "./commands/DisassociateRouteTableCommand";
2021+
import {
2022+
DisassociateSecurityGroupVpcCommand,
2023+
DisassociateSecurityGroupVpcCommandInput,
2024+
DisassociateSecurityGroupVpcCommandOutput,
2025+
} from "./commands/DisassociateSecurityGroupVpcCommand";
20112026
import {
20122027
DisassociateSubnetCidrBlockCommand,
20132028
DisassociateSubnetCidrBlockCommandInput,
@@ -3134,6 +3149,7 @@ const commands = {
31343149
AssociateIpamResourceDiscoveryCommand,
31353150
AssociateNatGatewayAddressCommand,
31363151
AssociateRouteTableCommand,
3152+
AssociateSecurityGroupVpcCommand,
31373153
AssociateSubnetCidrBlockCommand,
31383154
AssociateTransitGatewayMulticastDomainCommand,
31393155
AssociateTransitGatewayPolicyTableCommand,
@@ -3435,6 +3451,7 @@ const commands = {
34353451
DescribeSecurityGroupReferencesCommand,
34363452
DescribeSecurityGroupRulesCommand,
34373453
DescribeSecurityGroupsCommand,
3454+
DescribeSecurityGroupVpcAssociationsCommand,
34383455
DescribeSnapshotAttributeCommand,
34393456
DescribeSnapshotsCommand,
34403457
DescribeSnapshotTierStatusCommand,
@@ -3517,6 +3534,7 @@ const commands = {
35173534
DisassociateIpamResourceDiscoveryCommand,
35183535
DisassociateNatGatewayAddressCommand,
35193536
DisassociateRouteTableCommand,
3537+
DisassociateSecurityGroupVpcCommand,
35203538
DisassociateSubnetCidrBlockCommand,
35213539
DisassociateTransitGatewayMulticastDomainCommand,
35223540
DisassociateTransitGatewayPolicyTableCommand,
@@ -4197,6 +4215,23 @@ export interface EC2 {
41974215
cb: (err: any, data?: AssociateRouteTableCommandOutput) => void
41984216
): void;
41994217

4218+
/**
4219+
* @see {@link AssociateSecurityGroupVpcCommand}
4220+
*/
4221+
associateSecurityGroupVpc(
4222+
args: AssociateSecurityGroupVpcCommandInput,
4223+
options?: __HttpHandlerOptions
4224+
): Promise<AssociateSecurityGroupVpcCommandOutput>;
4225+
associateSecurityGroupVpc(
4226+
args: AssociateSecurityGroupVpcCommandInput,
4227+
cb: (err: any, data?: AssociateSecurityGroupVpcCommandOutput) => void
4228+
): void;
4229+
associateSecurityGroupVpc(
4230+
args: AssociateSecurityGroupVpcCommandInput,
4231+
options: __HttpHandlerOptions,
4232+
cb: (err: any, data?: AssociateSecurityGroupVpcCommandOutput) => void
4233+
): void;
4234+
42004235
/**
42014236
* @see {@link AssociateSubnetCidrBlockCommand}
42024237
*/
@@ -9225,6 +9260,24 @@ export interface EC2 {
92259260
cb: (err: any, data?: DescribeSecurityGroupsCommandOutput) => void
92269261
): void;
92279262

9263+
/**
9264+
* @see {@link DescribeSecurityGroupVpcAssociationsCommand}
9265+
*/
9266+
describeSecurityGroupVpcAssociations(): Promise<DescribeSecurityGroupVpcAssociationsCommandOutput>;
9267+
describeSecurityGroupVpcAssociations(
9268+
args: DescribeSecurityGroupVpcAssociationsCommandInput,
9269+
options?: __HttpHandlerOptions
9270+
): Promise<DescribeSecurityGroupVpcAssociationsCommandOutput>;
9271+
describeSecurityGroupVpcAssociations(
9272+
args: DescribeSecurityGroupVpcAssociationsCommandInput,
9273+
cb: (err: any, data?: DescribeSecurityGroupVpcAssociationsCommandOutput) => void
9274+
): void;
9275+
describeSecurityGroupVpcAssociations(
9276+
args: DescribeSecurityGroupVpcAssociationsCommandInput,
9277+
options: __HttpHandlerOptions,
9278+
cb: (err: any, data?: DescribeSecurityGroupVpcAssociationsCommandOutput) => void
9279+
): void;
9280+
92289281
/**
92299282
* @see {@link DescribeSnapshotAttributeCommand}
92309283
*/
@@ -10639,6 +10692,23 @@ export interface EC2 {
1063910692
cb: (err: any, data?: DisassociateRouteTableCommandOutput) => void
1064010693
): void;
1064110694

10695+
/**
10696+
* @see {@link DisassociateSecurityGroupVpcCommand}
10697+
*/
10698+
disassociateSecurityGroupVpc(
10699+
args: DisassociateSecurityGroupVpcCommandInput,
10700+
options?: __HttpHandlerOptions
10701+
): Promise<DisassociateSecurityGroupVpcCommandOutput>;
10702+
disassociateSecurityGroupVpc(
10703+
args: DisassociateSecurityGroupVpcCommandInput,
10704+
cb: (err: any, data?: DisassociateSecurityGroupVpcCommandOutput) => void
10705+
): void;
10706+
disassociateSecurityGroupVpc(
10707+
args: DisassociateSecurityGroupVpcCommandInput,
10708+
options: __HttpHandlerOptions,
10709+
cb: (err: any, data?: DisassociateSecurityGroupVpcCommandOutput) => void
10710+
): void;
10711+
1064210712
/**
1064310713
* @see {@link DisassociateSubnetCidrBlockCommand}
1064410714
*/

clients/client-ec2/src/EC2Client.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ import {
149149
AssociateRouteTableCommandInput,
150150
AssociateRouteTableCommandOutput,
151151
} from "./commands/AssociateRouteTableCommand";
152+
import {
153+
AssociateSecurityGroupVpcCommandInput,
154+
AssociateSecurityGroupVpcCommandOutput,
155+
} from "./commands/AssociateSecurityGroupVpcCommand";
152156
import {
153157
AssociateSubnetCidrBlockCommandInput,
154158
AssociateSubnetCidrBlockCommandOutput,
@@ -1134,6 +1138,10 @@ import {
11341138
DescribeSecurityGroupsCommandInput,
11351139
DescribeSecurityGroupsCommandOutput,
11361140
} from "./commands/DescribeSecurityGroupsCommand";
1141+
import {
1142+
DescribeSecurityGroupVpcAssociationsCommandInput,
1143+
DescribeSecurityGroupVpcAssociationsCommandOutput,
1144+
} from "./commands/DescribeSecurityGroupVpcAssociationsCommand";
11371145
import {
11381146
DescribeSnapshotAttributeCommandInput,
11391147
DescribeSnapshotAttributeCommandOutput,
@@ -1435,6 +1443,10 @@ import {
14351443
DisassociateRouteTableCommandInput,
14361444
DisassociateRouteTableCommandOutput,
14371445
} from "./commands/DisassociateRouteTableCommand";
1446+
import {
1447+
DisassociateSecurityGroupVpcCommandInput,
1448+
DisassociateSecurityGroupVpcCommandOutput,
1449+
} from "./commands/DisassociateSecurityGroupVpcCommand";
14381450
import {
14391451
DisassociateSubnetCidrBlockCommandInput,
14401452
DisassociateSubnetCidrBlockCommandOutput,
@@ -2247,6 +2259,7 @@ export type ServiceInputTypes =
22472259
| AssociateIpamResourceDiscoveryCommandInput
22482260
| AssociateNatGatewayAddressCommandInput
22492261
| AssociateRouteTableCommandInput
2262+
| AssociateSecurityGroupVpcCommandInput
22502263
| AssociateSubnetCidrBlockCommandInput
22512264
| AssociateTransitGatewayMulticastDomainCommandInput
22522265
| AssociateTransitGatewayPolicyTableCommandInput
@@ -2547,6 +2560,7 @@ export type ServiceInputTypes =
25472560
| DescribeScheduledInstancesCommandInput
25482561
| DescribeSecurityGroupReferencesCommandInput
25492562
| DescribeSecurityGroupRulesCommandInput
2563+
| DescribeSecurityGroupVpcAssociationsCommandInput
25502564
| DescribeSecurityGroupsCommandInput
25512565
| DescribeSnapshotAttributeCommandInput
25522566
| DescribeSnapshotTierStatusCommandInput
@@ -2630,6 +2644,7 @@ export type ServiceInputTypes =
26302644
| DisassociateIpamResourceDiscoveryCommandInput
26312645
| DisassociateNatGatewayAddressCommandInput
26322646
| DisassociateRouteTableCommandInput
2647+
| DisassociateSecurityGroupVpcCommandInput
26332648
| DisassociateSubnetCidrBlockCommandInput
26342649
| DisassociateTransitGatewayMulticastDomainCommandInput
26352650
| DisassociateTransitGatewayPolicyTableCommandInput
@@ -2886,6 +2901,7 @@ export type ServiceOutputTypes =
28862901
| AssociateIpamResourceDiscoveryCommandOutput
28872902
| AssociateNatGatewayAddressCommandOutput
28882903
| AssociateRouteTableCommandOutput
2904+
| AssociateSecurityGroupVpcCommandOutput
28892905
| AssociateSubnetCidrBlockCommandOutput
28902906
| AssociateTransitGatewayMulticastDomainCommandOutput
28912907
| AssociateTransitGatewayPolicyTableCommandOutput
@@ -3186,6 +3202,7 @@ export type ServiceOutputTypes =
31863202
| DescribeScheduledInstancesCommandOutput
31873203
| DescribeSecurityGroupReferencesCommandOutput
31883204
| DescribeSecurityGroupRulesCommandOutput
3205+
| DescribeSecurityGroupVpcAssociationsCommandOutput
31893206
| DescribeSecurityGroupsCommandOutput
31903207
| DescribeSnapshotAttributeCommandOutput
31913208
| DescribeSnapshotTierStatusCommandOutput
@@ -3269,6 +3286,7 @@ export type ServiceOutputTypes =
32693286
| DisassociateIpamResourceDiscoveryCommandOutput
32703287
| DisassociateNatGatewayAddressCommandOutput
32713288
| DisassociateRouteTableCommandOutput
3289+
| DisassociateSecurityGroupVpcCommandOutput
32723290
| DisassociateSubnetCidrBlockCommandOutput
32733291
| DisassociateTransitGatewayMulticastDomainCommandOutput
32743292
| DisassociateTransitGatewayPolicyTableCommandOutput
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
// smithy-typescript generated code
2+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { getSerdePlugin } from "@smithy/middleware-serde";
4+
import { Command as $Command } from "@smithy/smithy-client";
5+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
6+
7+
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
8+
import { commonParams } from "../endpoint/EndpointParameters";
9+
import { AssociateSecurityGroupVpcRequest, AssociateSecurityGroupVpcResult } from "../models/models_0";
10+
import { de_AssociateSecurityGroupVpcCommand, se_AssociateSecurityGroupVpcCommand } from "../protocols/Aws_ec2";
11+
12+
/**
13+
* @public
14+
*/
15+
export type { __MetadataBearer };
16+
export { $Command };
17+
/**
18+
* @public
19+
*
20+
* The input for {@link AssociateSecurityGroupVpcCommand}.
21+
*/
22+
export interface AssociateSecurityGroupVpcCommandInput extends AssociateSecurityGroupVpcRequest {}
23+
/**
24+
* @public
25+
*
26+
* The output of {@link AssociateSecurityGroupVpcCommand}.
27+
*/
28+
export interface AssociateSecurityGroupVpcCommandOutput extends AssociateSecurityGroupVpcResult, __MetadataBearer {}
29+
30+
/**
31+
* <p>Associates a security group with another VPC in the same Region. This enables you to use the same security group with network interfaces and instances in the specified VPC.</p>
32+
* <note>
33+
* <ul>
34+
* <li>
35+
* <p>The VPC you want to associate the security group with must be in the same Region.</p>
36+
* </li>
37+
* <li>
38+
* <p>You can associate the security group with another VPC if your account owns the VPC or if the VPC was shared with you.</p>
39+
* </li>
40+
* <li>
41+
* <p>You must own the security group and the VPC that it was created in.</p>
42+
* </li>
43+
* <li>
44+
* <p>You cannot use this feature with default security groups.</p>
45+
* </li>
46+
* <li>
47+
* <p>You cannot use this feature with the default VPC.</p>
48+
* </li>
49+
* </ul>
50+
* </note>
51+
* @example
52+
* Use a bare-bones client and the command you need to make an API call.
53+
* ```javascript
54+
* import { EC2Client, AssociateSecurityGroupVpcCommand } from "@aws-sdk/client-ec2"; // ES Modules import
55+
* // const { EC2Client, AssociateSecurityGroupVpcCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
56+
* const client = new EC2Client(config);
57+
* const input = { // AssociateSecurityGroupVpcRequest
58+
* GroupId: "STRING_VALUE", // required
59+
* VpcId: "STRING_VALUE", // required
60+
* DryRun: true || false,
61+
* };
62+
* const command = new AssociateSecurityGroupVpcCommand(input);
63+
* const response = await client.send(command);
64+
* // { // AssociateSecurityGroupVpcResult
65+
* // State: "associating" || "associated" || "association-failed" || "disassociating" || "disassociated" || "disassociation-failed",
66+
* // };
67+
*
68+
* ```
69+
*
70+
* @param AssociateSecurityGroupVpcCommandInput - {@link AssociateSecurityGroupVpcCommandInput}
71+
* @returns {@link AssociateSecurityGroupVpcCommandOutput}
72+
* @see {@link AssociateSecurityGroupVpcCommandInput} for command's `input` shape.
73+
* @see {@link AssociateSecurityGroupVpcCommandOutput} for command's `response` shape.
74+
* @see {@link EC2ClientResolvedConfig | config} for EC2Client's `config` shape.
75+
*
76+
* @throws {@link EC2ServiceException}
77+
* <p>Base exception class for all service exceptions from EC2 service.</p>
78+
*
79+
* @public
80+
*/
81+
export class AssociateSecurityGroupVpcCommand extends $Command
82+
.classBuilder<
83+
AssociateSecurityGroupVpcCommandInput,
84+
AssociateSecurityGroupVpcCommandOutput,
85+
EC2ClientResolvedConfig,
86+
ServiceInputTypes,
87+
ServiceOutputTypes
88+
>()
89+
.ep(commonParams)
90+
.m(function (this: any, Command: any, cs: any, config: EC2ClientResolvedConfig, o: any) {
91+
return [
92+
getSerdePlugin(config, this.serialize, this.deserialize),
93+
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
94+
];
95+
})
96+
.s("AmazonEC2", "AssociateSecurityGroupVpc", {})
97+
.n("EC2Client", "AssociateSecurityGroupVpcCommand")
98+
.f(void 0, void 0)
99+
.ser(se_AssociateSecurityGroupVpcCommand)
100+
.de(de_AssociateSecurityGroupVpcCommand)
101+
.build() {
102+
/** @internal type navigation helper, not in runtime. */
103+
protected declare static __types: {
104+
api: {
105+
input: AssociateSecurityGroupVpcRequest;
106+
output: AssociateSecurityGroupVpcResult;
107+
};
108+
sdk: {
109+
input: AssociateSecurityGroupVpcCommandInput;
110+
output: AssociateSecurityGroupVpcCommandOutput;
111+
};
112+
};
113+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ export interface AuthorizeSecurityGroupEgressCommandOutput
136136
* // Value: "STRING_VALUE",
137137
* // },
138138
* // ],
139+
* // SecurityGroupRuleArn: "STRING_VALUE",
139140
* // },
140141
* // ],
141142
* // };

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ export interface AuthorizeSecurityGroupIngressCommandOutput
137137
* // Value: "STRING_VALUE",
138138
* // },
139139
* // ],
140+
* // SecurityGroupRuleArn: "STRING_VALUE",
140141
* // },
141142
* // ],
142143
* // };

0 commit comments

Comments
 (0)