Skip to content

Commit

Permalink
feat(client-sagemaker): Add capability for Admins to customize Studio…
Browse files Browse the repository at this point in the history
… experience for the user by showing or hiding Apps and MLTools.
  • Loading branch information
awstools committed Jun 27, 2024
1 parent 2028122 commit c8b653f
Show file tree
Hide file tree
Showing 15 changed files with 449 additions and 186 deletions.
8 changes: 8 additions & 0 deletions clients/client-sagemaker/src/commands/CreateDomainCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,14 @@ export interface CreateDomainCommandOutput extends CreateDomainResponse, __Metad
* },
* },
* ],
* StudioWebPortalSettings: { // StudioWebPortalSettings
* HiddenMlTools: [ // HiddenMlToolsList
* "DataWrangler" || "FeatureStore" || "EmrClusters" || "AutoMl" || "Experiments" || "Training" || "ModelEvaluation" || "Pipelines" || "Models" || "JumpStart" || "InferenceRecommender" || "Endpoints" || "Projects",
* ],
* HiddenAppTypes: [ // HiddenAppTypesList
* "JupyterServer" || "KernelGateway" || "DetailedProfiler" || "TensorBoard" || "CodeEditor" || "JupyterLab" || "RStudioServerPro" || "RSessionGateway" || "Canvas",
* ],
* },
* },
* DomainSettings: { // DomainSettings
* SecurityGroupIds: [ // DomainSecurityGroupIds
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { CreateProjectInput, CreateProjectOutput } from "../models/models_1";
import { CreateProjectInput, CreateProjectOutput } from "../models/models_2";
import { de_CreateProjectCommand, se_CreateProjectCommand } from "../protocols/Aws_json1_1";
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,14 @@ export interface CreateUserProfileCommandOutput extends CreateUserProfileRespons
* },
* },
* ],
* StudioWebPortalSettings: { // StudioWebPortalSettings
* HiddenMlTools: [ // HiddenMlToolsList
* "DataWrangler" || "FeatureStore" || "EmrClusters" || "AutoMl" || "Experiments" || "Training" || "ModelEvaluation" || "Pipelines" || "Models" || "JumpStart" || "InferenceRecommender" || "Endpoints" || "Projects",
* ],
* HiddenAppTypes: [ // HiddenAppTypesList
* "JupyterServer" || "KernelGateway" || "DetailedProfiler" || "TensorBoard" || "CodeEditor" || "JupyterLab" || "RStudioServerPro" || "RSessionGateway" || "Canvas",
* ],
* },
* },
* };
* const command = new CreateUserProfileCommand(input);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,14 @@ export interface DescribeDomainCommandOutput extends DescribeDomainResponse, __M
* // },
* // },
* // ],
* // StudioWebPortalSettings: { // StudioWebPortalSettings
* // HiddenMlTools: [ // HiddenMlToolsList
* // "DataWrangler" || "FeatureStore" || "EmrClusters" || "AutoMl" || "Experiments" || "Training" || "ModelEvaluation" || "Pipelines" || "Models" || "JumpStart" || "InferenceRecommender" || "Endpoints" || "Projects",
* // ],
* // HiddenAppTypes: [ // HiddenAppTypesList
* // "JupyterServer" || "KernelGateway" || "DetailedProfiler" || "TensorBoard" || "CodeEditor" || "JupyterLab" || "RStudioServerPro" || "RSessionGateway" || "Canvas",
* // ],
* // },
* // },
* // DomainSettings: { // DomainSettings
* // SecurityGroupIds: [ // DomainSecurityGroupIds
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,14 @@ export interface DescribeUserProfileCommandOutput extends DescribeUserProfileRes
* // },
* // },
* // ],
* // StudioWebPortalSettings: { // StudioWebPortalSettings
* // HiddenMlTools: [ // HiddenMlToolsList
* // "DataWrangler" || "FeatureStore" || "EmrClusters" || "AutoMl" || "Experiments" || "Training" || "ModelEvaluation" || "Pipelines" || "Models" || "JumpStart" || "InferenceRecommender" || "Endpoints" || "Projects",
* // ],
* // HiddenAppTypes: [ // HiddenAppTypesList
* // "JupyterServer" || "KernelGateway" || "DetailedProfiler" || "TensorBoard" || "CodeEditor" || "JupyterLab" || "RStudioServerPro" || "RSessionGateway" || "Canvas",
* // ],
* // },
* // },
* // };
*
Expand Down
3 changes: 2 additions & 1 deletion clients/client-sagemaker/src/commands/ListModelsCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { ListModelsInput, ListModelsOutput } from "../models/models_3";
import { ListModelsInput } from "../models/models_3";
import { ListModelsOutput } from "../models/models_4";
import { de_ListModelsCommand, se_ListModelsCommand } from "../protocols/Aws_json1_1";
import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";

