Skip to content

Commit

Permalink
feat(client-ec2): Added support for ModifyInstanceMetadataDefaults an…
Browse files Browse the repository at this point in the history
…d GetInstanceMetadataDefaults to set Instance Metadata Service account defaults
  • Loading branch information
awstools committed Mar 25, 2024
1 parent 92aa194 commit cdacf23
Show file tree
Hide file tree
Showing 17 changed files with 1,184 additions and 304 deletions.
16 changes: 16 additions & 0 deletions clients/client-ec2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3725,6 +3725,14 @@ GetImageBlockPublicAccessState

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/GetImageBlockPublicAccessStateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/GetImageBlockPublicAccessStateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/GetImageBlockPublicAccessStateCommandOutput/)

</details>
<details>
<summary>
GetInstanceMetadataDefaults
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/GetInstanceMetadataDefaultsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/GetInstanceMetadataDefaultsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/GetInstanceMetadataDefaultsCommandOutput/)

</details>
<details>
<summary>
Expand Down Expand Up @@ -4213,6 +4221,14 @@ ModifyInstanceMaintenanceOptions

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/ModifyInstanceMaintenanceOptionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/ModifyInstanceMaintenanceOptionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/ModifyInstanceMaintenanceOptionsCommandOutput/)

</details>
<details>
<summary>
ModifyInstanceMetadataDefaults
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ec2/command/ModifyInstanceMetadataDefaultsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/ModifyInstanceMetadataDefaultsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ec2/Interface/ModifyInstanceMetadataDefaultsCommandOutput/)

