/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the sagemaker-2017-07-24.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SageMaker.Model { /// /// Container for the parameters to the CreateDomain operation. /// Creates a Domain used by Amazon SageMaker Studio. A domain consists of /// an associated Amazon Elastic File System (EFS) volume, a list of authorized users, /// and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) /// configurations. Users within a domain can share notebook files and other artifacts /// with each other. /// /// /// /// EFS storage /// /// /// /// When a domain is created, an EFS volume is created for use by all of the users within /// the domain. Each user receives a private home directory within the EFS volume for /// notebooks, Git repositories, and data files. /// /// /// /// SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services /// KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services /// managed key by default. For more control, you can specify a customer managed key. /// For more information, see Protect /// Data at Rest Using Encryption. /// /// /// /// VPC configuration /// /// /// /// All SageMaker Studio traffic between the domain and the EFS volume is through the /// specified VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType /// parameter. AppNetworkAccessType corresponds to the network access type /// that you choose when you onboard to Studio. The following options are available: /// /// /// /// NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound /// rules in order to launch a SageMaker Studio app successfully. /// /// /// /// For more information, see Connect /// SageMaker Studio Notebooks to Resources in a VPC. /// /// public partial class CreateDomainRequest : AmazonSageMakerRequest { private AppNetworkAccessType _appNetworkAccessType; private AppSecurityGroupManagement _appSecurityGroupManagement; private AuthMode _authMode; private DefaultSpaceSettings _defaultSpaceSettings; private UserSettings _defaultUserSettings; private string _domainName; private DomainSettings _domainSettings; private string _homeEfsFileSystemKmsKeyId; private string _kmsKeyId; private List _subnetIds = new List(); private List _tags = new List(); private string _vpcId; /// /// Gets and sets the property AppNetworkAccessType. /// /// Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly. /// ///
  • /// /// PublicInternetOnly - Non-EFS traffic is through a VPC managed by Amazon /// SageMaker, which allows direct internet access /// ///
  • /// /// VpcOnly - All Studio traffic is through the specified VPC and subnets /// ///
///
public AppNetworkAccessType AppNetworkAccessType { get { return this._appNetworkAccessType; } set { this._appNetworkAccessType = value; } } // Check to see if AppNetworkAccessType property is set internal bool IsSetAppNetworkAccessType() { return this._appNetworkAccessType != null; } /// /// Gets and sets the property AppSecurityGroupManagement. /// /// The entity that creates and manages the required security groups for inter-app communication /// in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType /// is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn /// is provided. If setting up the domain for use with RStudio, this value must be set /// to Service. /// /// public AppSecurityGroupManagement AppSecurityGroupManagement { get { return this._appSecurityGroupManagement; } set { this._appSecurityGroupManagement = value; } } // Check to see if AppSecurityGroupManagement property is set internal bool IsSetAppSecurityGroupManagement() { return this._appSecurityGroupManagement != null; } /// /// Gets and sets the property AuthMode. /// /// The mode of authentication that members use to access the domain. /// /// [AWSProperty(Required=true)] public AuthMode AuthMode { get { return this._authMode; } set { this._authMode = value; } } // Check to see if AuthMode property is set internal bool IsSetAuthMode() { return this._authMode != null; } /// /// Gets and sets the property DefaultSpaceSettings. /// /// The default settings used to create a space. /// /// public DefaultSpaceSettings DefaultSpaceSettings { get { return this._defaultSpaceSettings; } set { this._defaultSpaceSettings = value; } } // Check to see if DefaultSpaceSettings property is set internal bool IsSetDefaultSpaceSettings() { return this._defaultSpaceSettings != null; } /// /// Gets and sets the property DefaultUserSettings. /// /// The default settings to use to create a user profile when UserSettings /// isn't specified in the call to the CreateUserProfile API. /// /// /// /// 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. /// /// [AWSProperty(Required=true)] public UserSettings DefaultUserSettings { get { return this._defaultUserSettings; } set { this._defaultUserSettings = value; } } // Check to see if DefaultUserSettings property is set internal bool IsSetDefaultUserSettings() { return this._defaultUserSettings != null; } /// /// Gets and sets the property DomainName. /// /// A name for the domain. /// /// [AWSProperty(Required=true, Max=63)] public string DomainName { get { return this._domainName; } set { this._domainName = value; } } // Check to see if DomainName property is set internal bool IsSetDomainName() { return this._domainName != null; } /// /// Gets and sets the property DomainSettings. /// /// A collection of Domain settings. /// /// public DomainSettings DomainSettings { get { return this._domainSettings; } set { this._domainSettings = value; } } // Check to see if DomainSettings property is set internal bool IsSetDomainSettings() { return this._domainSettings != null; } /// /// Gets and sets the property HomeEfsFileSystemKmsKeyId. /// /// Use KmsKeyId. /// /// [Obsolete("This property is deprecated, use KmsKeyId instead.")] [AWSProperty(Max=2048)] public string HomeEfsFileSystemKmsKeyId { get { return this._homeEfsFileSystemKmsKeyId; } set { this._homeEfsFileSystemKmsKeyId = value; } } // Check to see if HomeEfsFileSystemKmsKeyId property is set internal bool IsSetHomeEfsFileSystemKmsKeyId() { return this._homeEfsFileSystemKmsKeyId != null; } /// /// Gets and sets the property KmsKeyId. /// /// SageMaker uses Amazon Web Services KMS to encrypt the EFS volume attached to the domain /// with an Amazon Web Services managed key by default. For more control, specify a customer /// managed key. /// /// [AWSProperty(Max=2048)] public string KmsKeyId { get { return this._kmsKeyId; } set { this._kmsKeyId = value; } } // Check to see if KmsKeyId property is set internal bool IsSetKmsKeyId() { return this._kmsKeyId != null; } /// /// Gets and sets the property SubnetIds. /// /// The VPC subnets that Studio uses for communication. /// /// [AWSProperty(Required=true, Min=1, Max=16)] public List SubnetIds { get { return this._subnetIds; } set { this._subnetIds = value; } } // Check to see if SubnetIds property is set internal bool IsSetSubnetIds() { return this._subnetIds != null && this._subnetIds.Count > 0; } /// /// Gets and sets the property Tags. /// /// Tags to associated with the Domain. Each tag consists of a key and an optional value. /// Tag keys must be unique per resource. Tags are searchable using the Search /// API. /// /// /// /// Tags that you specify for the Domain are also added to all Apps that the Domain launches. /// /// [AWSProperty(Min=0, Max=50)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property VpcId. /// /// The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. /// /// [AWSProperty(Required=true, Max=32)] public string VpcId { get { return this._vpcId; } set { this._vpcId = value; } } // Check to see if VpcId property is set internal bool IsSetVpcId() { return this._vpcId != null; } } }