
software.amazon.awssdk.services.machinelearning.model.CreateDataSourceFromRdsRequest Maven / Gradle / Ivy
/*
* 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.
*/
package software.amazon.awssdk.services.machinelearning.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*/
@Generated("software.amazon.awssdk:codegen")
public final class CreateDataSourceFromRdsRequest extends MachineLearningRequest implements
ToCopyableBuilder {
private static final SdkField DATA_SOURCE_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DataSourceId").getter(getter(CreateDataSourceFromRdsRequest::dataSourceId))
.setter(setter(Builder::dataSourceId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataSourceId").build()).build();
private static final SdkField DATA_SOURCE_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DataSourceName").getter(getter(CreateDataSourceFromRdsRequest::dataSourceName))
.setter(setter(Builder::dataSourceName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataSourceName").build()).build();
private static final SdkField RDS_DATA_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("RDSData").getter(getter(CreateDataSourceFromRdsRequest::rdsData)).setter(setter(Builder::rdsData))
.constructor(RDSDataSpec::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RDSData").build()).build();
private static final SdkField ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("RoleARN").getter(getter(CreateDataSourceFromRdsRequest::roleARN)).setter(setter(Builder::roleARN))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RoleARN").build()).build();
private static final SdkField COMPUTE_STATISTICS_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("ComputeStatistics").getter(getter(CreateDataSourceFromRdsRequest::computeStatistics))
.setter(setter(Builder::computeStatistics))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ComputeStatistics").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(DATA_SOURCE_ID_FIELD,
DATA_SOURCE_NAME_FIELD, RDS_DATA_FIELD, ROLE_ARN_FIELD, COMPUTE_STATISTICS_FIELD));
private final String dataSourceId;
private final String dataSourceName;
private final RDSDataSpec rdsData;
private final String roleARN;
private final Boolean computeStatistics;
private CreateDataSourceFromRdsRequest(BuilderImpl builder) {
super(builder);
this.dataSourceId = builder.dataSourceId;
this.dataSourceName = builder.dataSourceName;
this.rdsData = builder.rdsData;
this.roleARN = builder.roleARN;
this.computeStatistics = builder.computeStatistics;
}
/**
*
* A user-supplied ID that uniquely identifies the DataSource
. Typically, an Amazon Resource Number
* (ARN) becomes the ID for a DataSource
.
*
*
* @return A user-supplied ID that uniquely identifies the DataSource
. Typically, an Amazon Resource
* Number (ARN) becomes the ID for a DataSource
.
*/
public String dataSourceId() {
return dataSourceId;
}
/**
*
* A user-supplied name or description of the DataSource
.
*
*
* @return A user-supplied name or description of the DataSource
.
*/
public String dataSourceName() {
return dataSourceName;
}
/**
*
* The data specification of an Amazon RDS DataSource
:
*
*
* -
*
* DatabaseInformation -
*
* -
DatabaseName
- The name of the Amazon RDS database.
* -
InstanceIdentifier
- A unique identifier for the Amazon RDS database instance.
*
*
*
* -
*
* DatabaseCredentials - AWS Identity and Access Management (IAM) credentials that are used to connect to the Amazon
* RDS database.
*
*
* -
*
* ResourceRole - A role (DataPipelineDefaultResourceRole) assumed by an EC2 instance to carry out the copy task
* from Amazon RDS to Amazon Simple Storage Service (Amazon S3). For more information, see Role templates for
* data pipelines.
*
*
* -
*
* ServiceRole - A role (DataPipelineDefaultRole) assumed by the 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.
*
*
* -
*
* SecurityInfo - The security information to use to access an RDS DB instance. You need to set up appropriate
* ingress rules for the security entity IDs provided to allow access to the Amazon RDS instance. Specify a [
* SubnetId
, SecurityGroupIds
] pair for a VPC-based RDS DB instance.
*
*
* -
*
* SelectSqlQuery - A query that is used to retrieve the observation data for the Datasource
.
*
*
* -
*
* S3StagingLocation - The Amazon S3 location for staging Amazon RDS data. The data retrieved from Amazon RDS using
* SelectSqlQuery
is stored in this location.
*
*
* -
*
* DataSchemaUri - The Amazon S3 location of the DataSchema
.
*
*
* -
*
* DataSchema - A JSON string representing the schema. This is not required if DataSchemaUri
is
* specified.
*
*
* -
*
* DataRearrangement - A JSON string that represents the splitting and rearrangement requirements for the
* Datasource
.
*
*
*
* Sample - "{\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"
*
*
*
*
* @return The data specification of an Amazon RDS DataSource
:
*
* -
*
* DatabaseInformation -
*
* -
DatabaseName
- The name of the Amazon RDS database.
* -
InstanceIdentifier
- A unique identifier for the Amazon RDS database instance.
*
*
*
* -
*
* DatabaseCredentials - AWS Identity and Access Management (IAM) credentials that are used to connect to
* the Amazon RDS database.
*
*
* -
*
* ResourceRole - A role (DataPipelineDefaultResourceRole) assumed by an EC2 instance to carry out the copy
* task from Amazon RDS to Amazon Simple Storage Service (Amazon S3). For more information, see Role templates
* for data pipelines.
*
*
* -
*
* ServiceRole - A role (DataPipelineDefaultRole) assumed by the 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.
*
*
* -
*
* SecurityInfo - The security information to use to access an RDS DB instance. You need to set up
* appropriate ingress rules for the security entity IDs provided to allow access to the Amazon RDS
* instance. Specify a [SubnetId
, SecurityGroupIds
] pair for a VPC-based RDS DB
* instance.
*
*
* -
*
* SelectSqlQuery - A query that is used to retrieve the observation data for the Datasource
.
*
*
* -
*
* S3StagingLocation - The Amazon S3 location for staging Amazon RDS data. The data retrieved from Amazon
* RDS using SelectSqlQuery
is stored in this location.
*
*
* -
*
* DataSchemaUri - The Amazon S3 location of the DataSchema
.
*
*
* -
*
* DataSchema - A JSON string representing the schema. This is not required if DataSchemaUri
is
* specified.
*
*
* -
*
* DataRearrangement - A JSON string that represents the splitting and rearrangement requirements for the
* Datasource
.
*
*
*
* Sample - "{\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"
*
*
*/
public RDSDataSpec rdsData() {
return rdsData;
}
/**
*
* The role that Amazon ML assumes on behalf of the user to create and activate a data pipeline in the user's
* account and copy data using the SelectSqlQuery
query from Amazon RDS to Amazon S3.
*
*
*
*
* @return The role that Amazon ML assumes on behalf of the user to create and activate a data pipeline in the
* user's account and copy data using the SelectSqlQuery
query from Amazon RDS to Amazon
* S3.
*
*/
public String roleARN() {
return roleARN;
}
/**
*
* The compute statistics for a DataSource
. The statistics are generated from the observation data
* referenced by a DataSource
. Amazon ML uses the statistics internally during MLModel
* training. This parameter must be set to true
if the
DataSource
needs to be
* used for MLModel
training.
*
*
* @return The compute statistics for a DataSource
. The statistics are generated from the observation
* data referenced by a DataSource
. Amazon ML uses the statistics internally during
* MLModel
training. This parameter must be set to true
if the
* DataSource
needs to be used for MLModel
training.
*/
public Boolean computeStatistics() {
return computeStatistics;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(dataSourceId());
hashCode = 31 * hashCode + Objects.hashCode(dataSourceName());
hashCode = 31 * hashCode + Objects.hashCode(rdsData());
hashCode = 31 * hashCode + Objects.hashCode(roleARN());
hashCode = 31 * hashCode + Objects.hashCode(computeStatistics());
return hashCode;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof CreateDataSourceFromRdsRequest)) {
return false;
}
CreateDataSourceFromRdsRequest other = (CreateDataSourceFromRdsRequest) obj;
return Objects.equals(dataSourceId(), other.dataSourceId()) && Objects.equals(dataSourceName(), other.dataSourceName())
&& Objects.equals(rdsData(), other.rdsData()) && Objects.equals(roleARN(), other.roleARN())
&& Objects.equals(computeStatistics(), other.computeStatistics());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public String toString() {
return ToString.builder("CreateDataSourceFromRdsRequest").add("DataSourceId", dataSourceId())
.add("DataSourceName", dataSourceName()).add("RDSData", rdsData()).add("RoleARN", roleARN())
.add("ComputeStatistics", computeStatistics()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "DataSourceId":
return Optional.ofNullable(clazz.cast(dataSourceId()));
case "DataSourceName":
return Optional.ofNullable(clazz.cast(dataSourceName()));
case "RDSData":
return Optional.ofNullable(clazz.cast(rdsData()));
case "RoleARN":
return Optional.ofNullable(clazz.cast(roleARN()));
case "ComputeStatistics":
return Optional.ofNullable(clazz.cast(computeStatistics()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function