</details>
<details>
<summary>
Expand Down
48 changes: 48 additions & 0 deletions clients/client-ec2/src/EC2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2150,6 +2150,11 @@ import {
GetImageBlockPublicAccessStateCommandInput,
GetImageBlockPublicAccessStateCommandOutput,
} from "./commands/GetImageBlockPublicAccessStateCommand";
import {
GetInstanceMetadataDefaultsCommand,
GetInstanceMetadataDefaultsCommandInput,
GetInstanceMetadataDefaultsCommandOutput,
} from "./commands/GetInstanceMetadataDefaultsCommand";
import {
GetInstanceTypesFromInstanceRequirementsCommand,
GetInstanceTypesFromInstanceRequirementsCommandInput,
Expand Down Expand Up @@ -2443,6 +2448,11 @@ import {
ModifyInstanceMaintenanceOptionsCommandInput,
ModifyInstanceMaintenanceOptionsCommandOutput,
} from "./commands/ModifyInstanceMaintenanceOptionsCommand";
import {
ModifyInstanceMetadataDefaultsCommand,
ModifyInstanceMetadataDefaultsCommandInput,
ModifyInstanceMetadataDefaultsCommandOutput,
} from "./commands/ModifyInstanceMetadataDefaultsCommand";
import {
ModifyInstanceMetadataOptionsCommand,
ModifyInstanceMetadataOptionsCommandInput,
Expand Down Expand Up @@ -3457,6 +3467,7 @@ const commands = {
GetGroupsForCapacityReservationCommand,
GetHostReservationPurchasePreviewCommand,
GetImageBlockPublicAccessStateCommand,
GetInstanceMetadataDefaultsCommand,
GetInstanceTypesFromInstanceRequirementsCommand,
GetInstanceUefiDataCommand,
GetIpamAddressHistoryCommand,
Expand Down Expand Up @@ -3518,6 +3529,7 @@ const commands = {
ModifyInstanceEventStartTimeCommand,
ModifyInstanceEventWindowCommand,
ModifyInstanceMaintenanceOptionsCommand,
ModifyInstanceMetadataDefaultsCommand,
ModifyInstanceMetadataOptionsCommand,
ModifyInstancePlacementCommand,
ModifyIpamCommand,
Expand Down Expand Up @@ -11032,6 +11044,24 @@ export interface EC2 {
cb: (err: any, data?: GetImageBlockPublicAccessStateCommandOutput) => void
): void;

/**
* @see {@link GetInstanceMetadataDefaultsCommand}
*/
getInstanceMetadataDefaults(): Promise<GetInstanceMetadataDefaultsCommandOutput>;
getInstanceMetadataDefaults(
args: GetInstanceMetadataDefaultsCommandInput,
options?: __HttpHandlerOptions
): Promise<GetInstanceMetadataDefaultsCommandOutput>;
getInstanceMetadataDefaults(
args: GetInstanceMetadataDefaultsCommandInput,
cb: (err: any, data?: GetInstanceMetadataDefaultsCommandOutput) => void
): void;
getInstanceMetadataDefaults(
args: GetInstanceMetadataDefaultsCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: GetInstanceMetadataDefaultsCommandOutput) => void
): void;

/**
* @see {@link GetInstanceTypesFromInstanceRequirementsCommand}
*/
Expand Down Expand Up @@ -12028,6 +12058,24 @@ export interface EC2 {
cb: (err: any, data?: ModifyInstanceMaintenanceOptionsCommandOutput) => void
): void;

/**
* @see {@link ModifyInstanceMetadataDefaultsCommand}
*/
modifyInstanceMetadataDefaults(): Promise<ModifyInstanceMetadataDefaultsCommandOutput>;
modifyInstanceMetadataDefaults(
args: ModifyInstanceMetadataDefaultsCommandInput,
options?: __HttpHandlerOptions
): Promise<ModifyInstanceMetadataDefaultsCommandOutput>;
modifyInstanceMetadataDefaults(
args: ModifyInstanceMetadataDefaultsCommandInput,
cb: (err: any, data?: ModifyInstanceMetadataDefaultsCommandOutput) => void
): void;
modifyInstanceMetadataDefaults(
args: ModifyInstanceMetadataDefaultsCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: ModifyInstanceMetadataDefaultsCommandOutput) => void
): void;

/**
* @see {@link ModifyInstanceMetadataOptionsCommand}
*/
Expand Down
12 changes: 12 additions & 0 deletions clients/client-ec2/src/EC2Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1537,6 +1537,10 @@ import {
GetImageBlockPublicAccessStateCommandInput,
GetImageBlockPublicAccessStateCommandOutput,
} from "./commands/GetImageBlockPublicAccessStateCommand";
import {
GetInstanceMetadataDefaultsCommandInput,
GetInstanceMetadataDefaultsCommandOutput,
} from "./commands/GetInstanceMetadataDefaultsCommand";
import {
GetInstanceTypesFromInstanceRequirementsCommandInput,
GetInstanceTypesFromInstanceRequirementsCommandOutput,
Expand Down Expand Up @@ -1748,6 +1752,10 @@ import {
ModifyInstanceMaintenanceOptionsCommandInput,
ModifyInstanceMaintenanceOptionsCommandOutput,
} from "./commands/ModifyInstanceMaintenanceOptionsCommand";
import {
ModifyInstanceMetadataDefaultsCommandInput,
ModifyInstanceMetadataDefaultsCommandOutput,
} from "./commands/ModifyInstanceMetadataDefaultsCommand";
import {
ModifyInstanceMetadataOptionsCommandInput,
ModifyInstanceMetadataOptionsCommandOutput,
Expand Down Expand Up @@ -2588,6 +2596,7 @@ export type ServiceInputTypes =
| GetGroupsForCapacityReservationCommandInput
| GetHostReservationPurchasePreviewCommandInput
| GetImageBlockPublicAccessStateCommandInput
| GetInstanceMetadataDefaultsCommandInput
| GetInstanceTypesFromInstanceRequirementsCommandInput
| GetInstanceUefiDataCommandInput
| GetIpamAddressHistoryCommandInput
Expand Down Expand Up @@ -2649,6 +2658,7 @@ export type ServiceInputTypes =
| ModifyInstanceEventStartTimeCommandInput
| ModifyInstanceEventWindowCommandInput
| ModifyInstanceMaintenanceOptionsCommandInput
| ModifyInstanceMetadataDefaultsCommandInput
| ModifyInstanceMetadataOptionsCommandInput
| ModifyInstancePlacementCommandInput
| ModifyIpamCommandInput
Expand Down Expand Up @@ -3209,6 +3219,7 @@ export type ServiceOutputTypes =
| GetGroupsForCapacityReservationCommandOutput
| GetHostReservationPurchasePreviewCommandOutput
| GetImageBlockPublicAccessStateCommandOutput
| GetInstanceMetadataDefaultsCommandOutput
| GetInstanceTypesFromInstanceRequirementsCommandOutput
| GetInstanceUefiDataCommandOutput
| GetIpamAddressHistoryCommandOutput
Expand Down Expand Up @@ -3270,6 +3281,7 @@ export type ServiceOutputTypes =
| ModifyInstanceEventStartTimeCommandOutput
| ModifyInstanceEventWindowCommandOutput
| ModifyInstanceMaintenanceOptionsCommandOutput
| ModifyInstanceMetadataDefaultsCommandOutput
| ModifyInstanceMetadataOptionsCommandOutput
| ModifyInstancePlacementCommandOutput
| ModifyIpamCommandOutput
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
// smithy-typescript generated code
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
import { getSerdePlugin } from "@smithy/middleware-serde";
import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { GetInstanceMetadataDefaultsRequest, GetInstanceMetadataDefaultsResult } from "../models/models_5";
import { de_GetInstanceMetadataDefaultsCommand, se_GetInstanceMetadataDefaultsCommand } from "../protocols/Aws_ec2";

/**
* @public
*/
export { __MetadataBearer, $Command };
/**
* @public
*
* The input for {@link GetInstanceMetadataDefaultsCommand}.
*/
export interface GetInstanceMetadataDefaultsCommandInput extends GetInstanceMetadataDefaultsRequest {}
/**
* @public
*
* The output of {@link GetInstanceMetadataDefaultsCommand}.
*/
export interface GetInstanceMetadataDefaultsCommandOutput extends GetInstanceMetadataDefaultsResult, __MetadataBearer {}

/**
* <p>Gets the default instance metadata service (IMDS) settings that are set at the account
* level in the specified Amazon Web Services
 Region.</p>
* <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence">Order of precedence for instance metadata options</a> in the
* <i>Amazon EC2 User Guide</i>.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { EC2Client, GetInstanceMetadataDefaultsCommand } from "@aws-sdk/client-ec2"; // ES Modules import
* // const { EC2Client, GetInstanceMetadataDefaultsCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
* const client = new EC2Client(config);
* const input = { // GetInstanceMetadataDefaultsRequest
* DryRun: true || false,
* };
* const command = new GetInstanceMetadataDefaultsCommand(input);
* const response = await client.send(command);
* // { // GetInstanceMetadataDefaultsResult
* // AccountLevel: { // InstanceMetadataDefaultsResponse
* // HttpTokens: "optional" || "required",
* // HttpPutResponseHopLimit: Number("int"),
* // HttpEndpoint: "disabled" || "enabled",
* // InstanceMetadataTags: "disabled" || "enabled",
* // },
* // };
*
* ```
*
* @param GetInstanceMetadataDefaultsCommandInput - {@link GetInstanceMetadataDefaultsCommandInput}
* @returns {@link GetInstanceMetadataDefaultsCommandOutput}
* @see {@link GetInstanceMetadataDefaultsCommandInput} for command's `input` shape.
* @see {@link GetInstanceMetadataDefaultsCommandOutput} for command's `response` shape.
* @see {@link EC2ClientResolvedConfig | config} for EC2Client's `config` shape.
*
* @throws {@link EC2ServiceException}
* <p>Base exception class for all service exceptions from EC2 service.</p>
*
* @public
*/
export class GetInstanceMetadataDefaultsCommand extends $Command
.classBuilder<
GetInstanceMetadataDefaultsCommandInput,
GetInstanceMetadataDefaultsCommandOutput,
EC2ClientResolvedConfig,
ServiceInputTypes,
ServiceOutputTypes
>()
.ep({
...commonParams,
})
.m(function (this: any, Command: any, cs: any, config: EC2ClientResolvedConfig, o: any) {
return [
getSerdePlugin(config, this.serialize, this.deserialize),
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
];
})
.s("AmazonEC2", "GetInstanceMetadataDefaults", {})
.n("EC2Client", "GetInstanceMetadataDefaultsCommand")
.f(void 0, void 0)
.ser(se_GetInstanceMetadataDefaultsCommand)
.de(de_GetInstanceMetadataDefaultsCommand)
.build() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// smithy-typescript generated code
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
import { getSerdePlugin } from "@smithy/middleware-serde";
import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { ModifyInstanceMetadataDefaultsRequest, ModifyInstanceMetadataDefaultsResult } from "../models/models_6";
import {
de_ModifyInstanceMetadataDefaultsCommand,
se_ModifyInstanceMetadataDefaultsCommand,
} from "../protocols/Aws_ec2";

/**
* @public
*/
export { __MetadataBearer, $Command };
/**
* @public
*
* The input for {@link ModifyInstanceMetadataDefaultsCommand}.
*/
export interface ModifyInstanceMetadataDefaultsCommandInput extends ModifyInstanceMetadataDefaultsRequest {}
/**
* @public
*
* The output of {@link ModifyInstanceMetadataDefaultsCommand}.
*/
export interface ModifyInstanceMetadataDefaultsCommandOutput
extends ModifyInstanceMetadataDefaultsResult,
__MetadataBearer {}

/**
* <p>Modifies the default instance metadata service (IMDS) settings at the account level in
* the specified Amazon Web Services
 Region.</p>
* <note>
* <p>To remove a parameter's account-level default setting, specify
* <code>no-preference</code>. At instance launch, the value will come from the
* AMI, or from the launch parameter if specified. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence">Order of precedence for instance metadata options</a> in the
* <i>Amazon EC2 User Guide</i>.</p>
* </note>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { EC2Client, ModifyInstanceMetadataDefaultsCommand } from "@aws-sdk/client-ec2"; // ES Modules import
* // const { EC2Client, ModifyInstanceMetadataDefaultsCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
* const client = new EC2Client(config);
* const input = { // ModifyInstanceMetadataDefaultsRequest
* HttpTokens: "optional" || "required" || "no-preference",
* HttpPutResponseHopLimit: Number("int"),
* HttpEndpoint: "disabled" || "enabled" || "no-preference",
* InstanceMetadataTags: "disabled" || "enabled" || "no-preference",
* DryRun: true || false,
* };
* const command = new ModifyInstanceMetadataDefaultsCommand(input);
* const response = await client.send(command);
* // { // ModifyInstanceMetadataDefaultsResult
* // Return: true || false,
* // };
*
* ```
*
* @param ModifyInstanceMetadataDefaultsCommandInput - {@link ModifyInstanceMetadataDefaultsCommandInput}
* @returns {@link ModifyInstanceMetadataDefaultsCommandOutput}
* @see {@link ModifyInstanceMetadataDefaultsCommandInput} for command's `input` shape.
* @see {@link ModifyInstanceMetadataDefaultsCommandOutput} for command's `response` shape.
* @see {@link EC2ClientResolvedConfig | config} for EC2Client's `config` shape.
*
* @throws {@link EC2ServiceException}
* <p>Base exception class for all service exceptions from EC2 service.</p>
*
* @public
*/
export class ModifyInstanceMetadataDefaultsCommand extends $Command
.classBuilder<
ModifyInstanceMetadataDefaultsCommandInput,
ModifyInstanceMetadataDefaultsCommandOutput,
EC2ClientResolvedConfig,
ServiceInputTypes,
ServiceOutputTypes
>()
.ep({
...commonParams,
})
.m(function (this: any, Command: any, cs: any, config: EC2ClientResolvedConfig, o: any) {
return [
getSerdePlugin(config, this.serialize, this.deserialize),
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
];
})
.s("AmazonEC2", "ModifyInstanceMetadataDefaults", {})
.n("EC2Client", "ModifyInstanceMetadataDefaultsCommand")
.f(void 0, void 0)
.ser(se_ModifyInstanceMetadataDefaultsCommand)
.de(de_ModifyInstanceMetadataDefaultsCommand)
.build() {}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { PurchaseHostReservationRequest, PurchaseHostReservationResult } from "../models/models_6";
import { PurchaseHostReservationRequest } from "../models/models_6";
import { PurchaseHostReservationResult } from "../models/models_7";
import { de_PurchaseHostReservationCommand, se_PurchaseHostReservationCommand } from "../protocols/Aws_ec2";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { PurchaseReservedInstancesOfferingRequest, PurchaseReservedInstancesOfferingResult } from "../models/models_6";
import { PurchaseReservedInstancesOfferingRequest, PurchaseReservedInstancesOfferingResult } from "../models/models_7";
import {
de_PurchaseReservedInstancesOfferingCommand,
se_PurchaseReservedInstancesOfferingCommand,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { PurchaseScheduledInstancesRequest, PurchaseScheduledInstancesResult } from "../models/models_6";
import { PurchaseScheduledInstancesRequest, PurchaseScheduledInstancesResult } from "../models/models_7";
import { de_PurchaseScheduledInstancesCommand, se_PurchaseScheduledInstancesCommand } from "../protocols/Aws_ec2";

/**
Expand Down
2 changes: 1 addition & 1 deletion clients/client-ec2/src/commands/RebootInstancesCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { RebootInstancesRequest } from "../models/models_6";
import { RebootInstancesRequest } from "../models/models_7";
import { de_RebootInstancesCommand, se_RebootInstancesCommand } from "../protocols/Aws_ec2";

/**
Expand Down
Loading

0 comments on commit cdacf23

Please sign in to comment.