
software.amazon.awssdk.services.machinelearning.model.CreateDataSourceFromRedshiftRequest Maven / Gradle / Ivy
/*
* Copyright 2014-2019 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 CreateDataSourceFromRedshiftRequest extends MachineLearningRequest implements
ToCopyableBuilder {
private static final SdkField DATA_SOURCE_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(CreateDataSourceFromRedshiftRequest::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)
.getter(getter(CreateDataSourceFromRedshiftRequest::dataSourceName)).setter(setter(Builder::dataSourceName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataSourceName").build()).build();
private static final SdkField DATA_SPEC_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).getter(getter(CreateDataSourceFromRedshiftRequest::dataSpec))
.setter(setter(Builder::dataSpec)).constructor(RedshiftDataSpec::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataSpec").build()).build();
private static final SdkField ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(CreateDataSourceFromRedshiftRequest::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)
.getter(getter(CreateDataSourceFromRedshiftRequest::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, DATA_SPEC_FIELD, ROLE_ARN_FIELD, COMPUTE_STATISTICS_FIELD));
private final String dataSourceId;
private final String dataSourceName;
private final RedshiftDataSpec dataSpec;
private final String roleARN;
private final Boolean computeStatistics;
private CreateDataSourceFromRedshiftRequest(BuilderImpl builder) {
super(builder);
this.dataSourceId = builder.dataSourceId;
this.dataSourceName = builder.dataSourceName;
this.dataSpec = builder.dataSpec;
this.roleARN = builder.roleARN;
this.computeStatistics = builder.computeStatistics;
}
/**
*
* A user-supplied ID that uniquely identifies the DataSource
.
*
*
* @return A user-supplied ID that uniquely identifies the 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 Redshift DataSource
:
*
*
* -
*
* DatabaseInformation -
*
* -
DatabaseName
- The name of the Amazon Redshift database.
* -
ClusterIdentifier
- The unique ID for the Amazon Redshift cluster.
*
*
*
* -
*
* DatabaseCredentials - The AWS Identity and Access Management (IAM) credentials that are used to connect to the
* Amazon Redshift database.
*
*
* -
*
* SelectSqlQuery - The query that is used to retrieve the observation data for the Datasource
.
*
*
* -
*
* S3StagingLocation - The Amazon Simple Storage Service (Amazon S3) location for staging Amazon Redshift data. The
* data retrieved from Amazon Redshift using the SelectSqlQuery
query 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 Redshift DataSource
:
*
* -
*
* DatabaseInformation -
*
* -
DatabaseName
- The name of the Amazon Redshift database.
* -
ClusterIdentifier
- The unique ID for the Amazon Redshift cluster.
*
*
*
* -
*
* DatabaseCredentials - The AWS Identity and Access Management (IAM) credentials that are used to connect
* to the Amazon Redshift database.
*
*
* -
*
* SelectSqlQuery - The query that is used to retrieve the observation data for the Datasource
.
*
*
* -
*
* S3StagingLocation - The Amazon Simple Storage Service (Amazon S3) location for staging Amazon Redshift
* data. The data retrieved from Amazon Redshift using the SelectSqlQuery
query 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 RedshiftDataSpec dataSpec() {
return dataSpec;
}
/**
*
* A fully specified role Amazon Resource Name (ARN). Amazon ML assumes the role on behalf of the user to create the
* following:
*
*
*
* -
*
* A security group to allow Amazon ML to execute the SelectSqlQuery
query on an Amazon Redshift
* cluster
*
*
* -
*
* An Amazon S3 bucket policy to grant Amazon ML read/write permissions on the S3StagingLocation
*
*
*
*
*
* @return A fully specified role Amazon Resource Name (ARN). Amazon ML assumes the role on behalf of the user to
* create the following:
*
*
* -
*
* A security group to allow Amazon ML to execute the SelectSqlQuery
query on an Amazon
* Redshift cluster
*
*
* -
*
* An Amazon S3 bucket policy to grant Amazon ML read/write permissions on the
* S3StagingLocation
*
*
*
*/
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 + Objects.hashCode(dataSourceId());
hashCode = 31 * hashCode + Objects.hashCode(dataSourceName());
hashCode = 31 * hashCode + Objects.hashCode(dataSpec());
hashCode = 31 * hashCode + Objects.hashCode(roleARN());
hashCode = 31 * hashCode + Objects.hashCode(computeStatistics());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof CreateDataSourceFromRedshiftRequest)) {
return false;
}
CreateDataSourceFromRedshiftRequest other = (CreateDataSourceFromRedshiftRequest) obj;
return Objects.equals(dataSourceId(), other.dataSourceId()) && Objects.equals(dataSourceName(), other.dataSourceName())
&& Objects.equals(dataSpec(), other.dataSpec()) && 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("CreateDataSourceFromRedshiftRequest").add("DataSourceId", dataSourceId())
.add("DataSourceName", dataSourceName()).add("DataSpec", dataSpec()).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 "DataSpec":
return Optional.ofNullable(clazz.cast(dataSpec()));
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