/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SageMaker { namespace Model { /** *

A collection of settings that apply to users of Amazon SageMaker Studio. * These settings are specified when the CreateUserProfile API is * called, and as DefaultUserSettings when the * CreateDomain API is called.

SecurityGroups is * aggregated when specified in both calls. For all other settings in * UserSettings, the values specified in * CreateUserProfile take precedence over those specified in * CreateDomain.

See Also:

AWS * API Reference

*/ class UserSettings { public: AWS_SAGEMAKER_API UserSettings(); AWS_SAGEMAKER_API UserSettings(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API UserSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The execution role for the user.

*/ inline const Aws::String& GetExecutionRole() const{ return m_executionRole; } /** *

The execution role for the user.

*/ inline bool ExecutionRoleHasBeenSet() const { return m_executionRoleHasBeenSet; } /** *

The execution role for the user.

*/ inline void SetExecutionRole(const Aws::String& value) { m_executionRoleHasBeenSet = true; m_executionRole = value; } /** *

The execution role for the user.

*/ inline void SetExecutionRole(Aws::String&& value) { m_executionRoleHasBeenSet = true; m_executionRole = std::move(value); } /** *

The execution role for the user.

*/ inline void SetExecutionRole(const char* value) { m_executionRoleHasBeenSet = true; m_executionRole.assign(value); } /** *

The execution role for the user.

*/ inline UserSettings& WithExecutionRole(const Aws::String& value) { SetExecutionRole(value); return *this;} /** *

The execution role for the user.

*/ inline UserSettings& WithExecutionRole(Aws::String&& value) { SetExecutionRole(std::move(value)); return *this;} /** *

The execution role for the user.

*/ inline UserSettings& WithExecutionRole(const char* value) { SetExecutionRole(value); return *this;} /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline const Aws::Vector& GetSecurityGroups() const{ return m_securityGroups; } /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline void SetSecurityGroups(const Aws::Vector& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline void SetSecurityGroups(Aws::Vector&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline UserSettings& WithSecurityGroups(const Aws::Vector& value) { SetSecurityGroups(value); return *this;} /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline UserSettings& WithSecurityGroups(Aws::Vector&& value) { SetSecurityGroups(std::move(value)); return *this;} /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline UserSettings& AddSecurityGroups(const Aws::String& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline UserSettings& AddSecurityGroups(Aws::String&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } /** *

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio * uses for communication.

Optional when the * CreateDomain.AppNetworkAccessType parameter is set to * PublicInternetOnly.

Required when the * CreateDomain.AppNetworkAccessType parameter is set to * VpcOnly, unless specified as part of the * DefaultUserSettings for the domain.

Amazon SageMaker adds a * security group to allow NFS traffic from SageMaker Studio. Therefore, the number * of security groups that you can specify is one less than the maximum number * shown.

*/ inline UserSettings& AddSecurityGroups(const char* value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

Specifies options for sharing SageMaker Studio notebooks.

*/ inline const SharingSettings& GetSharingSettings() const{ return m_sharingSettings; } /** *

Specifies options for sharing SageMaker Studio notebooks.

*/ inline bool SharingSettingsHasBeenSet() const { return m_sharingSettingsHasBeenSet; } /** *

Specifies options for sharing SageMaker Studio notebooks.

*/ inline void SetSharingSettings(const SharingSettings& value) { m_sharingSettingsHasBeenSet = true; m_sharingSettings = value; } /** *

Specifies options for sharing SageMaker Studio notebooks.

*/ inline void SetSharingSettings(SharingSettings&& value) { m_sharingSettingsHasBeenSet = true; m_sharingSettings = std::move(value); } /** *

Specifies options for sharing SageMaker Studio notebooks.

*/ inline UserSettings& WithSharingSettings(const SharingSettings& value) { SetSharingSettings(value); return *this;} /** *

Specifies options for sharing SageMaker Studio notebooks.

*/ inline UserSettings& WithSharingSettings(SharingSettings&& value) { SetSharingSettings(std::move(value)); return *this;} /** *

The Jupyter server's app settings.

*/ inline const JupyterServerAppSettings& GetJupyterServerAppSettings() const{ return m_jupyterServerAppSettings; } /** *

The Jupyter server's app settings.

*/ inline bool JupyterServerAppSettingsHasBeenSet() const { return m_jupyterServerAppSettingsHasBeenSet; } /** *

The Jupyter server's app settings.

*/ inline void SetJupyterServerAppSettings(const JupyterServerAppSettings& value) { m_jupyterServerAppSettingsHasBeenSet = true; m_jupyterServerAppSettings = value; } /** *

The Jupyter server's app settings.

*/ inline void SetJupyterServerAppSettings(JupyterServerAppSettings&& value) { m_jupyterServerAppSettingsHasBeenSet = true; m_jupyterServerAppSettings = std::move(value); } /** *

The Jupyter server's app settings.

*/ inline UserSettings& WithJupyterServerAppSettings(const JupyterServerAppSettings& value) { SetJupyterServerAppSettings(value); return *this;} /** *

The Jupyter server's app settings.

*/ inline UserSettings& WithJupyterServerAppSettings(JupyterServerAppSettings&& value) { SetJupyterServerAppSettings(std::move(value)); return *this;} /** *

The kernel gateway app settings.

*/ inline const KernelGatewayAppSettings& GetKernelGatewayAppSettings() const{ return m_kernelGatewayAppSettings; } /** *

The kernel gateway app settings.

*/ inline bool KernelGatewayAppSettingsHasBeenSet() const { return m_kernelGatewayAppSettingsHasBeenSet; } /** *

The kernel gateway app settings.

*/ inline void SetKernelGatewayAppSettings(const KernelGatewayAppSettings& value) { m_kernelGatewayAppSettingsHasBeenSet = true; m_kernelGatewayAppSettings = value; } /** *

The kernel gateway app settings.

*/ inline void SetKernelGatewayAppSettings(KernelGatewayAppSettings&& value) { m_kernelGatewayAppSettingsHasBeenSet = true; m_kernelGatewayAppSettings = std::move(value); } /** *

The kernel gateway app settings.

*/ inline UserSettings& WithKernelGatewayAppSettings(const KernelGatewayAppSettings& value) { SetKernelGatewayAppSettings(value); return *this;} /** *

The kernel gateway app settings.

*/ inline UserSettings& WithKernelGatewayAppSettings(KernelGatewayAppSettings&& value) { SetKernelGatewayAppSettings(std::move(value)); return *this;} /** *

The TensorBoard app settings.

*/ inline const TensorBoardAppSettings& GetTensorBoardAppSettings() const{ return m_tensorBoardAppSettings; } /** *

The TensorBoard app settings.

*/ inline bool TensorBoardAppSettingsHasBeenSet() const { return m_tensorBoardAppSettingsHasBeenSet; } /** *

The TensorBoard app settings.

*/ inline void SetTensorBoardAppSettings(const TensorBoardAppSettings& value) { m_tensorBoardAppSettingsHasBeenSet = true; m_tensorBoardAppSettings = value; } /** *

The TensorBoard app settings.

*/ inline void SetTensorBoardAppSettings(TensorBoardAppSettings&& value) { m_tensorBoardAppSettingsHasBeenSet = true; m_tensorBoardAppSettings = std::move(value); } /** *

The TensorBoard app settings.

*/ inline UserSettings& WithTensorBoardAppSettings(const TensorBoardAppSettings& value) { SetTensorBoardAppSettings(value); return *this;} /** *

The TensorBoard app settings.

*/ inline UserSettings& WithTensorBoardAppSettings(TensorBoardAppSettings&& value) { SetTensorBoardAppSettings(std::move(value)); return *this;} /** *

A collection of settings that configure user interaction with the * RStudioServerPro app.

*/ inline const RStudioServerProAppSettings& GetRStudioServerProAppSettings() const{ return m_rStudioServerProAppSettings; } /** *

A collection of settings that configure user interaction with the * RStudioServerPro app.

*/ inline bool RStudioServerProAppSettingsHasBeenSet() const { return m_rStudioServerProAppSettingsHasBeenSet; } /** *

A collection of settings that configure user interaction with the * RStudioServerPro app.

*/ inline void SetRStudioServerProAppSettings(const RStudioServerProAppSettings& value) { m_rStudioServerProAppSettingsHasBeenSet = true; m_rStudioServerProAppSettings = value; } /** *

A collection of settings that configure user interaction with the * RStudioServerPro app.

*/ inline void SetRStudioServerProAppSettings(RStudioServerProAppSettings&& value) { m_rStudioServerProAppSettingsHasBeenSet = true; m_rStudioServerProAppSettings = std::move(value); } /** *

A collection of settings that configure user interaction with the * RStudioServerPro app.

*/ inline UserSettings& WithRStudioServerProAppSettings(const RStudioServerProAppSettings& value) { SetRStudioServerProAppSettings(value); return *this;} /** *

A collection of settings that configure user interaction with the * RStudioServerPro app.

*/ inline UserSettings& WithRStudioServerProAppSettings(RStudioServerProAppSettings&& value) { SetRStudioServerProAppSettings(std::move(value)); return *this;} /** *

A collection of settings that configure the RSessionGateway * app.

*/ inline const RSessionAppSettings& GetRSessionAppSettings() const{ return m_rSessionAppSettings; } /** *

A collection of settings that configure the RSessionGateway * app.

*/ inline bool RSessionAppSettingsHasBeenSet() const { return m_rSessionAppSettingsHasBeenSet; } /** *

A collection of settings that configure the RSessionGateway * app.

*/ inline void SetRSessionAppSettings(const RSessionAppSettings& value) { m_rSessionAppSettingsHasBeenSet = true; m_rSessionAppSettings = value; } /** *

A collection of settings that configure the RSessionGateway * app.

*/ inline void SetRSessionAppSettings(RSessionAppSettings&& value) { m_rSessionAppSettingsHasBeenSet = true; m_rSessionAppSettings = std::move(value); } /** *

A collection of settings that configure the RSessionGateway * app.

*/ inline UserSettings& WithRSessionAppSettings(const RSessionAppSettings& value) { SetRSessionAppSettings(value); return *this;} /** *

A collection of settings that configure the RSessionGateway * app.

*/ inline UserSettings& WithRSessionAppSettings(RSessionAppSettings&& value) { SetRSessionAppSettings(std::move(value)); return *this;} /** *

The Canvas app settings.

*/ inline const CanvasAppSettings& GetCanvasAppSettings() const{ return m_canvasAppSettings; } /** *

The Canvas app settings.

*/ inline bool CanvasAppSettingsHasBeenSet() const { return m_canvasAppSettingsHasBeenSet; } /** *

The Canvas app settings.

*/ inline void SetCanvasAppSettings(const CanvasAppSettings& value) { m_canvasAppSettingsHasBeenSet = true; m_canvasAppSettings = value; } /** *

The Canvas app settings.

*/ inline void SetCanvasAppSettings(CanvasAppSettings&& value) { m_canvasAppSettingsHasBeenSet = true; m_canvasAppSettings = std::move(value); } /** *

The Canvas app settings.

*/ inline UserSettings& WithCanvasAppSettings(const CanvasAppSettings& value) { SetCanvasAppSettings(value); return *this;} /** *

The Canvas app settings.

*/ inline UserSettings& WithCanvasAppSettings(CanvasAppSettings&& value) { SetCanvasAppSettings(std::move(value)); return *this;} private: Aws::String m_executionRole; bool m_executionRoleHasBeenSet = false; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet = false; SharingSettings m_sharingSettings; bool m_sharingSettingsHasBeenSet = false; JupyterServerAppSettings m_jupyterServerAppSettings; bool m_jupyterServerAppSettingsHasBeenSet = false; KernelGatewayAppSettings m_kernelGatewayAppSettings; bool m_kernelGatewayAppSettingsHasBeenSet = false; TensorBoardAppSettings m_tensorBoardAppSettings; bool m_tensorBoardAppSettingsHasBeenSet = false; RStudioServerProAppSettings m_rStudioServerProAppSettings; bool m_rStudioServerProAppSettingsHasBeenSet = false; RSessionAppSettings m_rSessionAppSettings; bool m_rSessionAppSettingsHasBeenSet = false; CanvasAppSettings m_canvasAppSettings; bool m_canvasAppSettingsHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws