/* * 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 machinelearning-2014-12-12.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.MachineLearning.Model { /// /// The data specification of an Amazon Relational Database Service (Amazon RDS) DataSource. /// public partial class RDSDataSpec { private RDSDatabaseCredentials _databaseCredentials; private RDSDatabase _databaseInformation; private string _dataRearrangement; private string _dataSchema; private string _dataSchemaUri; private string _resourceRole; private string _s3StagingLocation; private List _securityGroupIds = new List(); private string _selectSqlQuery; private string _serviceRole; private string _subnetId; /// /// Gets and sets the property DatabaseCredentials. /// /// The AWS Identity and Access Management (IAM) credentials that are used connect to /// the Amazon RDS database. /// /// [AWSProperty(Required=true)] public RDSDatabaseCredentials DatabaseCredentials { get { return this._databaseCredentials; } set { this._databaseCredentials = value; } } // Check to see if DatabaseCredentials property is set internal bool IsSetDatabaseCredentials() { return this._databaseCredentials != null; } /// /// Gets and sets the property DatabaseInformation. /// /// Describes the DatabaseName and InstanceIdentifier of an /// Amazon RDS database. /// /// [AWSProperty(Required=true)] public RDSDatabase DatabaseInformation { get { return this._databaseInformation; } set { this._databaseInformation = value; } } // Check to see if DatabaseInformation property is set internal bool IsSetDatabaseInformation() { return this._databaseInformation != null; } /// /// Gets and sets the property DataRearrangement. /// /// A JSON string that represents the splitting and rearrangement processing to be applied /// to a DataSource. If the DataRearrangement parameter is not /// provided, all of the input data is used to create the Datasource. /// /// /// /// There are multiple parameters that control what data is used to create a datasource: /// ///
  • /// /// percentBegin /// /// /// /// Use percentBegin to indicate the beginning of the range of the data used /// to create the Datasource. If you do not include percentBegin and percentEnd, /// Amazon ML includes all of the data when creating the datasource. /// ///
  • /// /// percentEnd /// /// /// /// Use percentEnd to indicate the end of the range of the data used to create /// the Datasource. If you do not include percentBegin and percentEnd, /// Amazon ML includes all of the data when creating the datasource. /// ///
  • /// /// complement /// /// /// /// The complement parameter instructs Amazon ML to use the data that is /// not included in the range of percentBegin to percentEnd /// to create a datasource. The complement parameter is useful if you need /// to create complementary datasources for training and evaluation. To create a complementary /// datasource, use the same values for percentBegin and percentEnd, /// along with the complement parameter. /// /// /// /// For example, the following two datasources do not share any data, and can be used /// to train and evaluate a model. The first datasource has 25 percent of the data, and /// the second one has 75 percent of the data. /// /// /// /// Datasource for evaluation: {"splitting":{"percentBegin":0, "percentEnd":25}} /// /// /// /// /// Datasource for training: {"splitting":{"percentBegin":0, "percentEnd":25, "complement":"true"}} /// /// ///
  • /// /// strategy /// /// /// /// To change how Amazon ML splits the data for a datasource, use the strategy /// parameter. /// /// /// /// The default value for the strategy parameter is sequential, /// meaning that Amazon ML takes all of the data records between the percentBegin /// and percentEnd parameters for the datasource, in the order that the records /// appear in the input data. /// /// /// /// The following two DataRearrangement lines are examples of sequentially /// ordered training and evaluation datasources: /// /// /// /// Datasource for evaluation: {"splitting":{"percentBegin":70, "percentEnd":100, /// "strategy":"sequential"}} /// /// /// /// Datasource for training: {"splitting":{"percentBegin":70, "percentEnd":100, /// "strategy":"sequential", "complement":"true"}} /// /// /// /// To randomly split the input data into the proportions indicated by the percentBegin /// and percentEnd parameters, set the strategy parameter to random /// and provide a string that is used as the seed value for the random data splitting /// (for example, you can use the S3 path to your data as the random seed string). If /// you choose the random split strategy, Amazon ML assigns each row of data a pseudo-random /// number between 0 and 100, and then selects the rows that have an assigned number between /// percentBegin and percentEnd. Pseudo-random numbers are assigned /// using both the input seed string value and the byte offset as a seed, so changing /// the data results in a different split. Any existing ordering is preserved. The random /// splitting strategy ensures that variables in the training and evaluation data are /// distributed similarly. It is useful in the cases where the input data may have an /// implicit sort order, which would otherwise result in training and evaluation datasources /// containing non-similar data records. /// /// /// /// The following two DataRearrangement lines are examples of non-sequentially /// ordered training and evaluation datasources: /// /// /// /// Datasource for evaluation: {"splitting":{"percentBegin":70, "percentEnd":100, /// "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv"}} /// /// /// /// Datasource for training: {"splitting":{"percentBegin":70, "percentEnd":100, /// "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv", "complement":"true"}} /// /// ///
///
public string DataRearrangement { get { return this._dataRearrangement; } set { this._dataRearrangement = value; } } // Check to see if DataRearrangement property is set internal bool IsSetDataRearrangement() { return this._dataRearrangement != null; } /// /// Gets and sets the property DataSchema. /// /// A JSON string that represents the schema for an Amazon RDS DataSource. /// The DataSchema defines the structure of the observation data in the data /// file(s) referenced in the DataSource. /// /// /// /// A DataSchema is not required if you specify a DataSchemaUri /// /// /// /// /// Define your DataSchema as a series of key-value pairs. attributes /// and excludedVariableNames have an array of key-value pairs for their /// value. Use the following format to define your DataSchema. /// /// /// /// { "version": "1.0", /// /// /// /// "recordAnnotationFieldName": "F1", /// /// /// /// "recordWeightFieldName": "F2", /// /// /// /// "targetFieldName": "F3", /// /// /// /// "dataFormat": "CSV", /// /// /// /// "dataFileContainsHeader": true, /// /// /// /// "attributes": [ /// /// /// /// { "fieldName": "F1", "fieldType": "TEXT" }, { "fieldName": "F2", "fieldType": "NUMERIC" /// }, { "fieldName": "F3", "fieldType": "CATEGORICAL" }, { "fieldName": "F4", "fieldType": /// "NUMERIC" }, { "fieldName": "F5", "fieldType": "CATEGORICAL" }, { "fieldName": "F6", /// "fieldType": "TEXT" }, { "fieldName": "F7", "fieldType": "WEIGHTED_INT_SEQUENCE" }, /// { "fieldName": "F8", "fieldType": "WEIGHTED_STRING_SEQUENCE" } ], /// /// /// /// "excludedVariableNames": [ "F6" ] } /// /// [AWSProperty(Max=131071)] public string DataSchema { get { return this._dataSchema; } set { this._dataSchema = value; } } // Check to see if DataSchema property is set internal bool IsSetDataSchema() { return this._dataSchema != null; } /// /// Gets and sets the property DataSchemaUri. /// /// The Amazon S3 location of the DataSchema. /// /// [AWSProperty(Max=2048)] public string DataSchemaUri { get { return this._dataSchemaUri; } set { this._dataSchemaUri = value; } } // Check to see if DataSchemaUri property is set internal bool IsSetDataSchemaUri() { return this._dataSchemaUri != null; } /// /// Gets and sets the property ResourceRole. /// /// The role (DataPipelineDefaultResourceRole) assumed by an Amazon Elastic Compute Cloud /// (Amazon EC2) instance to carry out the copy operation from Amazon RDS to an Amazon /// S3 task. For more information, see Role /// templates for data pipelines. /// /// [AWSProperty(Required=true, Min=1, Max=64)] public string ResourceRole { get { return this._resourceRole; } set { this._resourceRole = value; } } // Check to see if ResourceRole property is set internal bool IsSetResourceRole() { return this._resourceRole != null; } /// /// Gets and sets the property S3StagingLocation. /// /// The Amazon S3 location for staging Amazon RDS data. The data retrieved from Amazon /// RDS using SelectSqlQuery is stored in this location. /// /// [AWSProperty(Required=true, Max=2048)] public string S3StagingLocation { get { return this._s3StagingLocation; } set { this._s3StagingLocation = value; } } // Check to see if S3StagingLocation property is set internal bool IsSetS3StagingLocation() { return this._s3StagingLocation != null; } /// /// Gets and sets the property SecurityGroupIds. /// /// The security group IDs to be used to access a VPC-based RDS DB instance. Ensure that /// there are appropriate ingress rules set up to allow access to the RDS DB instance. /// This attribute is used by Data Pipeline to carry out the copy operation from Amazon /// RDS to an Amazon S3 task. /// /// [AWSProperty(Required=true)] public List SecurityGroupIds { get { return this._securityGroupIds; } set { this._securityGroupIds = value; } } // Check to see if SecurityGroupIds property is set internal bool IsSetSecurityGroupIds() { return this._securityGroupIds != null && this._securityGroupIds.Count > 0; } /// /// Gets and sets the property SelectSqlQuery. /// /// The query that is used to retrieve the observation data for the DataSource. /// /// [AWSProperty(Required=true, Min=1, Max=16777216)] public string SelectSqlQuery { get { return this._selectSqlQuery; } set { this._selectSqlQuery = value; } } // Check to see if SelectSqlQuery property is set internal bool IsSetSelectSqlQuery() { return this._selectSqlQuery != null; } /// /// Gets and sets the property ServiceRole. /// /// The role (DataPipelineDefaultRole) assumed by AWS Data Pipeline service to monitor /// the progress of the copy task from Amazon RDS to Amazon S3. For more information, /// see Role /// templates for data pipelines. /// /// [AWSProperty(Required=true, Min=1, Max=64)] public string ServiceRole { get { return this._serviceRole; } set { this._serviceRole = value; } } // Check to see if ServiceRole property is set internal bool IsSetServiceRole() { return this._serviceRole != null; } /// /// Gets and sets the property SubnetId. /// /// The subnet ID to be used to access a VPC-based RDS DB instance. This attribute is /// used by Data Pipeline to carry out the copy task from Amazon RDS to Amazon S3. /// /// [AWSProperty(Required=true, Min=1, Max=255)] public string SubnetId { get { return this._subnetId; } set { this._subnetId = value; } } // Check to see if SubnetId property is set internal bool IsSetSubnetId() { return this._subnetId != null; } } }