
package Paws::MachineLearning::CreateDataSourceFromRDS;
  use Moose;
  has ComputeStatistics => (is => 'ro', isa => 'Bool');
  has DataSourceId => (is => 'ro', isa => 'Str', required => 1);
  has DataSourceName => (is => 'ro', isa => 'Str');
  has RDSData => (is => 'ro', isa => 'Paws::MachineLearning::RDSDataSpec', required => 1);
  has RoleARN => (is => 'ro', isa => 'Str', required => 1);

  use MooseX::ClassAttribute;

  class_has _api_call => (isa => 'Str', is => 'ro', default => 'CreateDataSourceFromRDS');
  class_has _returns => (isa => 'Str', is => 'ro', default => 'Paws::MachineLearning::CreateDataSourceFromRDSOutput');
  class_has _result_key => (isa => 'Str', is => 'ro');
1;

### main pod documentation begin ###

=head1 NAME

Paws::MachineLearning::CreateDataSourceFromRDS - Arguments for method CreateDataSourceFromRDS on L<Paws::MachineLearning>

=head1 DESCRIPTION

This class represents the parameters used for calling the method CreateDataSourceFromRDS on the
L<Amazon Machine Learning|Paws::MachineLearning> service. Use the attributes of this class
as arguments to method CreateDataSourceFromRDS.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateDataSourceFromRDS.

=head1 SYNOPSIS

    my $machinelearning = Paws->service('MachineLearning');
    my $CreateDataSourceFromRDSOutput =
      $machinelearning->CreateDataSourceFromRDS(
      DataSourceId => 'MyEntityId',
      RDSData      => {
        DatabaseCredentials => {
          Password => 'MyRDSDatabasePassword',    # min: 8, max: 128
          Username => 'MyRDSDatabaseUsername',    # min: 1, max: 128

        },
        DatabaseInformation => {
          DatabaseName       => 'MyRDSDatabaseName',          # min: 1, max: 64
          InstanceIdentifier => 'MyRDSInstanceIdentifier',    # min: 1, max: 63

        },
        ResourceRole      => 'MyEDPResourceRole',             # min: 1, max: 64
        S3StagingLocation => 'MyS3Url',                       # max: 2048
        SecurityGroupIds  => [
          'MyEDPSecurityGroupId', ...                         # min: 1, max: 255
        ],
        SelectSqlQuery    => 'MyRDSSelectSqlQuery',    # min: 1, max: 16777216
        ServiceRole       => 'MyEDPServiceRole',       # min: 1, max: 64
        SubnetId          => 'MyEDPSubnetId',          # min: 1, max: 255
        DataRearrangement => 'MyDataRearrangement',    # OPTIONAL
        DataSchema        => 'MyDataSchema',           # max: 131071; OPTIONAL
        DataSchemaUri     => 'MyS3Url',                # max: 2048
      },
      RoleARN           => 'MyRoleARN',
      ComputeStatistics => 1,                          # OPTIONAL
      DataSourceName    => 'MyEntityName',             # OPTIONAL
      );

    # Results:
    my $DataSourceId = $CreateDataSourceFromRDSOutput->DataSourceId;

    # Returns a L<Paws::MachineLearning::CreateDataSourceFromRDSOutput> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object.
For the AWS API documentation, see L<https://docs.aws.amazon.com/goto/WebAPI/machinelearning/CreateDataSourceFromRDS>

=head1 ATTRIBUTES


=head2 ComputeStatistics => Bool

The compute statistics for a C<DataSource>. The statistics are
generated from the observation data referenced by a C<DataSource>.
Amazon ML uses the statistics internally during C<MLModel> training.
This parameter must be set to C<true> if the C<>DataSourceC<> needs to
be used for C<MLModel> training.



=head2 B<REQUIRED> DataSourceId => Str

A user-supplied ID that uniquely identifies the C<DataSource>.
Typically, an Amazon Resource Number (ARN) becomes the ID for a
C<DataSource>.



=head2 DataSourceName => Str

A user-supplied name or description of the C<DataSource>.



=head2 B<REQUIRED> RDSData => L<Paws::MachineLearning::RDSDataSpec>

The data specification of an Amazon RDS C<DataSource>:

=over

=item *

DatabaseInformation -

=over

=item * C<DatabaseName> - The name of the Amazon RDS database.

=item * C<InstanceIdentifier > - A unique identifier for the Amazon RDS
database instance.

=back

=item *

DatabaseCredentials - AWS Identity and Access Management (IAM)
credentials that are used to connect to the Amazon RDS database.

=item *

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
(http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html)
for data pipelines.

=item *

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
(http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html)
for data pipelines.

=item *

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 [C<SubnetId>, C<SecurityGroupIds>] pair for a VPC-based RDS DB
instance.

=item *

SelectSqlQuery - A query that is used to retrieve the observation data
for the C<Datasource>.

=item *

S3StagingLocation - The Amazon S3 location for staging Amazon RDS data.
The data retrieved from Amazon RDS using C<SelectSqlQuery> is stored in
this location.

=item *

DataSchemaUri - The Amazon S3 location of the C<DataSchema>.

=item *

DataSchema - A JSON string representing the schema. This is not
required if C<DataSchemaUri> is specified.

=item *

DataRearrangement - A JSON string that represents the splitting and
rearrangement requirements for the C<Datasource>.

Sample - C< "{\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}">

=back




=head2 B<REQUIRED> RoleARN => Str

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
C<SelectSqlQuery> query from Amazon RDS to Amazon S3.




=head1 SEE ALSO

This class forms part of L<Paws>, documenting arguments for method CreateDataSourceFromRDS in L<Paws::MachineLearning>

=head1 BUGS and CONTRIBUTIONS

The source code is located here: L<https://github.com/pplu/aws-sdk-perl>

Please report bugs to: L<https://github.com/pplu/aws-sdk-perl/issues>

=cut

