From c02da554c516e74171b5270d66563e519f02c7a8 Mon Sep 17 00:00:00 2001
From: awstools
Date: Mon, 11 Nov 2024 19:12:23 +0000
Subject: [PATCH] feat(client-outposts): This release updates StartCapacityTask
to allow an active Outpost to be modified. It also adds a new API to list all
running EC2 instances on the Outpost.
---
clients/client-outposts/README.md | 16 +
clients/client-outposts/src/Outposts.ts | 46 ++
clients/client-outposts/src/OutpostsClient.ts | 9 +
.../src/commands/GetCapacityTaskCommand.ts | 16 +-
...GetOutpostSupportedInstanceTypesCommand.ts | 9 +-
.../src/commands/ListAssetInstancesCommand.ts | 128 +++++
.../src/commands/ListAssetsCommand.ts | 7 +
...BlockingInstancesForCapacityTaskCommand.ts | 124 ++++
.../src/commands/ListCapacityTasksCommand.ts | 4 +-
.../src/commands/StartCapacityTaskCommand.ts | 32 +-
clients/client-outposts/src/commands/index.ts | 2 +
.../client-outposts/src/models/models_0.ts | 361 +++++++++++-
.../pagination/ListAssetInstancesPaginator.ts | 24 +
...ockingInstancesForCapacityTaskPaginator.ts | 24 +
.../client-outposts/src/pagination/index.ts | 2 +
.../src/protocols/Aws_restJson1.ts | 136 ++++-
codegen/sdk-codegen/aws-models/outposts.json | 539 +++++++++++++++++-
17 files changed, 1448 insertions(+), 31 deletions(-)
create mode 100644 clients/client-outposts/src/commands/ListAssetInstancesCommand.ts
create mode 100644 clients/client-outposts/src/commands/ListBlockingInstancesForCapacityTaskCommand.ts
create mode 100644 clients/client-outposts/src/pagination/ListAssetInstancesPaginator.ts
create mode 100644 clients/client-outposts/src/pagination/ListBlockingInstancesForCapacityTaskPaginator.ts
diff --git a/clients/client-outposts/README.md b/clients/client-outposts/README.md
index d54243c902ad..6b452e9019b5 100644
--- a/clients/client-outposts/README.md
+++ b/clients/client-outposts/README.md
@@ -334,6 +334,14 @@ GetSiteAddress
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/outposts/command/GetSiteAddressCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/GetSiteAddressCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/GetSiteAddressCommandOutput/)
+
+
+
+ListAssetInstances
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/outposts/command/ListAssetInstancesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/ListAssetInstancesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/ListAssetInstancesCommandOutput/)
+
@@ -342,6 +350,14 @@ ListAssets
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/outposts/command/ListAssetsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/ListAssetsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/ListAssetsCommandOutput/)
+
+
+
+ListBlockingInstancesForCapacityTask
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/outposts/command/ListBlockingInstancesForCapacityTaskCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/ListBlockingInstancesForCapacityTaskCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-outposts/Interface/ListBlockingInstancesForCapacityTaskCommandOutput/)
+
diff --git a/clients/client-outposts/src/Outposts.ts b/clients/client-outposts/src/Outposts.ts
index cfd3bec079d0..12398931f239 100644
--- a/clients/client-outposts/src/Outposts.ts
+++ b/clients/client-outposts/src/Outposts.ts
@@ -54,7 +54,17 @@ import {
GetSiteAddressCommandOutput,
} from "./commands/GetSiteAddressCommand";
import { GetSiteCommand, GetSiteCommandInput, GetSiteCommandOutput } from "./commands/GetSiteCommand";
+import {
+ ListAssetInstancesCommand,
+ ListAssetInstancesCommandInput,
+ ListAssetInstancesCommandOutput,
+} from "./commands/ListAssetInstancesCommand";
import { ListAssetsCommand, ListAssetsCommandInput, ListAssetsCommandOutput } from "./commands/ListAssetsCommand";
+import {
+ ListBlockingInstancesForCapacityTaskCommand,
+ ListBlockingInstancesForCapacityTaskCommandInput,
+ ListBlockingInstancesForCapacityTaskCommandOutput,
+} from "./commands/ListBlockingInstancesForCapacityTaskCommand";
import {
ListCapacityTasksCommand,
ListCapacityTasksCommandInput,
@@ -128,7 +138,9 @@ const commands = {
GetOutpostSupportedInstanceTypesCommand,
GetSiteCommand,
GetSiteAddressCommand,
+ ListAssetInstancesCommand,
ListAssetsCommand,
+ ListBlockingInstancesForCapacityTaskCommand,
ListCapacityTasksCommand,
ListCatalogItemsCommand,
ListOrdersCommand,
@@ -349,6 +361,23 @@ export interface Outposts {
cb: (err: any, data?: GetSiteAddressCommandOutput) => void
): void;
+ /**
+ * @see {@link ListAssetInstancesCommand}
+ */
+ listAssetInstances(
+ args: ListAssetInstancesCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listAssetInstances(
+ args: ListAssetInstancesCommandInput,
+ cb: (err: any, data?: ListAssetInstancesCommandOutput) => void
+ ): void;
+ listAssetInstances(
+ args: ListAssetInstancesCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListAssetInstancesCommandOutput) => void
+ ): void;
+
/**
* @see {@link ListAssetsCommand}
*/
@@ -360,6 +389,23 @@ export interface Outposts {
cb: (err: any, data?: ListAssetsCommandOutput) => void
): void;
+ /**
+ * @see {@link ListBlockingInstancesForCapacityTaskCommand}
+ */
+ listBlockingInstancesForCapacityTask(
+ args: ListBlockingInstancesForCapacityTaskCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listBlockingInstancesForCapacityTask(
+ args: ListBlockingInstancesForCapacityTaskCommandInput,
+ cb: (err: any, data?: ListBlockingInstancesForCapacityTaskCommandOutput) => void
+ ): void;
+ listBlockingInstancesForCapacityTask(
+ args: ListBlockingInstancesForCapacityTaskCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListBlockingInstancesForCapacityTaskCommandOutput) => void
+ ): void;
+
/**
* @see {@link ListCapacityTasksCommand}
*/
diff --git a/clients/client-outposts/src/OutpostsClient.ts b/clients/client-outposts/src/OutpostsClient.ts
index 35ee7ce70ed7..84cf0faf42fd 100644
--- a/clients/client-outposts/src/OutpostsClient.ts
+++ b/clients/client-outposts/src/OutpostsClient.ts
@@ -75,7 +75,12 @@ import {
} from "./commands/GetOutpostSupportedInstanceTypesCommand";
import { GetSiteAddressCommandInput, GetSiteAddressCommandOutput } from "./commands/GetSiteAddressCommand";
import { GetSiteCommandInput, GetSiteCommandOutput } from "./commands/GetSiteCommand";
+import { ListAssetInstancesCommandInput, ListAssetInstancesCommandOutput } from "./commands/ListAssetInstancesCommand";
import { ListAssetsCommandInput, ListAssetsCommandOutput } from "./commands/ListAssetsCommand";
+import {
+ ListBlockingInstancesForCapacityTaskCommandInput,
+ ListBlockingInstancesForCapacityTaskCommandOutput,
+} from "./commands/ListBlockingInstancesForCapacityTaskCommand";
import { ListCapacityTasksCommandInput, ListCapacityTasksCommandOutput } from "./commands/ListCapacityTasksCommand";
import { ListCatalogItemsCommandInput, ListCatalogItemsCommandOutput } from "./commands/ListCatalogItemsCommand";
import { ListOrdersCommandInput, ListOrdersCommandOutput } from "./commands/ListOrdersCommand";
@@ -127,7 +132,9 @@ export type ServiceInputTypes =
| GetOutpostSupportedInstanceTypesCommandInput
| GetSiteAddressCommandInput
| GetSiteCommandInput
+ | ListAssetInstancesCommandInput
| ListAssetsCommandInput
+ | ListBlockingInstancesForCapacityTaskCommandInput
| ListCapacityTasksCommandInput
| ListCatalogItemsCommandInput
| ListOrdersCommandInput
@@ -163,7 +170,9 @@ export type ServiceOutputTypes =
| GetOutpostSupportedInstanceTypesCommandOutput
| GetSiteAddressCommandOutput
| GetSiteCommandOutput
+ | ListAssetInstancesCommandOutput
| ListAssetsCommandOutput
+ | ListBlockingInstancesForCapacityTaskCommandOutput
| ListCapacityTasksCommandOutput
| ListCatalogItemsCommandOutput
| ListOrdersCommandOutput
diff --git a/clients/client-outposts/src/commands/GetCapacityTaskCommand.ts b/clients/client-outposts/src/commands/GetCapacityTaskCommand.ts
index f602aa41b7bc..f01be08153ce 100644
--- a/clients/client-outposts/src/commands/GetCapacityTaskCommand.ts
+++ b/clients/client-outposts/src/commands/GetCapacityTaskCommand.ts
@@ -51,15 +51,27 @@ export interface GetCapacityTaskCommandOutput extends GetCapacityTaskOutput, __M
* // Count: Number("int"), // required
* // },
* // ],
+ * // InstancesToExclude: { // InstancesToExclude
+ * // Instances: [ // InstanceIdList
+ * // "STRING_VALUE",
+ * // ],
+ * // AccountIds: [ // AccountIdList
+ * // "STRING_VALUE",
+ * // ],
+ * // Services: [ // AWSServiceNameList
+ * // "AWS" || "EC2" || "ELASTICACHE" || "ELB" || "RDS" || "ROUTE53",
+ * // ],
+ * // },
* // DryRun: true || false,
- * // CapacityTaskStatus: "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "CANCELLED",
+ * // CapacityTaskStatus: "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "WAITING_FOR_EVACUATION" || "CANCELLATION_IN_PROGRESS" || "CANCELLED",
* // Failed: { // CapacityTaskFailure
* // Reason: "STRING_VALUE", // required
- * // Type: "UNSUPPORTED_CAPACITY_CONFIGURATION",
+ * // Type: "UNSUPPORTED_CAPACITY_CONFIGURATION" || "UNEXPECTED_ASSET_STATE" || "BLOCKING_INSTANCES_NOT_EVACUATED" || "INTERNAL_SERVER_ERROR" || "RESOURCE_NOT_FOUND",
* // },
* // CreationDate: new Date("TIMESTAMP"),
* // CompletionDate: new Date("TIMESTAMP"),
* // LastModifiedDate: new Date("TIMESTAMP"),
+ * // TaskActionOnBlockingInstances: "WAIT_FOR_EVACUATION" || "FAIL_TASK",
* // };
*
* ```
diff --git a/clients/client-outposts/src/commands/GetOutpostSupportedInstanceTypesCommand.ts b/clients/client-outposts/src/commands/GetOutpostSupportedInstanceTypesCommand.ts
index 294b88ccb008..a89dfc69ef27 100644
--- a/clients/client-outposts/src/commands/GetOutpostSupportedInstanceTypesCommand.ts
+++ b/clients/client-outposts/src/commands/GetOutpostSupportedInstanceTypesCommand.ts
@@ -33,10 +33,9 @@ export interface GetOutpostSupportedInstanceTypesCommandOutput
__MetadataBearer {}
/**
- * Gets the instance types that an
- * Outpost can support in InstanceTypeCapacity
. This will generally include instance types that
- * are not currently configured and therefore cannot be launched with the current Outpost
- * capacity configuration.
+ * Gets the instance types that an Outpost can support in InstanceTypeCapacity
.
+ * This will generally include instance types that are not currently configured and therefore
+ * cannot be launched with the current Outpost capacity configuration.
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
@@ -45,7 +44,7 @@ export interface GetOutpostSupportedInstanceTypesCommandOutput
* const client = new OutpostsClient(config);
* const input = { // GetOutpostSupportedInstanceTypesInput
* OutpostIdentifier: "STRING_VALUE", // required
- * OrderId: "STRING_VALUE", // required
+ * OrderId: "STRING_VALUE",
* MaxResults: Number("int"),
* NextToken: "STRING_VALUE",
* };
diff --git a/clients/client-outposts/src/commands/ListAssetInstancesCommand.ts b/clients/client-outposts/src/commands/ListAssetInstancesCommand.ts
new file mode 100644
index 000000000000..7d4f188e153e
--- /dev/null
+++ b/clients/client-outposts/src/commands/ListAssetInstancesCommand.ts
@@ -0,0 +1,128 @@
+// 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 { commonParams } from "../endpoint/EndpointParameters";
+import { ListAssetInstancesInput, ListAssetInstancesOutput } from "../models/models_0";
+import { OutpostsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../OutpostsClient";
+import { de_ListAssetInstancesCommand, se_ListAssetInstancesCommand } from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export type { __MetadataBearer };
+export { $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListAssetInstancesCommand}.
+ */
+export interface ListAssetInstancesCommandInput extends ListAssetInstancesInput {}
+/**
+ * @public
+ *
+ * The output of {@link ListAssetInstancesCommand}.
+ */
+export interface ListAssetInstancesCommandOutput extends ListAssetInstancesOutput, __MetadataBearer {}
+
+/**
+ * A list of Amazon EC2 instances, belonging to all accounts, running on the specified Outpost.
+ * Does not include Amazon EBS or Amazon S3 instances.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { OutpostsClient, ListAssetInstancesCommand } from "@aws-sdk/client-outposts"; // ES Modules import
+ * // const { OutpostsClient, ListAssetInstancesCommand } = require("@aws-sdk/client-outposts"); // CommonJS import
+ * const client = new OutpostsClient(config);
+ * const input = { // ListAssetInstancesInput
+ * OutpostIdentifier: "STRING_VALUE", // required
+ * AssetIdFilter: [ // AssetIdList
+ * "STRING_VALUE",
+ * ],
+ * InstanceTypeFilter: [ // OutpostInstanceTypeList
+ * "STRING_VALUE",
+ * ],
+ * AccountIdFilter: [ // AccountIdList
+ * "STRING_VALUE",
+ * ],
+ * AwsServiceFilter: [ // AWSServiceNameList
+ * "AWS" || "EC2" || "ELASTICACHE" || "ELB" || "RDS" || "ROUTE53",
+ * ],
+ * MaxResults: Number("int"),
+ * NextToken: "STRING_VALUE",
+ * };
+ * const command = new ListAssetInstancesCommand(input);
+ * const response = await client.send(command);
+ * // { // ListAssetInstancesOutput
+ * // AssetInstances: [ // AssetInstanceList
+ * // { // AssetInstance
+ * // InstanceId: "STRING_VALUE",
+ * // InstanceType: "STRING_VALUE",
+ * // AssetId: "STRING_VALUE",
+ * // AccountId: "STRING_VALUE",
+ * // AwsServiceName: "AWS" || "EC2" || "ELASTICACHE" || "ELB" || "RDS" || "ROUTE53",
+ * // },
+ * // ],
+ * // NextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListAssetInstancesCommandInput - {@link ListAssetInstancesCommandInput}
+ * @returns {@link ListAssetInstancesCommandOutput}
+ * @see {@link ListAssetInstancesCommandInput} for command's `input` shape.
+ * @see {@link ListAssetInstancesCommandOutput} for command's `response` shape.
+ * @see {@link OutpostsClientResolvedConfig | config} for OutpostsClient's `config` shape.
+ *
+ * @throws {@link AccessDeniedException} (client fault)
+ * You do not have permission to perform this operation.
+ *
+ * @throws {@link InternalServerException} (server fault)
+ * An internal error has occurred.
+ *
+ * @throws {@link NotFoundException} (client fault)
+ * The specified request is not valid.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * A parameter is not valid.
+ *
+ * @throws {@link OutpostsServiceException}
+ * Base exception class for all service exceptions from Outposts service.
+ *
+ * @public
+ */
+export class ListAssetInstancesCommand extends $Command
+ .classBuilder<
+ ListAssetInstancesCommandInput,
+ ListAssetInstancesCommandOutput,
+ OutpostsClientResolvedConfig,
+ ServiceInputTypes,
+ ServiceOutputTypes
+ >()
+ .ep(commonParams)
+ .m(function (this: any, Command: any, cs: any, config: OutpostsClientResolvedConfig, o: any) {
+ return [
+ getSerdePlugin(config, this.serialize, this.deserialize),
+ getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
+ ];
+ })
+ .s("OutpostsOlafService", "ListAssetInstances", {})
+ .n("OutpostsClient", "ListAssetInstancesCommand")
+ .f(void 0, void 0)
+ .ser(se_ListAssetInstancesCommand)
+ .de(de_ListAssetInstancesCommand)
+ .build() {
+ /** @internal type navigation helper, not in runtime. */
+ protected declare static __types: {
+ api: {
+ input: ListAssetInstancesInput;
+ output: ListAssetInstancesOutput;
+ };
+ sdk: {
+ input: ListAssetInstancesCommandInput;
+ output: ListAssetInstancesCommandOutput;
+ };
+ };
+}
diff --git a/clients/client-outposts/src/commands/ListAssetsCommand.ts b/clients/client-outposts/src/commands/ListAssetsCommand.ts
index 5c1160644ab3..8ce2df1a18dc 100644
--- a/clients/client-outposts/src/commands/ListAssetsCommand.ts
+++ b/clients/client-outposts/src/commands/ListAssetsCommand.ts
@@ -63,6 +63,13 @@ export interface ListAssetsCommandOutput extends ListAssetsOutput, __MetadataBea
* // InstanceFamilies: [ // InstanceFamilies
* // "STRING_VALUE",
* // ],
+ * // InstanceTypeCapacities: [ // AssetInstanceCapacityList
+ * // { // AssetInstanceTypeCapacity
+ * // InstanceType: "STRING_VALUE", // required
+ * // Count: Number("int"), // required
+ * // },
+ * // ],
+ * // MaxVcpus: Number("int"),
* // },
* // AssetLocation: { // AssetLocation
* // RackElevation: Number("float"),
diff --git a/clients/client-outposts/src/commands/ListBlockingInstancesForCapacityTaskCommand.ts b/clients/client-outposts/src/commands/ListBlockingInstancesForCapacityTaskCommand.ts
new file mode 100644
index 000000000000..e4a3b81970c7
--- /dev/null
+++ b/clients/client-outposts/src/commands/ListBlockingInstancesForCapacityTaskCommand.ts
@@ -0,0 +1,124 @@
+// 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 { commonParams } from "../endpoint/EndpointParameters";
+import {
+ ListBlockingInstancesForCapacityTaskInput,
+ ListBlockingInstancesForCapacityTaskOutput,
+} from "../models/models_0";
+import { OutpostsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../OutpostsClient";
+import {
+ de_ListBlockingInstancesForCapacityTaskCommand,
+ se_ListBlockingInstancesForCapacityTaskCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export type { __MetadataBearer };
+export { $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListBlockingInstancesForCapacityTaskCommand}.
+ */
+export interface ListBlockingInstancesForCapacityTaskCommandInput extends ListBlockingInstancesForCapacityTaskInput {}
+/**
+ * @public
+ *
+ * The output of {@link ListBlockingInstancesForCapacityTaskCommand}.
+ */
+export interface ListBlockingInstancesForCapacityTaskCommandOutput
+ extends ListBlockingInstancesForCapacityTaskOutput,
+ __MetadataBearer {}
+
+/**
+ * A list of Amazon EC2 instances running on the Outpost and belonging to the account that
+ * initiated the capacity task. Use this list to specify the instances you cannot stop to free up
+ * capacity to run the capacity task.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { OutpostsClient, ListBlockingInstancesForCapacityTaskCommand } from "@aws-sdk/client-outposts"; // ES Modules import
+ * // const { OutpostsClient, ListBlockingInstancesForCapacityTaskCommand } = require("@aws-sdk/client-outposts"); // CommonJS import
+ * const client = new OutpostsClient(config);
+ * const input = { // ListBlockingInstancesForCapacityTaskInput
+ * OutpostIdentifier: "STRING_VALUE", // required
+ * CapacityTaskId: "STRING_VALUE", // required
+ * MaxResults: Number("int"),
+ * NextToken: "STRING_VALUE",
+ * };
+ * const command = new ListBlockingInstancesForCapacityTaskCommand(input);
+ * const response = await client.send(command);
+ * // { // ListBlockingInstancesForCapacityTaskOutput
+ * // BlockingInstances: [ // BlockingInstancesList
+ * // { // BlockingInstance
+ * // InstanceId: "STRING_VALUE",
+ * // AccountId: "STRING_VALUE",
+ * // AwsServiceName: "AWS" || "EC2" || "ELASTICACHE" || "ELB" || "RDS" || "ROUTE53",
+ * // },
+ * // ],
+ * // NextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListBlockingInstancesForCapacityTaskCommandInput - {@link ListBlockingInstancesForCapacityTaskCommandInput}
+ * @returns {@link ListBlockingInstancesForCapacityTaskCommandOutput}
+ * @see {@link ListBlockingInstancesForCapacityTaskCommandInput} for command's `input` shape.
+ * @see {@link ListBlockingInstancesForCapacityTaskCommandOutput} for command's `response` shape.
+ * @see {@link OutpostsClientResolvedConfig | config} for OutpostsClient's `config` shape.
+ *
+ * @throws {@link AccessDeniedException} (client fault)
+ * You do not have permission to perform this operation.
+ *
+ * @throws {@link InternalServerException} (server fault)
+ * An internal error has occurred.
+ *
+ * @throws {@link NotFoundException} (client fault)
+ * The specified request is not valid.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * A parameter is not valid.
+ *
+ * @throws {@link OutpostsServiceException}
+ * Base exception class for all service exceptions from Outposts service.
+ *
+ * @public
+ */
+export class ListBlockingInstancesForCapacityTaskCommand extends $Command
+ .classBuilder<
+ ListBlockingInstancesForCapacityTaskCommandInput,
+ ListBlockingInstancesForCapacityTaskCommandOutput,
+ OutpostsClientResolvedConfig,
+ ServiceInputTypes,
+ ServiceOutputTypes
+ >()
+ .ep(commonParams)
+ .m(function (this: any, Command: any, cs: any, config: OutpostsClientResolvedConfig, o: any) {
+ return [
+ getSerdePlugin(config, this.serialize, this.deserialize),
+ getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
+ ];
+ })
+ .s("OutpostsOlafService", "ListBlockingInstancesForCapacityTask", {})
+ .n("OutpostsClient", "ListBlockingInstancesForCapacityTaskCommand")
+ .f(void 0, void 0)
+ .ser(se_ListBlockingInstancesForCapacityTaskCommand)
+ .de(de_ListBlockingInstancesForCapacityTaskCommand)
+ .build() {
+ /** @internal type navigation helper, not in runtime. */
+ protected declare static __types: {
+ api: {
+ input: ListBlockingInstancesForCapacityTaskInput;
+ output: ListBlockingInstancesForCapacityTaskOutput;
+ };
+ sdk: {
+ input: ListBlockingInstancesForCapacityTaskCommandInput;
+ output: ListBlockingInstancesForCapacityTaskCommandOutput;
+ };
+ };
+}
diff --git a/clients/client-outposts/src/commands/ListCapacityTasksCommand.ts b/clients/client-outposts/src/commands/ListCapacityTasksCommand.ts
index b286d57bf7c9..e305622a6434 100644
--- a/clients/client-outposts/src/commands/ListCapacityTasksCommand.ts
+++ b/clients/client-outposts/src/commands/ListCapacityTasksCommand.ts
@@ -43,7 +43,7 @@ export interface ListCapacityTasksCommandOutput extends ListCapacityTasksOutput,
* MaxResults: Number("int"),
* NextToken: "STRING_VALUE",
* CapacityTaskStatusFilter: [ // CapacityTaskStatusList
- * "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "CANCELLED",
+ * "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "WAITING_FOR_EVACUATION" || "CANCELLATION_IN_PROGRESS" || "CANCELLED",
* ],
* };
* const command = new ListCapacityTasksCommand(input);
@@ -54,7 +54,7 @@ export interface ListCapacityTasksCommandOutput extends ListCapacityTasksOutput,
* // CapacityTaskId: "STRING_VALUE",
* // OutpostId: "STRING_VALUE",
* // OrderId: "STRING_VALUE",
- * // CapacityTaskStatus: "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "CANCELLED",
+ * // CapacityTaskStatus: "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "WAITING_FOR_EVACUATION" || "CANCELLATION_IN_PROGRESS" || "CANCELLED",
* // CreationDate: new Date("TIMESTAMP"),
* // CompletionDate: new Date("TIMESTAMP"),
* // LastModifiedDate: new Date("TIMESTAMP"),
diff --git a/clients/client-outposts/src/commands/StartCapacityTaskCommand.ts b/clients/client-outposts/src/commands/StartCapacityTaskCommand.ts
index a7255789518d..f048b1868eec 100644
--- a/clients/client-outposts/src/commands/StartCapacityTaskCommand.ts
+++ b/clients/client-outposts/src/commands/StartCapacityTaskCommand.ts
@@ -28,7 +28,7 @@ export interface StartCapacityTaskCommandInput extends StartCapacityTaskInput {}
export interface StartCapacityTaskCommandOutput extends StartCapacityTaskOutput, __MetadataBearer {}
/**
- * Starts the specified capacity task. You can have one active capacity task for an order.
+ * Starts the specified capacity task. You can have one active capacity task per order or Outpost.
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
@@ -37,14 +37,26 @@ export interface StartCapacityTaskCommandOutput extends StartCapacityTaskOutput,
* const client = new OutpostsClient(config);
* const input = { // StartCapacityTaskInput
* OutpostIdentifier: "STRING_VALUE", // required
- * OrderId: "STRING_VALUE", // required
+ * OrderId: "STRING_VALUE",
* InstancePools: [ // RequestedInstancePools // required
* { // InstanceTypeCapacity
* InstanceType: "STRING_VALUE", // required
* Count: Number("int"), // required
* },
* ],
+ * InstancesToExclude: { // InstancesToExclude
+ * Instances: [ // InstanceIdList
+ * "STRING_VALUE",
+ * ],
+ * AccountIds: [ // AccountIdList
+ * "STRING_VALUE",
+ * ],
+ * Services: [ // AWSServiceNameList
+ * "AWS" || "EC2" || "ELASTICACHE" || "ELB" || "RDS" || "ROUTE53",
+ * ],
+ * },
* DryRun: true || false,
+ * TaskActionOnBlockingInstances: "WAIT_FOR_EVACUATION" || "FAIL_TASK",
* };
* const command = new StartCapacityTaskCommand(input);
* const response = await client.send(command);
@@ -58,15 +70,27 @@ export interface StartCapacityTaskCommandOutput extends StartCapacityTaskOutput,
* // Count: Number("int"), // required
* // },
* // ],
+ * // InstancesToExclude: { // InstancesToExclude
+ * // Instances: [ // InstanceIdList
+ * // "STRING_VALUE",
+ * // ],
+ * // AccountIds: [ // AccountIdList
+ * // "STRING_VALUE",
+ * // ],
+ * // Services: [ // AWSServiceNameList
+ * // "AWS" || "EC2" || "ELASTICACHE" || "ELB" || "RDS" || "ROUTE53",
+ * // ],
+ * // },
* // DryRun: true || false,
- * // CapacityTaskStatus: "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "CANCELLED",
+ * // CapacityTaskStatus: "REQUESTED" || "IN_PROGRESS" || "FAILED" || "COMPLETED" || "WAITING_FOR_EVACUATION" || "CANCELLATION_IN_PROGRESS" || "CANCELLED",
* // Failed: { // CapacityTaskFailure
* // Reason: "STRING_VALUE", // required
- * // Type: "UNSUPPORTED_CAPACITY_CONFIGURATION",
+ * // Type: "UNSUPPORTED_CAPACITY_CONFIGURATION" || "UNEXPECTED_ASSET_STATE" || "BLOCKING_INSTANCES_NOT_EVACUATED" || "INTERNAL_SERVER_ERROR" || "RESOURCE_NOT_FOUND",
* // },
* // CreationDate: new Date("TIMESTAMP"),
* // CompletionDate: new Date("TIMESTAMP"),
* // LastModifiedDate: new Date("TIMESTAMP"),
+ * // TaskActionOnBlockingInstances: "WAIT_FOR_EVACUATION" || "FAIL_TASK",
* // };
*
* ```
diff --git a/clients/client-outposts/src/commands/index.ts b/clients/client-outposts/src/commands/index.ts
index 4af85ce8f450..8016c6d029ee 100644
--- a/clients/client-outposts/src/commands/index.ts
+++ b/clients/client-outposts/src/commands/index.ts
@@ -15,7 +15,9 @@ export * from "./GetOutpostInstanceTypesCommand";
export * from "./GetOutpostSupportedInstanceTypesCommand";
export * from "./GetSiteAddressCommand";
export * from "./GetSiteCommand";
+export * from "./ListAssetInstancesCommand";
export * from "./ListAssetsCommand";
+export * from "./ListBlockingInstancesForCapacityTaskCommand";
export * from "./ListCapacityTasksCommand";
export * from "./ListCatalogItemsCommand";
export * from "./ListOrdersCommand";
diff --git a/clients/client-outposts/src/models/models_0.ts b/clients/client-outposts/src/models/models_0.ts
index 72e77961a808..55631508715d 100644
--- a/clients/client-outposts/src/models/models_0.ts
+++ b/clients/client-outposts/src/models/models_0.ts
@@ -136,6 +136,24 @@ export const AssetType = {
*/
export type AssetType = (typeof AssetType)[keyof typeof AssetType];
+/**
+ * The capacity for each instance type.
+ * @public
+ */
+export interface AssetInstanceTypeCapacity {
+ /**
+ * The type of instance.
+ * @public
+ */
+ InstanceType: string | undefined;
+
+ /**
+ * The number of each instance type.
+ * @public
+ */
+ Count: number | undefined;
+}
+
/**
* @public
* @enum
@@ -189,6 +207,19 @@ export interface ComputeAttributes {
* @public
*/
InstanceFamilies?: string[];
+
+ /**
+ * The instance type capacities configured for this asset. This can be changed through a
+ * capacity task.
+ * @public
+ */
+ InstanceTypeCapacities?: AssetInstanceTypeCapacity[];
+
+ /**
+ * The maximum number of vCPUs possible for the specified asset.
+ * @public
+ */
+ MaxVcpus?: number;
}
/**
@@ -227,6 +258,60 @@ export interface AssetInfo {
AssetLocation?: AssetLocation;
}
+/**
+ * @public
+ * @enum
+ */
+export const AWSServiceName = {
+ AWS: "AWS",
+ EC2: "EC2",
+ ELASTICACHE: "ELASTICACHE",
+ ELB: "ELB",
+ RDS: "RDS",
+ ROUTE53: "ROUTE53",
+} as const;
+
+/**
+ * @public
+ */
+export type AWSServiceName = (typeof AWSServiceName)[keyof typeof AWSServiceName];
+
+/**
+ * An Amazon EC2 instance.
+ * @public
+ */
+export interface AssetInstance {
+ /**
+ * The ID of the instance.
+ * @public
+ */
+ InstanceId?: string;
+
+ /**
+ * The type of instance.
+ * @public
+ */
+ InstanceType?: string;
+
+ /**
+ * The ID of the asset.
+ * @public
+ */
+ AssetId?: string;
+
+ /**
+ * The ID of the Amazon Web Services account.
+ * @public
+ */
+ AccountId?: string;
+
+ /**
+ * The Amazon Web Services service name of the instance.
+ * @public
+ */
+ AwsServiceName?: AWSServiceName;
+}
+
/**
* @public
* @enum
@@ -242,6 +327,31 @@ export const AssetState = {
*/
export type AssetState = (typeof AssetState)[keyof typeof AssetState];
+/**
+ * A running Amazon EC2 instance that can be stopped to free up capacity needed to run the
+ * capacity task.
+ * @public
+ */
+export interface BlockingInstance {
+ /**
+ * The ID of the blocking instance.
+ * @public
+ */
+ InstanceId?: string;
+
+ /**
+ * The ID of the Amazon Web Services account.
+ * @public
+ */
+ AccountId?: string;
+
+ /**
+ * The Amazon Web Services service name that owns the specified blocking instance.
+ * @public
+ */
+ AwsServiceName?: AWSServiceName;
+}
+
/**
* @public
*/
@@ -400,6 +510,10 @@ export interface CancelOrderOutput {}
* @enum
*/
export const CapacityTaskFailureType = {
+ BLOCKING_INSTANCES_NOT_EVACUATED: "BLOCKING_INSTANCES_NOT_EVACUATED",
+ INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR",
+ RESOURCE_NOT_FOUND: "RESOURCE_NOT_FOUND",
+ UNEXPECTED_ASSET_STATE: "UNEXPECTED_ASSET_STATE",
UNSUPPORTED_CAPACITY_CONFIGURATION: "UNSUPPORTED_CAPACITY_CONFIGURATION",
} as const;
@@ -431,11 +545,13 @@ export interface CapacityTaskFailure {
* @enum
*/
export const CapacityTaskStatus = {
+ CANCELLATION_IN_PROGRESS: "CANCELLATION_IN_PROGRESS",
CANCELLED: "CANCELLED",
COMPLETED: "COMPLETED",
FAILED: "FAILED",
IN_PROGRESS: "IN_PROGRESS",
REQUESTED: "REQUESTED",
+ WAITING_FOR_EVACUATION: "WAITING_FOR_EVACUATION",
} as const;
/**
@@ -914,8 +1030,8 @@ export interface Order {
*
*
*
- * IN_PROGRESS
- Order is either being built or shipped. To get
- * more details, see the line item status.
+ * IN_PROGRESS
- Order is either being built or shipped. To get more
+ * details, see the line item status.
*
*
*
@@ -1574,6 +1690,32 @@ export interface GetCapacityTaskInput {
OutpostIdentifier: string | undefined;
}
+/**
+ *
User-specified instances that must not be stopped. These instances will not appear in the
+ * list of instances that Amazon Web Services recommends to stop in order to free up capacity.
+ * @public
+ */
+export interface InstancesToExclude {
+ /**
+ * List of user-specified instances that must not be stopped.
+ * @public
+ */
+ Instances?: string[];
+
+ /**
+ * IDs of the accounts that own each instance that must not be stopped.
+ * @public
+ */
+ AccountIds?: string[];
+
+ /**
+ * Names of the services that own each instance that must not be stopped in order to free up
+ * the capacity needed to run the capacity task.
+ * @public
+ */
+ Services?: AWSServiceName[];
+}
+
/**
* The instance type that you specify determines the combination of CPU, memory, storage, and
* networking capacity.
@@ -1593,6 +1735,21 @@ export interface InstanceTypeCapacity {
Count: number | undefined;
}
+/**
+ * @public
+ * @enum
+ */
+export const TaskActionOnBlockingInstances = {
+ FAIL_TASK: "FAIL_TASK",
+ WAIT_FOR_EVACUATION: "WAIT_FOR_EVACUATION",
+} as const;
+
+/**
+ * @public
+ */
+export type TaskActionOnBlockingInstances =
+ (typeof TaskActionOnBlockingInstances)[keyof typeof TaskActionOnBlockingInstances];
+
/**
* @public
*/
@@ -1621,6 +1778,13 @@ export interface GetCapacityTaskOutput {
*/
RequestedInstancePools?: InstanceTypeCapacity[];
+ /**
+ * Instances that the user specified they cannot stop in order to free up the capacity needed
+ * to run the capacity task.
+ * @public
+ */
+ InstancesToExclude?: InstancesToExclude;
+
/**
* Performs a dry run to determine if you are above or below instance capacity.
* @public
@@ -1675,6 +1839,24 @@ export interface GetCapacityTaskOutput {
* @public
*/
LastModifiedDate?: Date;
+
+ /**
+ * User-specified option in case an instance is blocking the capacity task from running.
+ * Shows one of the following options:
+ *
+ * @public
+ */
+ TaskActionOnBlockingInstances?: TaskActionOnBlockingInstances;
}
/**
@@ -1855,7 +2037,7 @@ export interface GetOutpostSupportedInstanceTypesInput {
* The ID for the Amazon Web Services Outposts order.
* @public
*/
- OrderId: string | undefined;
+ OrderId?: string;
/**
* The maximum page size.
@@ -1949,6 +2131,71 @@ export interface GetSiteAddressOutput {
Address?: Address;
}
+/**
+ * @public
+ */
+export interface ListAssetInstancesInput {
+ /**
+ * The ID of the Outpost.
+ * @public
+ */
+ OutpostIdentifier: string | undefined;
+
+ /**
+ * Filters the results by asset ID.
+ * @public
+ */
+ AssetIdFilter?: string[];
+
+ /**
+ * Filters the results by instance ID.
+ * @public
+ */
+ InstanceTypeFilter?: string[];
+
+ /**
+ * Filters the results by account ID.
+ * @public
+ */
+ AccountIdFilter?: string[];
+
+ /**
+ * Filters the results by Amazon Web Services service.
+ * @public
+ */
+ AwsServiceFilter?: AWSServiceName[];
+
+ /**
+ * The maximum page size.
+ * @public
+ */
+ MaxResults?: number;
+
+ /**
+ * The pagination token.
+ * @public
+ */
+ NextToken?: string;
+}
+
+/**
+ * @public
+ */
+export interface ListAssetInstancesOutput {
+ /**
+ * List of instances owned by all accounts on the Outpost. Does not include Amazon EBS or Amazon S3
+ * instances.
+ * @public
+ */
+ AssetInstances?: AssetInstance[];
+
+ /**
+ * The pagination token.
+ * @public
+ */
+ NextToken?: string;
+}
+
/**
* @public
*/
@@ -2001,6 +2248,53 @@ export interface ListAssetsOutput {
NextToken?: string;
}
+/**
+ * @public
+ */
+export interface ListBlockingInstancesForCapacityTaskInput {
+ /**
+ * The ID or ARN of the Outpost associated with the specified capacity task.
+ * @public
+ */
+ OutpostIdentifier: string | undefined;
+
+ /**
+ * The ID of the capacity task.
+ * @public
+ */
+ CapacityTaskId: string | undefined;
+
+ /**
+ * The maximum page size.
+ * @public
+ */
+ MaxResults?: number;
+
+ /**
+ * The pagination token.
+ * @public
+ */
+ NextToken?: string;
+}
+
+/**
+ * @public
+ */
+export interface ListBlockingInstancesForCapacityTaskOutput {
+ /**
+ * A list of all running Amazon EC2 instances on the Outpost. Stopping one or more of these
+ * instances can free up the capacity needed to run the capacity task.
+ * @public
+ */
+ BlockingInstances?: BlockingInstance[];
+
+ /**
+ * The pagination token.
+ * @public
+ */
+ NextToken?: string;
+}
+
/**
* @public
*/
@@ -2024,8 +2318,8 @@ export interface ListCapacityTasksInput {
NextToken?: string;
/**
- * A list of statuses. For example,
- * REQUESTED
or WAITING_FOR_EVACUATION
.
+ * A list of statuses. For example, REQUESTED
or
+ * WAITING_FOR_EVACUATION
.
* @public
*/
CapacityTaskStatusFilter?: CapacityTaskStatus[];
@@ -2355,7 +2649,7 @@ export interface StartCapacityTaskInput {
* The ID of the Amazon Web Services Outposts order associated with the specified capacity task.
* @public
*/
- OrderId: string | undefined;
+ OrderId?: string;
/**
* The instance pools specified in the capacity task.
@@ -2364,11 +2658,37 @@ export interface StartCapacityTaskInput {
InstancePools: InstanceTypeCapacity[] | undefined;
/**
- * You can request a dry run to determine if the instance type and instance size changes is above or below available instance
- * capacity. Requesting a dry run does not make any changes to your plan.
+ * List of user-specified running instances that must not be stopped in order to free up the
+ * capacity needed to run the capacity task.
+ * @public
+ */
+ InstancesToExclude?: InstancesToExclude;
+
+ /**
+ * You can request a dry run to determine if the instance type and instance size changes is
+ * above or below available instance capacity. Requesting a dry run does not make any changes to
+ * your plan.
* @public
*/
DryRun?: boolean;
+
+ /**
+ * Specify one of the following options in case an instance is blocking the capacity task
+ * from running.
+ *
+ * @public
+ */
+ TaskActionOnBlockingInstances?: TaskActionOnBlockingInstances;
}
/**
@@ -2399,6 +2719,13 @@ export interface StartCapacityTaskOutput {
*/
RequestedInstancePools?: InstanceTypeCapacity[];
+ /**
+ * User-specified instances that must not be stopped in order to free up the capacity needed
+ * to run the capacity task.
+ * @public
+ */
+ InstancesToExclude?: InstancesToExclude;
+
/**
* Results of the dry run showing if the specified capacity task is above or below the
* available instance capacity.
@@ -2435,6 +2762,24 @@ export interface StartCapacityTaskOutput {
* @public
*/
LastModifiedDate?: Date;
+
+ /**
+ * User-specified option in case an instance is blocking the capacity task from
+ * running.
+ *
+ * @public
+ */
+ TaskActionOnBlockingInstances?: TaskActionOnBlockingInstances;
}
/**
diff --git a/clients/client-outposts/src/pagination/ListAssetInstancesPaginator.ts b/clients/client-outposts/src/pagination/ListAssetInstancesPaginator.ts
new file mode 100644
index 000000000000..16c3506eab57
--- /dev/null
+++ b/clients/client-outposts/src/pagination/ListAssetInstancesPaginator.ts
@@ -0,0 +1,24 @@
+// smithy-typescript generated code
+import { createPaginator } from "@smithy/core";
+import { Paginator } from "@smithy/types";
+
+import {
+ ListAssetInstancesCommand,
+ ListAssetInstancesCommandInput,
+ ListAssetInstancesCommandOutput,
+} from "../commands/ListAssetInstancesCommand";
+import { OutpostsClient } from "../OutpostsClient";
+import { OutpostsPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @public
+ */
+export const paginateListAssetInstances: (
+ config: OutpostsPaginationConfiguration,
+ input: ListAssetInstancesCommandInput,
+ ...rest: any[]
+) => Paginator = createPaginator<
+ OutpostsPaginationConfiguration,
+ ListAssetInstancesCommandInput,
+ ListAssetInstancesCommandOutput
+>(OutpostsClient, ListAssetInstancesCommand, "NextToken", "NextToken", "MaxResults");
diff --git a/clients/client-outposts/src/pagination/ListBlockingInstancesForCapacityTaskPaginator.ts b/clients/client-outposts/src/pagination/ListBlockingInstancesForCapacityTaskPaginator.ts
new file mode 100644
index 000000000000..e6964f0d9d97
--- /dev/null
+++ b/clients/client-outposts/src/pagination/ListBlockingInstancesForCapacityTaskPaginator.ts
@@ -0,0 +1,24 @@
+// smithy-typescript generated code
+import { createPaginator } from "@smithy/core";
+import { Paginator } from "@smithy/types";
+
+import {
+ ListBlockingInstancesForCapacityTaskCommand,
+ ListBlockingInstancesForCapacityTaskCommandInput,
+ ListBlockingInstancesForCapacityTaskCommandOutput,
+} from "../commands/ListBlockingInstancesForCapacityTaskCommand";
+import { OutpostsClient } from "../OutpostsClient";
+import { OutpostsPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @public
+ */
+export const paginateListBlockingInstancesForCapacityTask: (
+ config: OutpostsPaginationConfiguration,
+ input: ListBlockingInstancesForCapacityTaskCommandInput,
+ ...rest: any[]
+) => Paginator = createPaginator<
+ OutpostsPaginationConfiguration,
+ ListBlockingInstancesForCapacityTaskCommandInput,
+ ListBlockingInstancesForCapacityTaskCommandOutput
+>(OutpostsClient, ListBlockingInstancesForCapacityTaskCommand, "NextToken", "NextToken", "MaxResults");
diff --git a/clients/client-outposts/src/pagination/index.ts b/clients/client-outposts/src/pagination/index.ts
index 6e183673b6de..4fbc4d25b95a 100644
--- a/clients/client-outposts/src/pagination/index.ts
+++ b/clients/client-outposts/src/pagination/index.ts
@@ -3,7 +3,9 @@ export * from "./GetOutpostInstanceTypesPaginator";
export * from "./GetOutpostSupportedInstanceTypesPaginator";
// smithy-typescript generated code
export * from "./Interfaces";
+export * from "./ListAssetInstancesPaginator";
export * from "./ListAssetsPaginator";
+export * from "./ListBlockingInstancesForCapacityTaskPaginator";
export * from "./ListCapacityTasksPaginator";
export * from "./ListCatalogItemsPaginator";
export * from "./ListOrdersPaginator";
diff --git a/clients/client-outposts/src/protocols/Aws_restJson1.ts b/clients/client-outposts/src/protocols/Aws_restJson1.ts
index 33554ea5fd19..f99aed887ac4 100644
--- a/clients/client-outposts/src/protocols/Aws_restJson1.ts
+++ b/clients/client-outposts/src/protocols/Aws_restJson1.ts
@@ -48,7 +48,12 @@ import {
} from "../commands/GetOutpostSupportedInstanceTypesCommand";
import { GetSiteAddressCommandInput, GetSiteAddressCommandOutput } from "../commands/GetSiteAddressCommand";
import { GetSiteCommandInput, GetSiteCommandOutput } from "../commands/GetSiteCommand";
+import { ListAssetInstancesCommandInput, ListAssetInstancesCommandOutput } from "../commands/ListAssetInstancesCommand";
import { ListAssetsCommandInput, ListAssetsCommandOutput } from "../commands/ListAssetsCommand";
+import {
+ ListBlockingInstancesForCapacityTaskCommandInput,
+ ListBlockingInstancesForCapacityTaskCommandOutput,
+} from "../commands/ListBlockingInstancesForCapacityTaskCommand";
import { ListCapacityTasksCommandInput, ListCapacityTasksCommandOutput } from "../commands/ListCapacityTasksCommand";
import { ListCatalogItemsCommandInput, ListCatalogItemsCommandOutput } from "../commands/ListCatalogItemsCommand";
import { ListOrdersCommandInput, ListOrdersCommandOutput } from "../commands/ListOrdersCommand";
@@ -74,9 +79,11 @@ import {
Address,
AssetInfo,
AssetLocation,
+ AWSServiceName,
CapacityTaskSummary,
CatalogItem,
ConflictException,
+ InstancesToExclude,
InstanceTypeCapacity,
InternalServerException,
LineItemRequest,
@@ -348,7 +355,7 @@ export const se_GetOutpostSupportedInstanceTypesCommand = async (
b.bp("/outposts/{OutpostIdentifier}/supportedInstanceTypes");
b.p("OutpostIdentifier", () => input.OutpostIdentifier!, "{OutpostIdentifier}", false);
const query: any = map({
- [_OI]: [, __expectNonNull(input[_OI]!, `OrderId`)],
+ [_OI]: [, input[_OI]!],
[_MR]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()],
[_NT]: [, input[_NT]!],
});
@@ -392,6 +399,30 @@ export const se_GetSiteAddressCommand = async (
return b.build();
};
+/**
+ * serializeAws_restJson1ListAssetInstancesCommand
+ */
+export const se_ListAssetInstancesCommand = async (
+ input: ListAssetInstancesCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const b = rb(input, context);
+ const headers: any = {};
+ b.bp("/outposts/{OutpostIdentifier}/assetInstances");
+ b.p("OutpostIdentifier", () => input.OutpostIdentifier!, "{OutpostIdentifier}", false);
+ const query: any = map({
+ [_AIF]: [() => input.AssetIdFilter !== void 0, () => input[_AIF]! || []],
+ [_ITF]: [() => input.InstanceTypeFilter !== void 0, () => input[_ITF]! || []],
+ [_AIFc]: [() => input.AccountIdFilter !== void 0, () => input[_AIFc]! || []],
+ [_ASF]: [() => input.AwsServiceFilter !== void 0, () => input[_ASF]! || []],
+ [_MR]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()],
+ [_NT]: [, input[_NT]!],
+ });
+ let body: any;
+ b.m("GET").h(headers).q(query).b(body);
+ return b.build();
+};
+
/**
* serializeAws_restJson1ListAssetsCommand
*/
@@ -414,6 +445,27 @@ export const se_ListAssetsCommand = async (
return b.build();
};
+/**
+ * serializeAws_restJson1ListBlockingInstancesForCapacityTaskCommand
+ */
+export const se_ListBlockingInstancesForCapacityTaskCommand = async (
+ input: ListBlockingInstancesForCapacityTaskCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const b = rb(input, context);
+ const headers: any = {};
+ b.bp("/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}/blockingInstances");
+ b.p("OutpostIdentifier", () => input.OutpostIdentifier!, "{OutpostIdentifier}", false);
+ b.p("CapacityTaskId", () => input.CapacityTaskId!, "{CapacityTaskId}", false);
+ const query: any = map({
+ [_MR]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()],
+ [_NT]: [, input[_NT]!],
+ });
+ let body: any;
+ b.m("GET").h(headers).q(query).b(body);
+ return b.build();
+};
+
/**
* serializeAws_restJson1ListCapacityTasksCommand
*/
@@ -555,7 +607,9 @@ export const se_StartCapacityTaskCommand = async (
take(input, {
DryRun: [],
InstancePools: (_) => _json(_),
+ InstancesToExclude: (_) => _json(_),
OrderId: [],
+ TaskActionOnBlockingInstances: [],
})
);
b.m("POST").h(headers).b(body);
@@ -886,10 +940,12 @@ export const de_GetCapacityTaskCommand = async (
CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
DryRun: __expectBoolean,
Failed: _json,
+ InstancesToExclude: _json,
LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
OrderId: __expectString,
OutpostId: __expectString,
RequestedInstancePools: _json,
+ TaskActionOnBlockingInstances: __expectString,
});
Object.assign(contents, doc);
return contents;
@@ -1070,6 +1126,28 @@ export const de_GetSiteAddressCommand = async (
return contents;
};
+/**
+ * deserializeAws_restJson1ListAssetInstancesCommand
+ */
+export const de_ListAssetInstancesCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_CommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ AssetInstances: _json,
+ NextToken: __expectString,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
/**
* deserializeAws_restJson1ListAssetsCommand
*/
@@ -1092,6 +1170,28 @@ export const de_ListAssetsCommand = async (
return contents;
};
+/**
+ * deserializeAws_restJson1ListBlockingInstancesForCapacityTaskCommand
+ */
+export const de_ListBlockingInstancesForCapacityTaskCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_CommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ BlockingInstances: _json,
+ NextToken: __expectString,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
/**
* deserializeAws_restJson1ListCapacityTasksCommand
*/
@@ -1244,10 +1344,12 @@ export const de_StartCapacityTaskCommand = async (
CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
DryRun: __expectBoolean,
Failed: _json,
+ InstancesToExclude: _json,
LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
OrderId: __expectString,
OutpostId: __expectString,
RequestedInstancePools: _json,
+ TaskActionOnBlockingInstances: __expectString,
});
Object.assign(contents, doc);
return contents;
@@ -1546,8 +1648,16 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
return __decorateServiceException(exception, parsedOutput.body);
};
+// se_AccountIdList omitted.
+
// se_Address omitted.
+// se_AWSServiceNameList omitted.
+
+// se_InstanceIdList omitted.
+
+// se_InstancesToExclude omitted.
+
// se_InstanceTypeCapacity omitted.
// se_LineItemRequest omitted.
@@ -1560,6 +1670,8 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
// se_TagMap omitted.
+// de_AccountIdList omitted.
+
// de_Address omitted.
/**
@@ -1575,6 +1687,14 @@ const de_AssetInfo = (output: any, context: __SerdeContext): AssetInfo => {
}) as any;
};
+// de_AssetInstance omitted.
+
+// de_AssetInstanceCapacityList omitted.
+
+// de_AssetInstanceList omitted.
+
+// de_AssetInstanceTypeCapacity omitted.
+
/**
* deserializeAws_restJson1AssetListDefinition
*/
@@ -1596,6 +1716,12 @@ const de_AssetLocation = (output: any, context: __SerdeContext): AssetLocation =
}) as any;
};
+// de_AWSServiceNameList omitted.
+
+// de_BlockingInstance omitted.
+
+// de_BlockingInstancesList omitted.
+
// de_CapacityTaskFailure omitted.
/**
@@ -1664,6 +1790,10 @@ const de_CatalogItemListDefinition = (output: any, context: __SerdeContext): Cat
// de_InstanceFamilies omitted.
+// de_InstanceIdList omitted.
+
+// de_InstancesToExclude omitted.
+
// de_InstanceTypeCapacity omitted.
// de_InstanceTypeItem omitted.
@@ -1758,6 +1888,9 @@ const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({
const collectBodyString = (streamBody: any, context: __SerdeContext): Promise =>
collectBody(streamBody, context).then((body) => context.utf8Encoder(body));
+const _AIF = "AssetIdFilter";
+const _AIFc = "AccountIdFilter";
+const _ASF = "AwsServiceFilter";
const _AT = "AddressType";
const _AZF = "AvailabilityZoneFilter";
const _AZIF = "AvailabilityZoneIdFilter";
@@ -1765,6 +1898,7 @@ const _CTSF = "CapacityTaskStatusFilter";
const _ECFF = "EC2FamilyFilter";
const _HIF = "HostIdFilter";
const _ICF = "ItemClassFilter";
+const _ITF = "InstanceTypeFilter";
const _LCSF = "LifeCycleStatusFilter";
const _MR = "MaxResults";
const _NT = "NextToken";
diff --git a/codegen/sdk-codegen/aws-models/outposts.json b/codegen/sdk-codegen/aws-models/outposts.json
index 7326eb9580b1..b94856ad765b 100644
--- a/codegen/sdk-codegen/aws-models/outposts.json
+++ b/codegen/sdk-codegen/aws-models/outposts.json
@@ -29,6 +29,53 @@
]
},
"shapes": {
+ "com.amazonaws.outposts#AWSServiceName": {
+ "type": "enum",
+ "members": {
+ "AWS": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "AWS"
+ }
+ },
+ "EC2": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "EC2"
+ }
+ },
+ "ELASTICACHE": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "ELASTICACHE"
+ }
+ },
+ "ELB": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "ELB"
+ }
+ },
+ "RDS": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "RDS"
+ }
+ },
+ "ROUTE53": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "ROUTE53"
+ }
+ }
+ }
+ },
+ "com.amazonaws.outposts#AWSServiceNameList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#AWSServiceName"
+ }
+ },
"com.amazonaws.outposts#AccessDeniedException": {
"type": "structure",
"members": {
@@ -53,6 +100,12 @@
"smithy.api#pattern": "^\\d{12}$"
}
},
+ "com.amazonaws.outposts#AccountIdList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#AccountId"
+ }
+ },
"com.amazonaws.outposts#Address": {
"type": "structure",
"members": {
@@ -199,6 +252,12 @@
"smithy.api#pattern": "^(\\w+)$"
}
},
+ "com.amazonaws.outposts#AssetIdList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#AssetId"
+ }
+ },
"com.amazonaws.outposts#AssetInfo": {
"type": "structure",
"members": {
@@ -237,6 +296,76 @@
"smithy.api#documentation": " Information about hardware assets.
"
}
},
+ "com.amazonaws.outposts#AssetInstance": {
+ "type": "structure",
+ "members": {
+ "InstanceId": {
+ "target": "com.amazonaws.outposts#InstanceId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the instance.
"
+ }
+ },
+ "InstanceType": {
+ "target": "com.amazonaws.outposts#OutpostInstanceType",
+ "traits": {
+ "smithy.api#documentation": "The type of instance.
"
+ }
+ },
+ "AssetId": {
+ "target": "com.amazonaws.outposts#AssetId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the asset.
"
+ }
+ },
+ "AccountId": {
+ "target": "com.amazonaws.outposts#AccountId"
+ },
+ "AwsServiceName": {
+ "target": "com.amazonaws.outposts#AWSServiceName",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Web Services service name of the instance.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "An Amazon EC2 instance.
"
+ }
+ },
+ "com.amazonaws.outposts#AssetInstanceCapacityList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#AssetInstanceTypeCapacity"
+ }
+ },
+ "com.amazonaws.outposts#AssetInstanceList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#AssetInstance"
+ }
+ },
+ "com.amazonaws.outposts#AssetInstanceTypeCapacity": {
+ "type": "structure",
+ "members": {
+ "InstanceType": {
+ "target": "com.amazonaws.outposts#InstanceTypeName",
+ "traits": {
+ "smithy.api#documentation": "The type of instance.
",
+ "smithy.api#required": {}
+ }
+ },
+ "Count": {
+ "target": "com.amazonaws.outposts#InstanceTypeCount",
+ "traits": {
+ "smithy.api#default": 0,
+ "smithy.api#documentation": "The number of each instance type.
",
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "The capacity for each instance type.
"
+ }
+ },
"com.amazonaws.outposts#AssetListDefinition": {
"type": "list",
"member": {
@@ -337,6 +466,35 @@
}
}
},
+ "com.amazonaws.outposts#BlockingInstance": {
+ "type": "structure",
+ "members": {
+ "InstanceId": {
+ "target": "com.amazonaws.outposts#InstanceId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the blocking instance.
"
+ }
+ },
+ "AccountId": {
+ "target": "com.amazonaws.outposts#AccountId"
+ },
+ "AwsServiceName": {
+ "target": "com.amazonaws.outposts#AWSServiceName",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Web Services service name that owns the specified blocking instance.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "A running Amazon EC2 instance that can be stopped to free up capacity needed to run the\n capacity task.
"
+ }
+ },
+ "com.amazonaws.outposts#BlockingInstancesList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#BlockingInstance"
+ }
+ },
"com.amazonaws.outposts#CIDR": {
"type": "string",
"traits": {
@@ -504,6 +662,30 @@
"traits": {
"smithy.api#enumValue": "UNSUPPORTED_CAPACITY_CONFIGURATION"
}
+ },
+ "UNEXPECTED_ASSET_STATE": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "UNEXPECTED_ASSET_STATE"
+ }
+ },
+ "BLOCKING_INSTANCES_NOT_EVACUATED": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "BLOCKING_INSTANCES_NOT_EVACUATED"
+ }
+ },
+ "INTERNAL_SERVER_ERROR": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "INTERNAL_SERVER_ERROR"
+ }
+ },
+ "RESOURCE_NOT_FOUND": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "RESOURCE_NOT_FOUND"
+ }
}
}
},
@@ -550,6 +732,18 @@
"smithy.api#enumValue": "COMPLETED"
}
},
+ "WAITING_FOR_EVACUATION": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "WAITING_FOR_EVACUATION"
+ }
+ },
+ "CANCELLATION_IN_PROGRESS": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "CANCELLATION_IN_PROGRESS"
+ }
+ },
"CANCELLED": {
"target": "smithy.api#Unit",
"traits": {
@@ -784,6 +978,18 @@
"traits": {
"smithy.api#documentation": "A list of the names of instance families that are currently associated with a given\n asset.
"
}
+ },
+ "InstanceTypeCapacities": {
+ "target": "com.amazonaws.outposts#AssetInstanceCapacityList",
+ "traits": {
+ "smithy.api#documentation": "The instance type capacities configured for this asset. This can be changed through a\n capacity task.
"
+ }
+ },
+ "MaxVcpus": {
+ "target": "com.amazonaws.outposts#VCPUCount",
+ "traits": {
+ "smithy.api#documentation": "The maximum number of vCPUs possible for the specified asset.
"
+ }
}
},
"traits": {
@@ -1470,6 +1676,12 @@
"smithy.api#documentation": "List of instance pools requested in the capacity task.
"
}
},
+ "InstancesToExclude": {
+ "target": "com.amazonaws.outposts#InstancesToExclude",
+ "traits": {
+ "smithy.api#documentation": "Instances that the user specified they cannot stop in order to free up the capacity needed\n to run the capacity task.
"
+ }
+ },
"DryRun": {
"target": "com.amazonaws.outposts#DryRun",
"traits": {
@@ -1506,6 +1718,12 @@
"traits": {
"smithy.api#documentation": "The date the capacity task was last modified.
"
}
+ },
+ "TaskActionOnBlockingInstances": {
+ "target": "com.amazonaws.outposts#TaskActionOnBlockingInstances",
+ "traits": {
+ "smithy.api#documentation": "User-specified option in case an instance is blocking the capacity task from running.\n Shows one of the following options:
\n "
+ }
}
},
"traits": {
@@ -1861,7 +2079,7 @@
}
],
"traits": {
- "smithy.api#documentation": "Gets the instance types that an\n Outpost can support in InstanceTypeCapacity
. This will generally include instance types that\n are not currently configured and therefore cannot be launched with the current Outpost\n capacity configuration.
",
+ "smithy.api#documentation": "Gets the instance types that an Outpost can support in InstanceTypeCapacity
.\n This will generally include instance types that are not currently configured and therefore\n cannot be launched with the current Outpost capacity configuration.
",
"smithy.api#http": {
"method": "GET",
"uri": "/outposts/{OutpostIdentifier}/supportedInstanceTypes",
@@ -1890,8 +2108,7 @@
"target": "com.amazonaws.outposts#OrderId",
"traits": {
"smithy.api#documentation": "The ID for the Amazon Web Services Outposts order.
",
- "smithy.api#httpQuery": "OrderId",
- "smithy.api#required": {}
+ "smithy.api#httpQuery": "OrderId"
}
},
"MaxResults": {
@@ -2096,6 +2313,22 @@
"smithy.api#pattern": "^(?:.{1,200}/)?(?:[a-z0-9-_A-Z])+$"
}
},
+ "com.amazonaws.outposts#InstanceId": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 11,
+ "max": 32
+ },
+ "smithy.api#pattern": "^i-[0-9a-z]+$"
+ }
+ },
+ "com.amazonaws.outposts#InstanceIdList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#InstanceId"
+ }
+ },
"com.amazonaws.outposts#InstanceType": {
"type": "string",
"traits": {
@@ -2171,6 +2404,32 @@
"smithy.api#pattern": "^[a-z0-9\\-]+\\.[a-z0-9\\-]+$"
}
},
+ "com.amazonaws.outposts#InstancesToExclude": {
+ "type": "structure",
+ "members": {
+ "Instances": {
+ "target": "com.amazonaws.outposts#InstanceIdList",
+ "traits": {
+ "smithy.api#documentation": "List of user-specified instances that must not be stopped.
"
+ }
+ },
+ "AccountIds": {
+ "target": "com.amazonaws.outposts#AccountIdList",
+ "traits": {
+ "smithy.api#documentation": "IDs of the accounts that own each instance that must not be stopped.
"
+ }
+ },
+ "Services": {
+ "target": "com.amazonaws.outposts#AWSServiceNameList",
+ "traits": {
+ "smithy.api#documentation": "Names of the services that own each instance that must not be stopped in order to free up\n the capacity needed to run the capacity task.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "User-specified instances that must not be stopped. These instances will not appear in the\n list of instances that Amazon Web Services recommends to stop in order to free up capacity.
"
+ }
+ },
"com.amazonaws.outposts#InternalServerException": {
"type": "structure",
"members": {
@@ -2409,6 +2668,116 @@
"target": "com.amazonaws.outposts#LineItemQuantity"
}
},
+ "com.amazonaws.outposts#ListAssetInstances": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.outposts#ListAssetInstancesInput"
+ },
+ "output": {
+ "target": "com.amazonaws.outposts#ListAssetInstancesOutput"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.outposts#AccessDeniedException"
+ },
+ {
+ "target": "com.amazonaws.outposts#InternalServerException"
+ },
+ {
+ "target": "com.amazonaws.outposts#NotFoundException"
+ },
+ {
+ "target": "com.amazonaws.outposts#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "A list of Amazon EC2 instances, belonging to all accounts, running on the specified Outpost.\n Does not include Amazon EBS or Amazon S3 instances.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/outposts/{OutpostIdentifier}/assetInstances",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "NextToken",
+ "outputToken": "NextToken",
+ "items": "AssetInstances",
+ "pageSize": "MaxResults"
+ }
+ }
+ },
+ "com.amazonaws.outposts#ListAssetInstancesInput": {
+ "type": "structure",
+ "members": {
+ "OutpostIdentifier": {
+ "target": "com.amazonaws.outposts#OutpostIdentifier",
+ "traits": {
+ "smithy.api#documentation": "The ID of the Outpost.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "AssetIdFilter": {
+ "target": "com.amazonaws.outposts#AssetIdList",
+ "traits": {
+ "smithy.api#documentation": "Filters the results by asset ID.
",
+ "smithy.api#httpQuery": "AssetIdFilter"
+ }
+ },
+ "InstanceTypeFilter": {
+ "target": "com.amazonaws.outposts#OutpostInstanceTypeList",
+ "traits": {
+ "smithy.api#documentation": "Filters the results by instance ID.
",
+ "smithy.api#httpQuery": "InstanceTypeFilter"
+ }
+ },
+ "AccountIdFilter": {
+ "target": "com.amazonaws.outposts#AccountIdList",
+ "traits": {
+ "smithy.api#documentation": "Filters the results by account ID.
",
+ "smithy.api#httpQuery": "AccountIdFilter"
+ }
+ },
+ "AwsServiceFilter": {
+ "target": "com.amazonaws.outposts#AWSServiceNameList",
+ "traits": {
+ "smithy.api#documentation": "Filters the results by Amazon Web Services service.
",
+ "smithy.api#httpQuery": "AwsServiceFilter"
+ }
+ },
+ "MaxResults": {
+ "target": "com.amazonaws.outposts#MaxResults1000",
+ "traits": {
+ "smithy.api#httpQuery": "MaxResults"
+ }
+ },
+ "NextToken": {
+ "target": "com.amazonaws.outposts#Token",
+ "traits": {
+ "smithy.api#httpQuery": "NextToken"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.outposts#ListAssetInstancesOutput": {
+ "type": "structure",
+ "members": {
+ "AssetInstances": {
+ "target": "com.amazonaws.outposts#AssetInstanceList",
+ "traits": {
+ "smithy.api#documentation": "List of instances owned by all accounts on the Outpost. Does not include Amazon EBS or Amazon S3\n instances.
"
+ }
+ },
+ "NextToken": {
+ "target": "com.amazonaws.outposts#Token"
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.outposts#ListAssets": {
"type": "operation",
"input": {
@@ -2505,6 +2874,96 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.outposts#ListBlockingInstancesForCapacityTask": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskInput"
+ },
+ "output": {
+ "target": "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskOutput"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.outposts#AccessDeniedException"
+ },
+ {
+ "target": "com.amazonaws.outposts#InternalServerException"
+ },
+ {
+ "target": "com.amazonaws.outposts#NotFoundException"
+ },
+ {
+ "target": "com.amazonaws.outposts#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "A list of Amazon EC2 instances running on the Outpost and belonging to the account that\n initiated the capacity task. Use this list to specify the instances you cannot stop to free up\n capacity to run the capacity task.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}/blockingInstances",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "NextToken",
+ "outputToken": "NextToken",
+ "items": "BlockingInstances",
+ "pageSize": "MaxResults"
+ }
+ }
+ },
+ "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskInput": {
+ "type": "structure",
+ "members": {
+ "OutpostIdentifier": {
+ "target": "com.amazonaws.outposts#OutpostIdentifier",
+ "traits": {
+ "smithy.api#documentation": "The ID or ARN of the Outpost associated with the specified capacity task.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "CapacityTaskId": {
+ "target": "com.amazonaws.outposts#CapacityTaskId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the capacity task.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "MaxResults": {
+ "target": "com.amazonaws.outposts#MaxResults1000",
+ "traits": {
+ "smithy.api#httpQuery": "MaxResults"
+ }
+ },
+ "NextToken": {
+ "target": "com.amazonaws.outposts#Token",
+ "traits": {
+ "smithy.api#httpQuery": "NextToken"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskOutput": {
+ "type": "structure",
+ "members": {
+ "BlockingInstances": {
+ "target": "com.amazonaws.outposts#BlockingInstancesList",
+ "traits": {
+ "smithy.api#documentation": "A list of all running Amazon EC2 instances on the Outpost. Stopping one or more of these\n instances can free up the capacity needed to run the capacity task.
"
+ }
+ },
+ "NextToken": {
+ "target": "com.amazonaws.outposts#Token"
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.outposts#ListCapacityTasks": {
"type": "operation",
"input": {
@@ -2567,7 +3026,7 @@
"CapacityTaskStatusFilter": {
"target": "com.amazonaws.outposts#CapacityTaskStatusList",
"traits": {
- "smithy.api#documentation": "A list of statuses. For example,\n REQUESTED
or WAITING_FOR_EVACUATION
.
",
+ "smithy.api#documentation": "A list of statuses. For example, REQUESTED
or\n WAITING_FOR_EVACUATION
.
",
"smithy.api#httpQuery": "CapacityTaskStatusFilter"
}
}
@@ -3200,7 +3659,7 @@
"Status": {
"target": "com.amazonaws.outposts#OrderStatus",
"traits": {
- "smithy.api#documentation": "The status of the order.
\n \n - \n
\n PREPARING
- Order is received and being prepared.
\n \n - \n
\n IN_PROGRESS
- Order is either being built or shipped. To get\n more details, see the line item status.
\n \n - \n
\n DELIVERED
- Order was delivered to the Outpost site.
\n \n - \n
\n COMPLETED
- Order is complete.
\n \n - \n
\n CANCELLED
- Order is cancelled.
\n \n - \n
\n ERROR
- Customer should contact support.
\n \n
\n \n The following status are deprecated: RECEIVED
, PENDING
,\n PROCESSING
, INSTALLING
, and FULFILLED
.
\n "
+ "smithy.api#documentation": "The status of the order.
\n \n - \n
\n PREPARING
- Order is received and being prepared.
\n \n - \n
\n IN_PROGRESS
- Order is either being built or shipped. To get more\n details, see the line item status.
\n \n - \n
\n DELIVERED
- Order was delivered to the Outpost site.
\n \n - \n
\n COMPLETED
- Order is complete.
\n \n - \n
\n CANCELLED
- Order is cancelled.
\n \n - \n
\n ERROR
- Customer should contact support.
\n \n
\n \n The following status are deprecated: RECEIVED
, PENDING
,\n PROCESSING
, INSTALLING
, and FULFILLED
.
\n "
}
},
"LineItems": {
@@ -3503,6 +3962,22 @@
"smithy.api#pattern": "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$"
}
},
+ "com.amazonaws.outposts#OutpostInstanceType": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 3,
+ "max": 30
+ },
+ "smithy.api#pattern": "^[a-z0-9\\-\\.]+$"
+ }
+ },
+ "com.amazonaws.outposts#OutpostInstanceTypeList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.outposts#OutpostInstanceType"
+ }
+ },
"com.amazonaws.outposts#OutpostName": {
"type": "string",
"traits": {
@@ -3566,9 +4041,15 @@
{
"target": "com.amazonaws.outposts#GetSiteAddress"
},
+ {
+ "target": "com.amazonaws.outposts#ListAssetInstances"
+ },
{
"target": "com.amazonaws.outposts#ListAssets"
},
+ {
+ "target": "com.amazonaws.outposts#ListBlockingInstancesForCapacityTask"
+ },
{
"target": "com.amazonaws.outposts#ListCapacityTasks"
},
@@ -5106,7 +5587,7 @@
}
],
"traits": {
- "smithy.api#documentation": "Starts the specified capacity task. You can have one active capacity task for an order.
",
+ "smithy.api#documentation": "Starts the specified capacity task. You can have one active capacity task per order or Outpost.
",
"smithy.api#http": {
"method": "POST",
"uri": "/outposts/{OutpostIdentifier}/capacity",
@@ -5128,8 +5609,7 @@
"OrderId": {
"target": "com.amazonaws.outposts#OrderId",
"traits": {
- "smithy.api#documentation": "The ID of the Amazon Web Services Outposts order associated with the specified capacity task.
",
- "smithy.api#required": {}
+ "smithy.api#documentation": "The ID of the Amazon Web Services Outposts order associated with the specified capacity task.
"
}
},
"InstancePools": {
@@ -5139,11 +5619,23 @@
"smithy.api#required": {}
}
},
+ "InstancesToExclude": {
+ "target": "com.amazonaws.outposts#InstancesToExclude",
+ "traits": {
+ "smithy.api#documentation": "List of user-specified running instances that must not be stopped in order to free up the\n capacity needed to run the capacity task.
"
+ }
+ },
"DryRun": {
"target": "com.amazonaws.outposts#DryRun",
"traits": {
"smithy.api#default": false,
- "smithy.api#documentation": "You can request a dry run to determine if the instance type and instance size changes is above or below available instance\n capacity. Requesting a dry run does not make any changes to your plan.
"
+ "smithy.api#documentation": "You can request a dry run to determine if the instance type and instance size changes is\n above or below available instance capacity. Requesting a dry run does not make any changes to\n your plan.
"
+ }
+ },
+ "TaskActionOnBlockingInstances": {
+ "target": "com.amazonaws.outposts#TaskActionOnBlockingInstances",
+ "traits": {
+ "smithy.api#documentation": "Specify one of the following options in case an instance is blocking the capacity task\n from running.
\n "
}
}
},
@@ -5178,6 +5670,12 @@
"smithy.api#documentation": "List of the instance pools requested in the specified capacity task.
"
}
},
+ "InstancesToExclude": {
+ "target": "com.amazonaws.outposts#InstancesToExclude",
+ "traits": {
+ "smithy.api#documentation": "User-specified instances that must not be stopped in order to free up the capacity needed\n to run the capacity task.
"
+ }
+ },
"DryRun": {
"target": "com.amazonaws.outposts#DryRun",
"traits": {
@@ -5214,6 +5712,12 @@
"traits": {
"smithy.api#documentation": "Date that the specified capacity task was last modified.
"
}
+ },
+ "TaskActionOnBlockingInstances": {
+ "target": "com.amazonaws.outposts#TaskActionOnBlockingInstances",
+ "traits": {
+ "smithy.api#documentation": "User-specified option in case an instance is blocking the capacity task from\n running.
\n "
+ }
}
},
"traits": {
@@ -5502,6 +6006,23 @@
"smithy.api#pattern": "^[\\S \\n]+$"
}
},
+ "com.amazonaws.outposts#TaskActionOnBlockingInstances": {
+ "type": "enum",
+ "members": {
+ "WAIT_FOR_EVACUATION": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "WAIT_FOR_EVACUATION"
+ }
+ },
+ "FAIL_TASK": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "FAIL_TASK"
+ }
+ }
+ }
+ },
"com.amazonaws.outposts#Token": {
"type": "string",
"traits": {