Skip to content

Commit d2cbd47

Browse files
author
awstools
committed
feat(client-sagemaker): SageMaker Ground Truth now supports Virtual Private Cloud. Customers can launch labeling jobs and access to their private workforce in VPC mode.
1 parent d809dff commit d2cbd47

File tree

12 files changed

+576
-134
lines changed

12 files changed

+576
-134
lines changed

clients/client-sagemaker/src/SageMaker.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2385,8 +2385,7 @@ export class SageMaker extends SageMakerClient {
23852385
* <code>CreateEndpoint</code> API. SageMaker then deploys all of the containers that you
23862386
* defined for the model in the hosting environment. </p>
23872387
* <p>For an example that calls this method when deploying a model to SageMaker hosting services,
2388-
* see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-deploy-model.html#ex1-deploy-model-boto">Deploy the
2389-
* Model to Amazon SageMaker Hosting Services (Amazon Web Services SDK for Python (Boto
2388+
* see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html#realtime-endpoints-deployment-create-model">Create a Model (Amazon Web Services SDK for Python (Boto
23902389
* 3)).</a>
23912390
* </p>
23922391
* <p>To run a batch transform using your model, you start a job with the
@@ -9910,13 +9909,19 @@ export class SageMaker extends SageMakerClient {
99109909
* <p>Use this operation to update your workforce. You can use this operation to
99119910
* require that workers use specific IP addresses to work on tasks
99129911
* and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.</p>
9912+
* <p>The worker portal is now supported in VPC and public internet.</p>
9913+
*
99139914
*
99149915
* <p> Use <code>SourceIpConfig</code> to restrict worker access to tasks to a specific range of IP addresses.
99159916
* You specify allowed IP addresses by creating a list of up to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>.
99169917
* By default, a workforce isn't restricted to specific IP addresses. If you specify a
99179918
* range of IP addresses, workers who attempt to access tasks using any IP address outside
99189919
* the specified range are denied and get a <code>Not Found</code> error message on
99199920
* the worker portal.</p>
9921+
* <p>To restrict access to all the workers in public internet, add the <code>SourceIpConfig</code> CIDR value as "0.0.0.0/0".</p>
9922+
* <important>
9923+
* <p>Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.</p>
9924+
* </important>
99209925
* <p>Use <code>OidcConfig</code> to update the configuration of a workforce created using
99219926
* your own OIDC IdP. </p>
99229927
* <important>

clients/client-sagemaker/src/commands/CreateModelCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ export interface CreateModelCommandOutput extends CreateModelOutput, __MetadataB
3434
* <code>CreateEndpoint</code> API. SageMaker then deploys all of the containers that you
3535
* defined for the model in the hosting environment. </p>
3636
* <p>For an example that calls this method when deploying a model to SageMaker hosting services,
37-
* see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-deploy-model.html#ex1-deploy-model-boto">Deploy the
38-
* Model to Amazon SageMaker Hosting Services (Amazon Web Services SDK for Python (Boto
37+
* see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html#realtime-endpoints-deployment-create-model">Create a Model (Amazon Web Services SDK for Python (Boto
3938
* 3)).</a>
4039
* </p>
4140
* <p>To run a batch transform using your model, you start a job with the

clients/client-sagemaker/src/commands/DescribeLabelingJobCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import {
1212
SerdeContext as __SerdeContext,
1313
} from "@aws-sdk/types";
1414

15-
import { DescribeLabelingJobRequest } from "../models/models_1";
16-
import { DescribeLabelingJobResponse } from "../models/models_2";
15+
import { DescribeLabelingJobRequest, DescribeLabelingJobResponse } from "../models/models_2";
1716
import {
1817
deserializeAws_json1_1DescribeLabelingJobCommand,
1918
serializeAws_json1_1DescribeLabelingJobCommand,

clients/client-sagemaker/src/commands/ListStudioLifecycleConfigsCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import {
1212
SerdeContext as __SerdeContext,
1313
} from "@aws-sdk/types";
1414

15-
import { ListStudioLifecycleConfigsRequest, ListStudioLifecycleConfigsResponse } from "../models/models_2";
15+
import { ListStudioLifecycleConfigsRequest } from "../models/models_2";
16+
import { ListStudioLifecycleConfigsResponse } from "../models/models_3";
1617
import {
1718
deserializeAws_json1_1ListStudioLifecycleConfigsCommand,
1819
serializeAws_json1_1ListStudioLifecycleConfigsCommand,

clients/client-sagemaker/src/commands/ListSubscribedWorkteamsCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import {
1212
SerdeContext as __SerdeContext,
1313
} from "@aws-sdk/types";
1414

15-
import { ListSubscribedWorkteamsRequest } from "../models/models_2";
16-
import { ListSubscribedWorkteamsResponse } from "../models/models_3";
15+
import { ListSubscribedWorkteamsRequest, ListSubscribedWorkteamsResponse } from "../models/models_3";
1716
import {
1817
deserializeAws_json1_1ListSubscribedWorkteamsCommand,
1918
serializeAws_json1_1ListSubscribedWorkteamsCommand,

clients/client-sagemaker/src/commands/UpdateWorkforceCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,19 @@ export interface UpdateWorkforceCommandOutput extends UpdateWorkforceResponse, _
2626
* <p>Use this operation to update your workforce. You can use this operation to
2727
* require that workers use specific IP addresses to work on tasks
2828
* and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.</p>
29+
* <p>The worker portal is now supported in VPC and public internet.</p>
30+
*
2931
*
3032
* <p> Use <code>SourceIpConfig</code> to restrict worker access to tasks to a specific range of IP addresses.
3133
* You specify allowed IP addresses by creating a list of up to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>.
3234
* By default, a workforce isn't restricted to specific IP addresses. If you specify a
3335
* range of IP addresses, workers who attempt to access tasks using any IP address outside
3436
* the specified range are denied and get a <code>Not Found</code> error message on
3537
* the worker portal.</p>
38+
* <p>To restrict access to all the workers in public internet, add the <code>SourceIpConfig</code> CIDR value as "0.0.0.0/0".</p>
39+
* <important>
40+
* <p>Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.</p>
41+
* </important>
3642
* <p>Use <code>OidcConfig</code> to update the configuration of a workforce created using
3743
* your own OIDC IdP. </p>
3844
* <important>

clients/client-sagemaker/src/models/models_0.ts

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4547,6 +4547,23 @@ export enum AutoMLS3DataType {
45474547
export interface AutoMLS3DataSource {
45484548
/**
45494549
* <p>The data type.</p>
4550+
* <p>A ManifestFile should have the format shown below:</p>
4551+
* <p>
4552+
* <code>[ {"prefix": "s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/DOC-EXAMPLE-PREFIX/"}, </code>
4553+
* </p>
4554+
* <p>
4555+
* <code>"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-1",</code>
4556+
* </p>
4557+
* <p>
4558+
* <code>"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-2",</code>
4559+
* </p>
4560+
* <p>
4561+
* <code>... "DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-N" ]</code>
4562+
* </p>
4563+
* <p>An S3Prefix should have the following format: </p>
4564+
* <p>
4565+
* <code>s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER-OR-FILE</code>
4566+
* </p>
45504567
*/
45514568
S3DataType: AutoMLS3DataType | string | undefined;
45524569

@@ -4571,9 +4588,6 @@ export namespace AutoMLS3DataSource {
45714588
export interface AutoMLDataSource {
45724589
/**
45734590
* <p>The Amazon S3 location of the input data.</p>
4574-
* <note>
4575-
* <p>The input data must be in CSV format and contain at least 500 rows.</p>
4576-
* </note>
45774591
*/
45784592
S3DataSource: AutoMLS3DataSource | undefined;
45794593
}
@@ -4642,7 +4656,7 @@ export namespace AutoMLChannel {
46424656
}
46434657

46444658
/**
4645-
* <p>This structure specifies how to split the data into train and test datasets. The
4659+
* <p>This structure specifies how to split the data into train and validation datasets. The
46464660
* validation and training datasets must contain the same headers. The validation dataset must
46474661
* be less than 2 GB in size.</p>
46484662
*/
@@ -6989,7 +7003,11 @@ export interface ResourceSpec {
69897003
/**
69907004
* <p>The instance type that the image version runs on.</p>
69917005
* <note>
6992-
* <p>JupyterServer Apps only support the <code>system</code> value. KernelGateway Apps do not support the <code>system</code> value, but support all other values for available instance types.</p>
7006+
* <p>
7007+
* <b>JupyterServer apps</b> only support the <code>system</code> value.</p>
7008+
* <p>For <b>KernelGateway apps</b>, the <code>system</code>
7009+
* value is translated to <code>ml.t3.medium</code>. KernelGateway apps also support all other values for available
7010+
* instance types.</p>
69937011
* </note>
69947012
*/
69957013
InstanceType?: AppInstanceType | string;
@@ -7039,6 +7057,11 @@ export interface CreateAppRequest {
70397057

70407058
/**
70417059
* <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.</p>
7060+
* <note>
7061+
* <p>The value of <code>InstanceType</code> passed as part of the <code>ResourceSpec</code> in the <code>CreateApp</code> call overrides the value passed as part of the <code>ResourceSpec</code> configured for
7062+
* the user profile or the domain. If <code>InstanceType</code> is not specified in any of those three <code>ResourceSpec</code> values for a
7063+
* <code>KernelGateway</code> app, the <code>CreateApp</code> call fails with a request validation error.</p>
7064+
* </note>
70427065
*/
70437066
ResourceSpec?: ResourceSpec;
70447067
}

clients/client-sagemaker/src/models/models_1.ts

Lines changed: 44 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2489,6 +2489,14 @@ export interface LabelingJobResourceConfig {
24892489
* </ul>
24902490
*/
24912491
VolumeKmsKeyId?: string;
2492+
2493+
/**
2494+
* <p>Specifies a VPC that your training jobs and hosted models have access to. Control
2495+
* access to and from your training and model containers by configuring the VPC. For more
2496+
* information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs
2497+
* by Using an Amazon Virtual Private Cloud</a>. </p>
2498+
*/
2499+
VpcConfig?: VpcConfig;
24922500
}
24932501

24942502
export namespace LabelingJobResourceConfig {
@@ -2985,7 +2993,7 @@ export interface ModelBiasAppSpecification {
29852993

29862994
/**
29872995
* <p>JSON formatted S3 file that defines bias parameters. For more information on this JSON
2988-
* configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/json-bias-parameter-config.html">Configure bias
2996+
* configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-config-json-monitor-bias-parameters.html">Configure bias
29892997
* parameters</a>.</p>
29902998
*/
29912999
ConfigUri: string | undefined;
@@ -3163,7 +3171,7 @@ export interface ModelExplainabilityAppSpecification {
31633171

31643172
/**
31653173
* <p>JSON formatted S3 file that defines explainability parameters. For more information on
3166-
* this JSON configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/json-model-explainability-parameter-config.html">Configure model
3174+
* this JSON configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-config-json-monitor-model-explainability-parameters.html">Configure model
31673175
* explainability parameters</a>.</p>
31683176
*/
31693177
ConfigUri: string | undefined;
@@ -6877,6 +6885,35 @@ export namespace SourceIpConfig {
68776885
});
68786886
}
68796887

6888+
/**
6889+
* <p>The VPC object you use to create or update a workforce.</p>
6890+
*/
6891+
export interface WorkforceVpcConfigRequest {
6892+
/**
6893+
* <p>The ID of the VPC that the workforce uses for communication.</p>
6894+
*/
6895+
VpcId?: string;
6896+
6897+
/**
6898+
* <p>The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet.</p>
6899+
*/
6900+
SecurityGroupIds?: string[];
6901+
6902+
/**
6903+
* <p>The ID of the subnets in the VPC that you want to connect.</p>
6904+
*/
6905+
Subnets?: string[];
6906+
}
6907+
6908+
export namespace WorkforceVpcConfigRequest {
6909+
/**
6910+
* @internal
6911+
*/
6912+
export const filterSensitiveLog = (obj: WorkforceVpcConfigRequest): any => ({
6913+
...obj,
6914+
});
6915+
}
6916+
68806917
export interface CreateWorkforceRequest {
68816918
/**
68826919
* <p>Use this parameter to configure an Amazon Cognito private workforce.
@@ -6914,6 +6951,11 @@ export interface CreateWorkforceRequest {
69146951
* both of which you define.</p>
69156952
*/
69166953
Tags?: Tag[];
6954+
6955+
/**
6956+
* <p>Use this parameter to configure a workforce using VPC.</p>
6957+
*/
6958+
WorkforceVpcConfig?: WorkforceVpcConfigRequest;
69176959
}
69186960

69196961
export namespace CreateWorkforceRequest {
@@ -11326,19 +11368,3 @@ export namespace DescribeInferenceRecommendationsJobResponse {
1132611368
...obj,
1132711369
});
1132811370
}
11329-
11330-
export interface DescribeLabelingJobRequest {
11331-
/**
11332-
* <p>The name of the labeling job to return information for.</p>
11333-
*/
11334-
LabelingJobName: string | undefined;
11335-
}
11336-
11337-
export namespace DescribeLabelingJobRequest {
11338-
/**
11339-
* @internal
11340-
*/
11341-
export const filterSensitiveLog = (obj: DescribeLabelingJobRequest): any => ({
11342-
...obj,
11343-
});
11344-
}

0 commit comments

Comments
 (0)