Skip to content

Commit

Permalink
feat(client-ec2): This release includes a new API for retrieving the …
Browse files Browse the repository at this point in the history
…public endorsement key of the EC2 instance's Nitro Trusted Platform Module (NitroTPM).
  • Loading branch information
awstools committed May 2, 2024
1 parent 1d48d02 commit 0903d38
Show file tree
Hide file tree
Showing 13 changed files with 710 additions and 261 deletions.
8 changes: 8 additions & 0 deletions clients/client-ec2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3749,6 +3749,14 @@ GetInstanceMetadataDefaults

[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>
GetInstanceTpmEkPub
</summary>

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

</details>
<details>
<summary>
Expand Down
23 changes: 23 additions & 0 deletions clients/client-ec2/src/EC2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2165,6 +2165,11 @@ import {
GetInstanceMetadataDefaultsCommandInput,
GetInstanceMetadataDefaultsCommandOutput,
} from "./commands/GetInstanceMetadataDefaultsCommand";
import {
GetInstanceTpmEkPubCommand,
GetInstanceTpmEkPubCommandInput,
GetInstanceTpmEkPubCommandOutput,
} from "./commands/GetInstanceTpmEkPubCommand";
import {
GetInstanceTypesFromInstanceRequirementsCommand,
GetInstanceTypesFromInstanceRequirementsCommandInput,
Expand Down Expand Up @@ -3480,6 +3485,7 @@ const commands = {
GetHostReservationPurchasePreviewCommand,
GetImageBlockPublicAccessStateCommand,
GetInstanceMetadataDefaultsCommand,
GetInstanceTpmEkPubCommand,
GetInstanceTypesFromInstanceRequirementsCommand,
GetInstanceUefiDataCommand,
GetIpamAddressHistoryCommand,
Expand Down Expand Up @@ -11108,6 +11114,23 @@ export interface EC2 {
cb: (err: any, data?: GetInstanceMetadataDefaultsCommandOutput) => void
): void;

/**
* @see {@link GetInstanceTpmEkPubCommand}
*/
getInstanceTpmEkPub(
args: GetInstanceTpmEkPubCommandInput,
options?: __HttpHandlerOptions
): Promise<GetInstanceTpmEkPubCommandOutput>;
getInstanceTpmEkPub(
args: GetInstanceTpmEkPubCommandInput,
cb: (err: any, data?: GetInstanceTpmEkPubCommandOutput) => void
): void;
getInstanceTpmEkPub(
args: GetInstanceTpmEkPubCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: GetInstanceTpmEkPubCommandOutput) => void
): void;

/**
* @see {@link GetInstanceTypesFromInstanceRequirementsCommand}
*/
Expand Down
6 changes: 6 additions & 0 deletions clients/client-ec2/src/EC2Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1549,6 +1549,10 @@ import {
GetInstanceMetadataDefaultsCommandInput,
GetInstanceMetadataDefaultsCommandOutput,
} from "./commands/GetInstanceMetadataDefaultsCommand";
import {
GetInstanceTpmEkPubCommandInput,
GetInstanceTpmEkPubCommandOutput,
} from "./commands/GetInstanceTpmEkPubCommand";
import {
GetInstanceTypesFromInstanceRequirementsCommandInput,
GetInstanceTypesFromInstanceRequirementsCommandOutput,
Expand Down Expand Up @@ -2607,6 +2611,7 @@ export type ServiceInputTypes =
| GetHostReservationPurchasePreviewCommandInput
| GetImageBlockPublicAccessStateCommandInput
| GetInstanceMetadataDefaultsCommandInput
| GetInstanceTpmEkPubCommandInput
| GetInstanceTypesFromInstanceRequirementsCommandInput
| GetInstanceUefiDataCommandInput
| GetIpamAddressHistoryCommandInput
Expand Down Expand Up @@ -3232,6 +3237,7 @@ export type ServiceOutputTypes =
| GetHostReservationPurchasePreviewCommandOutput
| GetImageBlockPublicAccessStateCommandOutput
| GetInstanceMetadataDefaultsCommandOutput
| GetInstanceTpmEkPubCommandOutput
| GetInstanceTypesFromInstanceRequirementsCommandOutput
| GetInstanceUefiDataCommandOutput
| GetIpamAddressHistoryCommandOutput
Expand Down
92 changes: 92 additions & 0 deletions clients/client-ec2/src/commands/GetInstanceTpmEkPubCommand.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
// 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 {
GetInstanceTpmEkPubRequest,
GetInstanceTpmEkPubResult,
GetInstanceTpmEkPubResultFilterSensitiveLog,
} from "../models/models_5";
import { de_GetInstanceTpmEkPubCommand, se_GetInstanceTpmEkPubCommand } from "../protocols/Aws_ec2";

/**
* @public
*/
export { __MetadataBearer, $Command };
/**
* @public
*
* The input for {@link GetInstanceTpmEkPubCommand}.
*/
export interface GetInstanceTpmEkPubCommandInput extends GetInstanceTpmEkPubRequest {}
/**
* @public
*
* The output of {@link GetInstanceTpmEkPubCommand}.
*/
export interface GetInstanceTpmEkPubCommandOutput extends GetInstanceTpmEkPubResult, __MetadataBearer {}

/**
* <p>Gets the public endorsement key associated with the Nitro Trusted
* Platform Module (NitroTPM) for the specified instance.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { EC2Client, GetInstanceTpmEkPubCommand } from "@aws-sdk/client-ec2"; // ES Modules import
* // const { EC2Client, GetInstanceTpmEkPubCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
* const client = new EC2Client(config);
* const input = { // GetInstanceTpmEkPubRequest
* InstanceId: "STRING_VALUE", // required
* KeyType: "rsa-2048" || "ecc-sec-p384", // required
* KeyFormat: "der" || "tpmt", // required
* DryRun: true || false,
* };
* const command = new GetInstanceTpmEkPubCommand(input);
* const response = await client.send(command);
* // { // GetInstanceTpmEkPubResult
* // InstanceId: "STRING_VALUE",
* // KeyType: "rsa-2048" || "ecc-sec-p384",
* // KeyFormat: "der" || "tpmt",
* // KeyValue: "STRING_VALUE",
* // };
*
* ```
*
* @param GetInstanceTpmEkPubCommandInput - {@link GetInstanceTpmEkPubCommandInput}
* @returns {@link GetInstanceTpmEkPubCommandOutput}
* @see {@link GetInstanceTpmEkPubCommandInput} for command's `input` shape.
* @see {@link GetInstanceTpmEkPubCommandOutput} 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 GetInstanceTpmEkPubCommand extends $Command
.classBuilder<
GetInstanceTpmEkPubCommandInput,
GetInstanceTpmEkPubCommandOutput,
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", "GetInstanceTpmEkPub", {})
.n("EC2Client", "GetInstanceTpmEkPubCommand")
.f(void 0, GetInstanceTpmEkPubResultFilterSensitiveLog)
.ser(se_GetInstanceTpmEkPubCommand)
.de(de_GetInstanceTpmEkPubCommand)
.build() {}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { GetIpamDiscoveredAccountsRequest } from "../models/models_5";
import { GetIpamDiscoveredAccountsResult } from "../models/models_6";
import { GetIpamDiscoveredAccountsRequest, GetIpamDiscoveredAccountsResult } from "../models/models_6";
import { de_GetIpamDiscoveredAccountsCommand, se_GetIpamDiscoveredAccountsCommand } 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 { ProvisionIpamPoolCidrRequest, ProvisionIpamPoolCidrResult } from "../models/models_6";
import { ProvisionIpamPoolCidrRequest, ProvisionIpamPoolCidrResult } from "../models/models_7";
import { de_ProvisionIpamPoolCidrCommand, se_ProvisionIpamPoolCidrCommand } from "../protocols/Aws_ec2";

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

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { ProvisionPublicIpv4PoolCidrRequest } from "../models/models_6";
import { ProvisionPublicIpv4PoolCidrResult } from "../models/models_7";
import { ProvisionPublicIpv4PoolCidrRequest, ProvisionPublicIpv4PoolCidrResult } from "../models/models_7";
import { de_ProvisionPublicIpv4PoolCidrCommand, se_ProvisionPublicIpv4PoolCidrCommand } from "../protocols/Aws_ec2";

/**
Expand Down
1 change: 1 addition & 0 deletions clients/client-ec2/src/commands/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,7 @@ export * from "./GetGroupsForCapacityReservationCommand";
export * from "./GetHostReservationPurchasePreviewCommand";
export * from "./GetImageBlockPublicAccessStateCommand";
export * from "./GetInstanceMetadataDefaultsCommand";
export * from "./GetInstanceTpmEkPubCommand";
export * from "./GetInstanceTypesFromInstanceRequirementsCommand";
export * from "./GetInstanceUefiDataCommand";
export * from "./GetIpamAddressHistoryCommand";
Expand Down
Loading

0 comments on commit 0903d38

Please sign in to comment.