Skip to content

Commit 8973fbd

Browse files
author
awstools
committed
feat(client-ec2): This release adds new functionality that allows customers to provision IPv6 CIDR blocks through Amazon VPC IP Address Manager (IPAM) as well as allowing customers to utilize IPAM Resource Discovery APIs.
1 parent bf7623f commit 8973fbd

File tree

68 files changed

+18546
-12807
lines changed

Some content is hidden

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

68 files changed

+18546
-12807
lines changed

clients/client-ec2/src/EC2.ts

Lines changed: 339 additions & 4 deletions
Large diffs are not rendered by default.

clients/client-ec2/src/EC2Client.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ import {
117117
AssociateInstanceEventWindowCommandInput,
118118
AssociateInstanceEventWindowCommandOutput,
119119
} from "./commands/AssociateInstanceEventWindowCommand";
120+
import {
121+
AssociateIpamResourceDiscoveryCommandInput,
122+
AssociateIpamResourceDiscoveryCommandOutput,
123+
} from "./commands/AssociateIpamResourceDiscoveryCommand";
120124
import {
121125
AssociateRouteTableCommandInput,
122126
AssociateRouteTableCommandOutput,
@@ -268,6 +272,10 @@ import {
268272
} from "./commands/CreateInternetGatewayCommand";
269273
import { CreateIpamCommandInput, CreateIpamCommandOutput } from "./commands/CreateIpamCommand";
270274
import { CreateIpamPoolCommandInput, CreateIpamPoolCommandOutput } from "./commands/CreateIpamPoolCommand";
275+
import {
276+
CreateIpamResourceDiscoveryCommandInput,
277+
CreateIpamResourceDiscoveryCommandOutput,
278+
} from "./commands/CreateIpamResourceDiscoveryCommand";
271279
import { CreateIpamScopeCommandInput, CreateIpamScopeCommandOutput } from "./commands/CreateIpamScopeCommand";
272280
import { CreateKeyPairCommandInput, CreateKeyPairCommandOutput } from "./commands/CreateKeyPairCommand";
273281
import {
@@ -498,6 +506,10 @@ import {
498506
} from "./commands/DeleteInternetGatewayCommand";
499507
import { DeleteIpamCommandInput, DeleteIpamCommandOutput } from "./commands/DeleteIpamCommand";
500508
import { DeleteIpamPoolCommandInput, DeleteIpamPoolCommandOutput } from "./commands/DeleteIpamPoolCommand";
509+
import {
510+
DeleteIpamResourceDiscoveryCommandInput,
511+
DeleteIpamResourceDiscoveryCommandOutput,
512+
} from "./commands/DeleteIpamResourceDiscoveryCommand";
501513
import { DeleteIpamScopeCommandInput, DeleteIpamScopeCommandOutput } from "./commands/DeleteIpamScopeCommand";
502514
import { DeleteKeyPairCommandInput, DeleteKeyPairCommandOutput } from "./commands/DeleteKeyPairCommand";
503515
import {
@@ -895,6 +907,14 @@ import {
895907
DescribeInternetGatewaysCommandOutput,
896908
} from "./commands/DescribeInternetGatewaysCommand";
897909
import { DescribeIpamPoolsCommandInput, DescribeIpamPoolsCommandOutput } from "./commands/DescribeIpamPoolsCommand";
910+
import {
911+
DescribeIpamResourceDiscoveriesCommandInput,
912+
DescribeIpamResourceDiscoveriesCommandOutput,
913+
} from "./commands/DescribeIpamResourceDiscoveriesCommand";
914+
import {
915+
DescribeIpamResourceDiscoveryAssociationsCommandInput,
916+
DescribeIpamResourceDiscoveryAssociationsCommandOutput,
917+
} from "./commands/DescribeIpamResourceDiscoveryAssociationsCommand";
898918
import { DescribeIpamsCommandInput, DescribeIpamsCommandOutput } from "./commands/DescribeIpamsCommand";
899919
import { DescribeIpamScopesCommandInput, DescribeIpamScopesCommandOutput } from "./commands/DescribeIpamScopesCommand";
900920
import { DescribeIpv6PoolsCommandInput, DescribeIpv6PoolsCommandOutput } from "./commands/DescribeIpv6PoolsCommand";
@@ -1300,6 +1320,10 @@ import {
13001320
DisassociateInstanceEventWindowCommandInput,
13011321
DisassociateInstanceEventWindowCommandOutput,
13021322
} from "./commands/DisassociateInstanceEventWindowCommand";
1323+
import {
1324+
DisassociateIpamResourceDiscoveryCommandInput,
1325+
DisassociateIpamResourceDiscoveryCommandOutput,
1326+
} from "./commands/DisassociateIpamResourceDiscoveryCommand";
13031327
import {
13041328
DisassociateRouteTableCommandInput,
13051329
DisassociateRouteTableCommandOutput,
@@ -1449,6 +1473,14 @@ import {
14491473
GetIpamAddressHistoryCommandInput,
14501474
GetIpamAddressHistoryCommandOutput,
14511475
} from "./commands/GetIpamAddressHistoryCommand";
1476+
import {
1477+
GetIpamDiscoveredAccountsCommandInput,
1478+
GetIpamDiscoveredAccountsCommandOutput,
1479+
} from "./commands/GetIpamDiscoveredAccountsCommand";
1480+
import {
1481+
GetIpamDiscoveredResourceCidrsCommandInput,
1482+
GetIpamDiscoveredResourceCidrsCommandOutput,
1483+
} from "./commands/GetIpamDiscoveredResourceCidrsCommand";
14521484
import {
14531485
GetIpamPoolAllocationsCommandInput,
14541486
GetIpamPoolAllocationsCommandOutput,
@@ -1637,6 +1669,10 @@ import {
16371669
ModifyIpamResourceCidrCommandInput,
16381670
ModifyIpamResourceCidrCommandOutput,
16391671
} from "./commands/ModifyIpamResourceCidrCommand";
1672+
import {
1673+
ModifyIpamResourceDiscoveryCommandInput,
1674+
ModifyIpamResourceDiscoveryCommandOutput,
1675+
} from "./commands/ModifyIpamResourceDiscoveryCommand";
16401676
import { ModifyIpamScopeCommandInput, ModifyIpamScopeCommandOutput } from "./commands/ModifyIpamScopeCommand";
16411677
import {
16421678
ModifyLaunchTemplateCommandInput,
@@ -2019,6 +2055,7 @@ export type ServiceInputTypes =
20192055
| AssociateEnclaveCertificateIamRoleCommandInput
20202056
| AssociateIamInstanceProfileCommandInput
20212057
| AssociateInstanceEventWindowCommandInput
2058+
| AssociateIpamResourceDiscoveryCommandInput
20222059
| AssociateRouteTableCommandInput
20232060
| AssociateSubnetCidrBlockCommandInput
20242061
| AssociateTransitGatewayMulticastDomainCommandInput
@@ -2071,6 +2108,7 @@ export type ServiceInputTypes =
20712108
| CreateInternetGatewayCommandInput
20722109
| CreateIpamCommandInput
20732110
| CreateIpamPoolCommandInput
2111+
| CreateIpamResourceDiscoveryCommandInput
20742112
| CreateIpamScopeCommandInput
20752113
| CreateKeyPairCommandInput
20762114
| CreateLaunchTemplateCommandInput
@@ -2145,6 +2183,7 @@ export type ServiceInputTypes =
21452183
| DeleteInternetGatewayCommandInput
21462184
| DeleteIpamCommandInput
21472185
| DeleteIpamPoolCommandInput
2186+
| DeleteIpamResourceDiscoveryCommandInput
21482187
| DeleteIpamScopeCommandInput
21492188
| DeleteKeyPairCommandInput
21502189
| DeleteLaunchTemplateCommandInput
@@ -2263,6 +2302,8 @@ export type ServiceInputTypes =
22632302
| DescribeInstancesCommandInput
22642303
| DescribeInternetGatewaysCommandInput
22652304
| DescribeIpamPoolsCommandInput
2305+
| DescribeIpamResourceDiscoveriesCommandInput
2306+
| DescribeIpamResourceDiscoveryAssociationsCommandInput
22662307
| DescribeIpamScopesCommandInput
22672308
| DescribeIpamsCommandInput
22682309
| DescribeIpv6PoolsCommandInput
@@ -2374,6 +2415,7 @@ export type ServiceInputTypes =
23742415
| DisassociateEnclaveCertificateIamRoleCommandInput
23752416
| DisassociateIamInstanceProfileCommandInput
23762417
| DisassociateInstanceEventWindowCommandInput
2418+
| DisassociateIpamResourceDiscoveryCommandInput
23772419
| DisassociateRouteTableCommandInput
23782420
| DisassociateSubnetCidrBlockCommandInput
23792421
| DisassociateTransitGatewayMulticastDomainCommandInput
@@ -2415,6 +2457,8 @@ export type ServiceInputTypes =
24152457
| GetInstanceTypesFromInstanceRequirementsCommandInput
24162458
| GetInstanceUefiDataCommandInput
24172459
| GetIpamAddressHistoryCommandInput
2460+
| GetIpamDiscoveredAccountsCommandInput
2461+
| GetIpamDiscoveredResourceCidrsCommandInput
24182462
| GetIpamPoolAllocationsCommandInput
24192463
| GetIpamPoolCidrsCommandInput
24202464
| GetIpamResourceCidrsCommandInput
@@ -2471,6 +2515,7 @@ export type ServiceInputTypes =
24712515
| ModifyIpamCommandInput
24722516
| ModifyIpamPoolCommandInput
24732517
| ModifyIpamResourceCidrCommandInput
2518+
| ModifyIpamResourceDiscoveryCommandInput
24742519
| ModifyIpamScopeCommandInput
24752520
| ModifyLaunchTemplateCommandInput
24762521
| ModifyLocalGatewayRouteCommandInput
@@ -2597,6 +2642,7 @@ export type ServiceOutputTypes =
25972642
| AssociateEnclaveCertificateIamRoleCommandOutput
25982643
| AssociateIamInstanceProfileCommandOutput
25992644
| AssociateInstanceEventWindowCommandOutput
2645+
| AssociateIpamResourceDiscoveryCommandOutput
26002646
| AssociateRouteTableCommandOutput
26012647
| AssociateSubnetCidrBlockCommandOutput
26022648
| AssociateTransitGatewayMulticastDomainCommandOutput
@@ -2649,6 +2695,7 @@ export type ServiceOutputTypes =
26492695
| CreateInternetGatewayCommandOutput
26502696
| CreateIpamCommandOutput
26512697
| CreateIpamPoolCommandOutput
2698+
| CreateIpamResourceDiscoveryCommandOutput
26522699
| CreateIpamScopeCommandOutput
26532700
| CreateKeyPairCommandOutput
26542701
| CreateLaunchTemplateCommandOutput
@@ -2723,6 +2770,7 @@ export type ServiceOutputTypes =
27232770
| DeleteInternetGatewayCommandOutput
27242771
| DeleteIpamCommandOutput
27252772
| DeleteIpamPoolCommandOutput
2773+
| DeleteIpamResourceDiscoveryCommandOutput
27262774
| DeleteIpamScopeCommandOutput
27272775
| DeleteKeyPairCommandOutput
27282776
| DeleteLaunchTemplateCommandOutput
@@ -2841,6 +2889,8 @@ export type ServiceOutputTypes =
28412889
| DescribeInstancesCommandOutput
28422890
| DescribeInternetGatewaysCommandOutput
28432891
| DescribeIpamPoolsCommandOutput
2892+
| DescribeIpamResourceDiscoveriesCommandOutput
2893+
| DescribeIpamResourceDiscoveryAssociationsCommandOutput
28442894
| DescribeIpamScopesCommandOutput
28452895
| DescribeIpamsCommandOutput
28462896
| DescribeIpv6PoolsCommandOutput
@@ -2952,6 +3002,7 @@ export type ServiceOutputTypes =
29523002
| DisassociateEnclaveCertificateIamRoleCommandOutput
29533003
| DisassociateIamInstanceProfileCommandOutput
29543004
| DisassociateInstanceEventWindowCommandOutput
3005+
| DisassociateIpamResourceDiscoveryCommandOutput
29553006
| DisassociateRouteTableCommandOutput
29563007
| DisassociateSubnetCidrBlockCommandOutput
29573008
| DisassociateTransitGatewayMulticastDomainCommandOutput
@@ -2993,6 +3044,8 @@ export type ServiceOutputTypes =
29933044
| GetInstanceTypesFromInstanceRequirementsCommandOutput
29943045
| GetInstanceUefiDataCommandOutput
29953046
| GetIpamAddressHistoryCommandOutput
3047+
| GetIpamDiscoveredAccountsCommandOutput
3048+
| GetIpamDiscoveredResourceCidrsCommandOutput
29963049
| GetIpamPoolAllocationsCommandOutput
29973050
| GetIpamPoolCidrsCommandOutput
29983051
| GetIpamResourceCidrsCommandOutput
@@ -3049,6 +3102,7 @@ export type ServiceOutputTypes =
30493102
| ModifyIpamCommandOutput
30503103
| ModifyIpamPoolCommandOutput
30513104
| ModifyIpamResourceCidrCommandOutput
3105+
| ModifyIpamResourceDiscoveryCommandOutput
30523106
| ModifyIpamScopeCommandOutput
30533107
| ModifyLaunchTemplateCommandOutput
30543108
| ModifyLocalGatewayRouteCommandOutput

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export interface AllocateIpamPoolCidrCommandInput extends AllocateIpamPoolCidrRe
2929
export interface AllocateIpamPoolCidrCommandOutput extends AllocateIpamPoolCidrResult, __MetadataBearer {}
3030

3131
/**
32-
* <p>Allocate a CIDR from an IPAM pool. In IPAM, an allocation is a CIDR assignment from an IPAM pool to another resource or IPAM pool. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/allocate-cidrs-ipam.html">Allocate CIDRs</a> in the <i>Amazon VPC IPAM User Guide</i>.
32+
* <p>Allocate a CIDR from an IPAM pool. In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool or to a resource. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/allocate-cidrs-ipam.html">Allocate CIDRs</a> in the <i>Amazon VPC IPAM User Guide</i>.
3333
* </p>
3434
* @example
3535
* Use a bare-bones client and the command you need to make an API call.
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
// smithy-typescript generated code
2+
import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
3+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
4+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
5+
import { Command as $Command } from "@aws-sdk/smithy-client";
6+
import {
7+
FinalizeHandlerArguments,
8+
Handler,
9+
HandlerExecutionContext,
10+
HttpHandlerOptions as __HttpHandlerOptions,
11+
MetadataBearer as __MetadataBearer,
12+
MiddlewareStack,
13+
SerdeContext as __SerdeContext,
14+
} from "@aws-sdk/types";
15+
16+
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
17+
import {
18+
AssociateIpamResourceDiscoveryRequest,
19+
AssociateIpamResourceDiscoveryRequestFilterSensitiveLog,
20+
AssociateIpamResourceDiscoveryResult,
21+
AssociateIpamResourceDiscoveryResultFilterSensitiveLog,
22+
} from "../models/models_0";
23+
import {
24+
deserializeAws_ec2AssociateIpamResourceDiscoveryCommand,
25+
serializeAws_ec2AssociateIpamResourceDiscoveryCommand,
26+
} from "../protocols/Aws_ec2";
27+
28+
export interface AssociateIpamResourceDiscoveryCommandInput extends AssociateIpamResourceDiscoveryRequest {}
29+
export interface AssociateIpamResourceDiscoveryCommandOutput
30+
extends AssociateIpamResourceDiscoveryResult,
31+
__MetadataBearer {}
32+
33+
/**
34+
* <p>Associates an IPAM resource discovery with an Amazon VPC IPAM. A resource discovery is an IPAM component that enables IPAM Service to manage and monitor resources that belong to the owning account.</p>
35+
* @example
36+
* Use a bare-bones client and the command you need to make an API call.
37+
* ```javascript
38+
* import { EC2Client, AssociateIpamResourceDiscoveryCommand } from "@aws-sdk/client-ec2"; // ES Modules import
39+
* // const { EC2Client, AssociateIpamResourceDiscoveryCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
40+
* const client = new EC2Client(config);
41+
* const command = new AssociateIpamResourceDiscoveryCommand(input);
42+
* const response = await client.send(command);
43+
* ```
44+
*
45+
* @see {@link AssociateIpamResourceDiscoveryCommandInput} for command's `input` shape.
46+
* @see {@link AssociateIpamResourceDiscoveryCommandOutput} for command's `response` shape.
47+
* @see {@link EC2ClientResolvedConfig | config} for EC2Client's `config` shape.
48+
*
49+
*/
50+
export class AssociateIpamResourceDiscoveryCommand extends $Command<
51+
AssociateIpamResourceDiscoveryCommandInput,
52+
AssociateIpamResourceDiscoveryCommandOutput,
53+
EC2ClientResolvedConfig
54+
> {
55+
// Start section: command_properties
56+
// End section: command_properties
57+
58+
public static getEndpointParameterInstructions(): EndpointParameterInstructions {
59+
return {
60+
UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
61+
Endpoint: { type: "builtInParams", name: "endpoint" },
62+
Region: { type: "builtInParams", name: "region" },
63+
UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
64+
};
65+
}
66+
67+
constructor(readonly input: AssociateIpamResourceDiscoveryCommandInput) {
68+
// Start section: command_constructor
69+
super();
70+
// End section: command_constructor
71+
}
72+
73+
/**
74+
* @internal
75+
*/
76+
resolveMiddleware(
77+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
78+
configuration: EC2ClientResolvedConfig,
79+
options?: __HttpHandlerOptions
80+
): Handler<AssociateIpamResourceDiscoveryCommandInput, AssociateIpamResourceDiscoveryCommandOutput> {
81+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
82+
this.middlewareStack.use(
83+
getEndpointPlugin(configuration, AssociateIpamResourceDiscoveryCommand.getEndpointParameterInstructions())
84+
);
85+
86+
const stack = clientStack.concat(this.middlewareStack);
87+
88+
const { logger } = configuration;
89+
const clientName = "EC2Client";
90+
const commandName = "AssociateIpamResourceDiscoveryCommand";
91+
const handlerExecutionContext: HandlerExecutionContext = {
92+
logger,
93+
clientName,
94+
commandName,
95+
inputFilterSensitiveLog: AssociateIpamResourceDiscoveryRequestFilterSensitiveLog,
96+
outputFilterSensitiveLog: AssociateIpamResourceDiscoveryResultFilterSensitiveLog,
97+
};
98+
const { requestHandler } = configuration;
99+
return stack.resolve(
100+
(request: FinalizeHandlerArguments<any>) =>
101+
requestHandler.handle(request.request as __HttpRequest, options || {}),
102+
handlerExecutionContext
103+
);
104+
}
105+
106+
private serialize(
107+
input: AssociateIpamResourceDiscoveryCommandInput,
108+
context: __SerdeContext
109+
): Promise<__HttpRequest> {
110+
return serializeAws_ec2AssociateIpamResourceDiscoveryCommand(input, context);
111+
}
112+
113+
private deserialize(
114+
output: __HttpResponse,
115+
context: __SerdeContext
116+
): Promise<AssociateIpamResourceDiscoveryCommandOutput> {
117+
return deserializeAws_ec2AssociateIpamResourceDiscoveryCommand(output, context);
118+
}
119+
120+
// Start section: command_body_extra
121+
// End section: command_body_extra
122+
}

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@ import {
1414
} from "@aws-sdk/types";
1515

1616
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
17-
import {
18-
CreateClientVpnRouteRequest,
19-
CreateClientVpnRouteRequestFilterSensitiveLog,
20-
CreateClientVpnRouteResult,
21-
CreateClientVpnRouteResultFilterSensitiveLog,
22-
} from "../models/models_0";
17+
import { CreateClientVpnRouteRequest, CreateClientVpnRouteRequestFilterSensitiveLog } from "../models/models_0";
18+
import { CreateClientVpnRouteResult, CreateClientVpnRouteResultFilterSensitiveLog } from "../models/models_1";
2319
import {
2420
deserializeAws_ec2CreateClientVpnRouteCommand,
2521
serializeAws_ec2CreateClientVpnRouteCommand,

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ import {
1414
} from "@aws-sdk/types";
1515

1616
import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
17-
import { CreateCoipCidrRequest, CreateCoipCidrRequestFilterSensitiveLog } from "../models/models_0";
18-
import { CreateCoipCidrResult, CreateCoipCidrResultFilterSensitiveLog } from "../models/models_1";
17+
import {
18+
CreateCoipCidrRequest,
19+
CreateCoipCidrRequestFilterSensitiveLog,
20+
CreateCoipCidrResult,
21+
CreateCoipCidrResultFilterSensitiveLog,
22+
} from "../models/models_1";
1923
import { deserializeAws_ec2CreateCoipCidrCommand, serializeAws_ec2CreateCoipCidrCommand } from "../protocols/Aws_ec2";
2024

2125
export interface CreateCoipCidrCommandInput extends CreateCoipCidrRequest {}

0 commit comments

Comments
 (0)