Skip to content

Commit

Permalink
feat(client-snowball): Adds support for V3_5C. This is a refreshed AW…
Browse files Browse the repository at this point in the history
…S Snowball Edge Compute Optimized device type with 28TB SSD, 104 vCPU and 416GB memory (customer usable).
  • Loading branch information
awstools committed Oct 3, 2022
1 parent b7db053 commit 22500bf
Show file tree
Hide file tree
Showing 11 changed files with 739 additions and 322 deletions.
25 changes: 21 additions & 4 deletions clients/client-snowball/src/Snowball.ts
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ export class Snowball extends SnowballClient {
* <p></p>
*
* <p class="title">
* <b>Snow Family Devices and their capacities.</b>
* <b>Snow Family devices and their capacities.</b>
* </p>
* <ul>
* <li>
Expand Down Expand Up @@ -349,6 +349,19 @@ export class Snowball extends SnowballClient {
* <p></p>
* </li>
* <li>
* <p>Device type: <b>V3_5C</b>
* </p>
* <ul>
* <li>
* <p>Capacity: T32</p>
* </li>
* <li>
* <p>Description: Snowball Edge Compute Optimized without GPU</p>
* </li>
* </ul>
* <p></p>
* </li>
* <li>
* <p>Device type: <b>STANDARD</b>
* </p>
* <ul>
Expand Down Expand Up @@ -638,9 +651,11 @@ export class Snowball extends SnowballClient {
* you'll have to make another call to the <code>GetJobManifest</code> action.</p>
*
* <p>The manifest is an encrypted file that you can download after your job enters the
* <code>WithCustomer</code> status. The manifest is decrypted by using the
* <code>WithCustomer</code> status. This is the only valid status for calling this API as the
* manifest and <code>UnlockCode</code> code value are used for securing your device and should
* only be used when you have the device. The manifest is decrypted by using the
* <code>UnlockCode</code> code value, when you pass both values to the Snow device through the
* Snowball client when the client is started for the first time.</p>
* Snowball client when the client is started for the first time. </p>
*
*
* <p>As a best practice, we recommend that you don't save a copy of an
Expand Down Expand Up @@ -689,7 +704,9 @@ export class Snowball extends SnowballClient {
* <p>The <code>UnlockCode</code> value is a 29-character code with 25 alphanumeric
* characters and 4 hyphens. This code is used to decrypt the manifest file when it is passed
* along with the manifest to the Snow device through the Snowball client when the client is
* started for the first time.</p>
* started for the first time. The only valid status for calling this API is
* <code>WithCustomer</code> as the manifest and <code>Unlock</code> code values are used for
* securing your device and should only be used when you have the device.</p>
*
* <p>As a best practice, we recommend that you don't save a copy of the
* <code>UnlockCode</code> in the same location as the manifest file for that job. Saving these
Expand Down
15 changes: 14 additions & 1 deletion clients/client-snowball/src/commands/CreateJobCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export interface CreateJobCommandOutput extends CreateJobResult, __MetadataBeare
* <p></p>
*
* <p class="title">
* <b>Snow Family Devices and their capacities.</b>
* <b>Snow Family devices and their capacities.</b>
* </p>
* <ul>
* <li>
Expand Down Expand Up @@ -125,6 +125,19 @@ export interface CreateJobCommandOutput extends CreateJobResult, __MetadataBeare
* <p></p>
* </li>
* <li>
* <p>Device type: <b>V3_5C</b>
* </p>
* <ul>
* <li>
* <p>Capacity: T32</p>
* </li>
* <li>
* <p>Description: Snowball Edge Compute Optimized without GPU</p>
* </li>
* </ul>
* <p></p>
* </li>
* <li>
* <p>Device type: <b>STANDARD</b>
* </p>
* <ul>
Expand Down
6 changes: 4 additions & 2 deletions clients/client-snowball/src/commands/GetJobManifestCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,11 @@ export interface GetJobManifestCommandOutput extends GetJobManifestResult, __Met
* you'll have to make another call to the <code>GetJobManifest</code> action.</p>
*
* <p>The manifest is an encrypted file that you can download after your job enters the
* <code>WithCustomer</code> status. The manifest is decrypted by using the
* <code>WithCustomer</code> status. This is the only valid status for calling this API as the
* manifest and <code>UnlockCode</code> code value are used for securing your device and should
* only be used when you have the device. The manifest is decrypted by using the
* <code>UnlockCode</code> code value, when you pass both values to the Snow device through the
* Snowball client when the client is started for the first time.</p>
* Snowball client when the client is started for the first time. </p>
*
*
* <p>As a best practice, we recommend that you don't save a copy of an
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ export interface GetJobUnlockCodeCommandOutput extends GetJobUnlockCodeResult, _
* <p>The <code>UnlockCode</code> value is a 29-character code with 25 alphanumeric
* characters and 4 hyphens. This code is used to decrypt the manifest file when it is passed
* along with the manifest to the Snow device through the Snowball client when the client is
* started for the first time.</p>
* started for the first time. The only valid status for calling this API is
* <code>WithCustomer</code> as the manifest and <code>Unlock</code> code values are used for
* securing your device and should only be used when you have the device.</p>
*
* <p>As a best practice, we recommend that you don't save a copy of the
* <code>UnlockCode</code> in the same location as the manifest file for that job. Saving these
Expand Down
13 changes: 8 additions & 5 deletions clients/client-snowball/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,7 @@ export enum SnowballType {
SNC1_HDD = "SNC1_HDD",
SNC1_SSD = "SNC1_SSD",
STANDARD = "STANDARD",
V3_5C = "V3_5C",
}

/**
Expand Down Expand Up @@ -586,7 +587,7 @@ export interface CreateClusterRequest {
RoleARN: string | undefined;

/**
* <p>The type of Snow Family Devices to use for this cluster. </p>
* <p>The type of Snow Family devices to use for this cluster. </p>
* <note>
* <p>For cluster jobs, Amazon Web Services Snow Family currently supports only the
* <code>EDGE</code> device type.</p>
Expand Down Expand Up @@ -779,6 +780,7 @@ export enum SnowballCapacity {
NO_PREFERENCE = "NoPreference",
T100 = "T100",
T14 = "T14",
T32 = "T32",
T42 = "T42",
T50 = "T50",
T8 = "T8",
Expand Down Expand Up @@ -892,7 +894,7 @@ export interface CreateJobRequest {
ClusterId?: string;

/**
* <p>The type of Snow Family Devices to use for this job.
* <p>The type of Snow Family devices to use for this job.
* </p>
* <note>
* <p>For cluster jobs, Amazon Web Services Snow Family currently supports only the
Expand Down Expand Up @@ -968,13 +970,14 @@ export interface CreateLongTermPricingRequest {
LongTermPricingType: LongTermPricingType | string | undefined;

/**
* <p>Specifies whether the current long-term pricing type for the device should be
* <p>snowballty</p>
* <p>Specifies whether the current long-term pricing type for the device should be
* renewed.</p>
*/
IsLongTermPricingAutoRenew?: boolean;

/**
* <p>The type of Snow Family Devices to use for the long-term pricing job.</p>
* <p>The type of Snow Family devices to use for the long-term pricing job.</p>
*/
SnowballType?: SnowballType | string;
}
Expand Down Expand Up @@ -1932,7 +1935,7 @@ export interface LongTermPricingListEntry {
LongTermPricingStatus?: string;

/**
* <p>The type of Snow Family Devices associated with this long-term pricing job.</p>
* <p>The type of Snow Family devices associated with this long-term pricing job.</p>
*/
SnowballType?: SnowballType | string;

Expand Down
61 changes: 61 additions & 0 deletions clients/client-snowball/src/pagination/ListClusterJobsPaginator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// smithy-typescript generated code
import { Paginator } from "@aws-sdk/types";

import {
ListClusterJobsCommand,
ListClusterJobsCommandInput,
ListClusterJobsCommandOutput,
} from "../commands/ListClusterJobsCommand";
import { Snowball } from "../Snowball";
import { SnowballClient } from "../SnowballClient";
import { SnowballPaginationConfiguration } from "./Interfaces";

/**
* @private
*/
const makePagedClientRequest = async (
client: SnowballClient,
input: ListClusterJobsCommandInput,
...args: any
): Promise<ListClusterJobsCommandOutput> => {
// @ts-ignore
return await client.send(new ListClusterJobsCommand(input), ...args);
};
/**
* @private
*/
const makePagedRequest = async (
client: Snowball,
input: ListClusterJobsCommandInput,
...args: any
): Promise<ListClusterJobsCommandOutput> => {
// @ts-ignore
return await client.listClusterJobs(input, ...args);
};
export async function* paginateListClusterJobs(
config: SnowballPaginationConfiguration,
input: ListClusterJobsCommandInput,
...additionalArguments: any
): Paginator<ListClusterJobsCommandOutput> {
// ToDo: replace with actual type instead of typeof input.NextToken
let token: typeof input.NextToken | undefined = config.startingToken || undefined;
let hasNext = true;
let page: ListClusterJobsCommandOutput;
while (hasNext) {
input.NextToken = token;
input["MaxResults"] = config.pageSize;
if (config.client instanceof Snowball) {
page = await makePagedRequest(config.client, input, ...additionalArguments);
} else if (config.client instanceof SnowballClient) {
page = await makePagedClientRequest(config.client, input, ...additionalArguments);
} else {
throw new Error("Invalid client, expected Snowball | SnowballClient");
}
yield page;
const prevToken = token;
token = page.NextToken;
hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));
}
// @ts-ignore
return undefined;
}
61 changes: 61 additions & 0 deletions clients/client-snowball/src/pagination/ListClustersPaginator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// smithy-typescript generated code
import { Paginator } from "@aws-sdk/types";

import {
ListClustersCommand,
ListClustersCommandInput,
ListClustersCommandOutput,
} from "../commands/ListClustersCommand";
import { Snowball } from "../Snowball";
import { SnowballClient } from "../SnowballClient";
import { SnowballPaginationConfiguration } from "./Interfaces";

/**
* @private
*/
const makePagedClientRequest = async (
client: SnowballClient,
input: ListClustersCommandInput,
...args: any
): Promise<ListClustersCommandOutput> => {
// @ts-ignore
return await client.send(new ListClustersCommand(input), ...args);
};
/**
* @private
*/
const makePagedRequest = async (
client: Snowball,
input: ListClustersCommandInput,
...args: any
): Promise<ListClustersCommandOutput> => {
// @ts-ignore
return await client.listClusters(input, ...args);
};
export async function* paginateListClusters(
config: SnowballPaginationConfiguration,
input: ListClustersCommandInput,
...additionalArguments: any
): Paginator<ListClustersCommandOutput> {
// ToDo: replace with actual type instead of typeof input.NextToken
let token: typeof input.NextToken | undefined = config.startingToken || undefined;
let hasNext = true;
let page: ListClustersCommandOutput;
while (hasNext) {
input.NextToken = token;
input["MaxResults"] = config.pageSize;
if (config.client instanceof Snowball) {
page = await makePagedRequest(config.client, input, ...additionalArguments);
} else if (config.client instanceof SnowballClient) {
page = await makePagedClientRequest(config.client, input, ...additionalArguments);
} else {
throw new Error("Invalid client, expected Snowball | SnowballClient");
}
yield page;
const prevToken = token;
token = page.NextToken;
hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));
}
// @ts-ignore
return undefined;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// smithy-typescript generated code
import { Paginator } from "@aws-sdk/types";

import {
ListCompatibleImagesCommand,
ListCompatibleImagesCommandInput,
ListCompatibleImagesCommandOutput,
} from "../commands/ListCompatibleImagesCommand";
import { Snowball } from "../Snowball";
import { SnowballClient } from "../SnowballClient";
import { SnowballPaginationConfiguration } from "./Interfaces";

/**
* @private
*/
const makePagedClientRequest = async (
client: SnowballClient,
input: ListCompatibleImagesCommandInput,
...args: any
): Promise<ListCompatibleImagesCommandOutput> => {
// @ts-ignore
return await client.send(new ListCompatibleImagesCommand(input), ...args);
};
/**
* @private
*/
const makePagedRequest = async (
client: Snowball,
input: ListCompatibleImagesCommandInput,
...args: any
): Promise<ListCompatibleImagesCommandOutput> => {
// @ts-ignore
return await client.listCompatibleImages(input, ...args);
};
export async function* paginateListCompatibleImages(
config: SnowballPaginationConfiguration,
input: ListCompatibleImagesCommandInput,
...additionalArguments: any
): Paginator<ListCompatibleImagesCommandOutput> {
// ToDo: replace with actual type instead of typeof input.NextToken
let token: typeof input.NextToken | undefined = config.startingToken || undefined;
let hasNext = true;
let page: ListCompatibleImagesCommandOutput;
while (hasNext) {
input.NextToken = token;
input["MaxResults"] = config.pageSize;
if (config.client instanceof Snowball) {
page = await makePagedRequest(config.client, input, ...additionalArguments);
} else if (config.client instanceof SnowballClient) {
page = await makePagedClientRequest(config.client, input, ...additionalArguments);
} else {
throw new Error("Invalid client, expected Snowball | SnowballClient");
}
yield page;
const prevToken = token;
token = page.NextToken;
hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));
}
// @ts-ignore
return undefined;
}
Loading

0 comments on commit 22500bf

Please sign in to comment.