Expand Down
8 changes: 8 additions & 0 deletions clients/client-sagemaker/src/commands/UpdateDomainCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,14 @@ export interface UpdateDomainCommandOutput extends UpdateDomainResponse, __Metad
* },
* },
* ],
* StudioWebPortalSettings: { // StudioWebPortalSettings
* HiddenMlTools: [ // HiddenMlToolsList
* "DataWrangler" || "FeatureStore" || "EmrClusters" || "AutoMl" || "Experiments" || "Training" || "ModelEvaluation" || "Pipelines" || "Models" || "JumpStart" || "InferenceRecommender" || "Endpoints" || "Projects",
* ],
* HiddenAppTypes: [ // HiddenAppTypesList
* "JupyterServer" || "KernelGateway" || "DetailedProfiler" || "TensorBoard" || "CodeEditor" || "JupyterLab" || "RStudioServerPro" || "RSessionGateway" || "Canvas",
* ],
* },
* },
* DomainSettingsForUpdate: { // DomainSettingsForUpdate
* RStudioServerProDomainSettingsForUpdate: { // RStudioServerProDomainSettingsForUpdate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,14 @@ export interface UpdateUserProfileCommandOutput extends UpdateUserProfileRespons
* },
* },
* ],
* StudioWebPortalSettings: { // StudioWebPortalSettings
* HiddenMlTools: [ // HiddenMlToolsList
* "DataWrangler" || "FeatureStore" || "EmrClusters" || "AutoMl" || "Experiments" || "Training" || "ModelEvaluation" || "Pipelines" || "Models" || "JumpStart" || "InferenceRecommender" || "Endpoints" || "Projects",
* ],
* HiddenAppTypes: [ // HiddenAppTypesList
* "JupyterServer" || "KernelGateway" || "DetailedProfiler" || "TensorBoard" || "CodeEditor" || "JupyterLab" || "RStudioServerPro" || "RSessionGateway" || "Canvas",
* ],
* },
* },
* };
* const command = new UpdateUserProfileCommand(input);
Expand Down
4 changes: 2 additions & 2 deletions clients/client-sagemaker/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8938,7 +8938,7 @@ export interface ClarifyExplainerConfig {

/**
* <p>Defines the configuration for attaching an additional Amazon Elastic Block Store (EBS)
* volume to each instance of the SageMaker HyperPod cluster instance group.</p>
* volume to each instance of the SageMaker HyperPod cluster instance group. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html#sagemaker-hyperpod-release-notes-20240620">SageMaker HyperPod release notes: June 20, 2024</a>.</p>
* @public
*/
export interface ClusterEbsVolumeConfig {
Expand All @@ -8954,7 +8954,7 @@ export interface ClusterEbsVolumeConfig {

/**
* <p>Defines the configuration for attaching additional storage to the instances in the
* SageMaker HyperPod cluster instance group.</p>
* SageMaker HyperPod cluster instance group. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html#sagemaker-hyperpod-release-notes-20240620">SageMaker HyperPod release notes: June 20, 2024</a>.</p>
* @public
*/
export type ClusterInstanceStorageConfig =
Expand Down
100 changes: 50 additions & 50 deletions clients/client-sagemaker/src/models/models_1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
AppNetworkAccessType,
AppSecurityGroupManagement,
AppSpecification,
AppType,
AsyncInferenceConfig,
AthenaDatasetDefinition,
AuthMode,
Expand Down Expand Up @@ -2025,6 +2026,49 @@ export const StudioWebPortal = {
*/
export type StudioWebPortal = (typeof StudioWebPortal)[keyof typeof StudioWebPortal];

/**
* @public
* @enum
*/
export const MlTools = {
AUTO_ML: "AutoMl",
DATA_WRANGLER: "DataWrangler",
EMR_CLUSTERS: "EmrClusters",
ENDPOINTS: "Endpoints",
EXPERIMENTS: "Experiments",
FEATURE_STORE: "FeatureStore",
INFERENCE_RECOMMENDER: "InferenceRecommender",
JUMP_START: "JumpStart",
MODELS: "Models",
MODEL_EVALUATION: "ModelEvaluation",
PIPELINES: "Pipelines",
PROJECTS: "Projects",
TRAINING: "Training",
} as const;

/**
* @public
*/
export type MlTools = (typeof MlTools)[keyof typeof MlTools];

/**
* <p>Studio settings. If these settings are applied on a user level, they take priority over the settings applied on a domain level.</p>
* @public
*/
export interface StudioWebPortalSettings {
/**
* <p>The machine learning tools that are hidden from the Studio left navigation pane.</p>
* @public
*/
HiddenMlTools?: MlTools[];

/**
* <p>The <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-apps.html">Applications supported in Studio</a> that are hidden from the Studio left navigation pane.</p>
* @public
*/
HiddenAppTypes?: AppType[];
}

/**
* <p>The TensorBoard app settings.</p>
* @public
Expand Down Expand Up @@ -2161,6 +2205,12 @@ export interface UserSettings {
* @public
*/
CustomFileSystemConfigs?: CustomFileSystemConfig[];

/**
* <p>Studio settings. If these settings are applied on a user level, they take priority over the settings applied on a domain level.</p>
* @public
*/
StudioWebPortalSettings?: StudioWebPortalSettings;
}

/**
Expand Down Expand Up @@ -12673,56 +12723,6 @@ export interface ServiceCatalogProvisioningDetails {
ProvisioningParameters?: ProvisioningParameter[];
}

/**
* @public
*/
export interface CreateProjectInput {
/**
* <p>The name of the project.</p>
* @public
*/
ProjectName: string | undefined;

/**
* <p>A description for the project.</p>
* @public
*/
ProjectDescription?: string;

/**
* <p>The product ID and provisioning artifact ID to provision a service catalog. The provisioning
* artifact ID will default to the latest provisioning artifact ID of the product, if you don't
* provide the provisioning artifact ID. For more information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service
* Catalog</a>.</p>
* @public
*/
ServiceCatalogProvisioningDetails: ServiceCatalogProvisioningDetails | undefined;

/**
* <p>An array of key-value pairs that you want to use to organize and track your Amazon Web Services
* resource costs. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a> in the <i>Amazon Web Services General Reference Guide</i>.</p>
* @public
*/
Tags?: Tag[];
}

/**
* @public
*/
export interface CreateProjectOutput {
/**
* <p>The Amazon Resource Name (ARN) of the project.</p>
* @public
*/
ProjectArn: string | undefined;

/**
* <p>The ID of the new project.</p>
* @public
*/
ProjectId: string | undefined;
}

/**
* @internal
*/
Expand Down
Loading

0 comments on commit c8b653f

Please sign in to comment.