/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SageMaker { namespace Model { /** *

Describes the input source of a transform job and the way the transform job * consumes it.

See Also:

AWS * API Reference

*/ class TransformInput { public: AWS_SAGEMAKER_API TransformInput(); AWS_SAGEMAKER_API TransformInput(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API TransformInput& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Describes the location of the channel data, which is, the S3 location of the * input data that the model can consume.

*/ inline const TransformDataSource& GetDataSource() const{ return m_dataSource; } /** *

Describes the location of the channel data, which is, the S3 location of the * input data that the model can consume.

*/ inline bool DataSourceHasBeenSet() const { return m_dataSourceHasBeenSet; } /** *

Describes the location of the channel data, which is, the S3 location of the * input data that the model can consume.

*/ inline void SetDataSource(const TransformDataSource& value) { m_dataSourceHasBeenSet = true; m_dataSource = value; } /** *

Describes the location of the channel data, which is, the S3 location of the * input data that the model can consume.

*/ inline void SetDataSource(TransformDataSource&& value) { m_dataSourceHasBeenSet = true; m_dataSource = std::move(value); } /** *

Describes the location of the channel data, which is, the S3 location of the * input data that the model can consume.

*/ inline TransformInput& WithDataSource(const TransformDataSource& value) { SetDataSource(value); return *this;} /** *

Describes the location of the channel data, which is, the S3 location of the * input data that the model can consume.

*/ inline TransformInput& WithDataSource(TransformDataSource&& value) { SetDataSource(std::move(value)); return *this;} /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline bool ContentTypeHasBeenSet() const { return m_contentTypeHasBeenSet; } /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline void SetContentType(const Aws::String& value) { m_contentTypeHasBeenSet = true; m_contentType = value; } /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline void SetContentType(Aws::String&& value) { m_contentTypeHasBeenSet = true; m_contentType = std::move(value); } /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline void SetContentType(const char* value) { m_contentTypeHasBeenSet = true; m_contentType.assign(value); } /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline TransformInput& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline TransformInput& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

The multipurpose internet mail extension (MIME) type of the data. Amazon * SageMaker uses the MIME type with each http call to transfer data to the * transform job.

*/ inline TransformInput& WithContentType(const char* value) { SetContentType(value); return *this;} /** *

If your transform data is compressed, specify the compression type. Amazon * SageMaker automatically decompresses the data for the transform job accordingly. * The default value is None.

*/ inline const CompressionType& GetCompressionType() const{ return m_compressionType; } /** *

If your transform data is compressed, specify the compression type. Amazon * SageMaker automatically decompresses the data for the transform job accordingly. * The default value is None.

*/ inline bool CompressionTypeHasBeenSet() const { return m_compressionTypeHasBeenSet; } /** *

If your transform data is compressed, specify the compression type. Amazon * SageMaker automatically decompresses the data for the transform job accordingly. * The default value is None.

*/ inline void SetCompressionType(const CompressionType& value) { m_compressionTypeHasBeenSet = true; m_compressionType = value; } /** *

If your transform data is compressed, specify the compression type. Amazon * SageMaker automatically decompresses the data for the transform job accordingly. * The default value is None.

*/ inline void SetCompressionType(CompressionType&& value) { m_compressionTypeHasBeenSet = true; m_compressionType = std::move(value); } /** *

If your transform data is compressed, specify the compression type. Amazon * SageMaker automatically decompresses the data for the transform job accordingly. * The default value is None.

*/ inline TransformInput& WithCompressionType(const CompressionType& value) { SetCompressionType(value); return *this;} /** *

If your transform data is compressed, specify the compression type. Amazon * SageMaker automatically decompresses the data for the transform job accordingly. * The default value is None.

*/ inline TransformInput& WithCompressionType(CompressionType&& value) { SetCompressionType(std::move(value)); return *this;} /** *

The method to use to split the transform job's data files into smaller * batches. Splitting is necessary when the total size of each object is too large * to fit in a single request. You can also use data splitting to improve * performance by processing multiple concurrent mini-batches. The default value * for SplitType is None, which indicates that input data * files are not split, and request payloads contain the entire contents of an * input object. Set the value of this parameter to Line to split * records on a newline character boundary. SplitType also supports a * number of record-oriented binary data formats. Currently, the supported record * formats are:

  • RecordIO

  • TFRecord

  • *

When splitting is enabled, the size of a mini-batch depends on the * values of the BatchStrategy and MaxPayloadInMB * parameters. When the value of BatchStrategy is * MultiRecord, Amazon SageMaker sends the maximum number of records * in each request, up to the MaxPayloadInMB limit. If the value of * BatchStrategy is SingleRecord, Amazon SageMaker sends * individual records in each request.

Some data formats represent a * record as a binary payload wrapped with extra padding bytes. When splitting is * applied to a binary data format, padding is removed if the value of * BatchStrategy is set to SingleRecord. Padding is not * removed if the value of BatchStrategy is set to * MultiRecord.

For more information about * RecordIO, see Create a Dataset Using * RecordIO in the MXNet documentation. For more information about * TFRecord, see Consuming * TFRecord data in the TensorFlow documentation.

*/ inline const SplitType& GetSplitType() const{ return m_splitType; } /** *

The method to use to split the transform job's data files into smaller * batches. Splitting is necessary when the total size of each object is too large * to fit in a single request. You can also use data splitting to improve * performance by processing multiple concurrent mini-batches. The default value * for SplitType is None, which indicates that input data * files are not split, and request payloads contain the entire contents of an * input object. Set the value of this parameter to Line to split * records on a newline character boundary. SplitType also supports a * number of record-oriented binary data formats. Currently, the supported record * formats are:

  • RecordIO

  • TFRecord

  • *

When splitting is enabled, the size of a mini-batch depends on the * values of the BatchStrategy and MaxPayloadInMB * parameters. When the value of BatchStrategy is * MultiRecord, Amazon SageMaker sends the maximum number of records * in each request, up to the MaxPayloadInMB limit. If the value of * BatchStrategy is SingleRecord, Amazon SageMaker sends * individual records in each request.

Some data formats represent a * record as a binary payload wrapped with extra padding bytes. When splitting is * applied to a binary data format, padding is removed if the value of * BatchStrategy is set to SingleRecord. Padding is not * removed if the value of BatchStrategy is set to * MultiRecord.

For more information about * RecordIO, see Create a Dataset Using * RecordIO in the MXNet documentation. For more information about * TFRecord, see Consuming * TFRecord data in the TensorFlow documentation.

*/ inline bool SplitTypeHasBeenSet() const { return m_splitTypeHasBeenSet; } /** *

The method to use to split the transform job's data files into smaller * batches. Splitting is necessary when the total size of each object is too large * to fit in a single request. You can also use data splitting to improve * performance by processing multiple concurrent mini-batches. The default value * for SplitType is None, which indicates that input data * files are not split, and request payloads contain the entire contents of an * input object. Set the value of this parameter to Line to split * records on a newline character boundary. SplitType also supports a * number of record-oriented binary data formats. Currently, the supported record * formats are:

  • RecordIO

  • TFRecord

  • *

When splitting is enabled, the size of a mini-batch depends on the * values of the BatchStrategy and MaxPayloadInMB * parameters. When the value of BatchStrategy is * MultiRecord, Amazon SageMaker sends the maximum number of records * in each request, up to the MaxPayloadInMB limit. If the value of * BatchStrategy is SingleRecord, Amazon SageMaker sends * individual records in each request.

Some data formats represent a * record as a binary payload wrapped with extra padding bytes. When splitting is * applied to a binary data format, padding is removed if the value of * BatchStrategy is set to SingleRecord. Padding is not * removed if the value of BatchStrategy is set to * MultiRecord.

For more information about * RecordIO, see Create a Dataset Using * RecordIO in the MXNet documentation. For more information about * TFRecord, see Consuming * TFRecord data in the TensorFlow documentation.

*/ inline void SetSplitType(const SplitType& value) { m_splitTypeHasBeenSet = true; m_splitType = value; } /** *

The method to use to split the transform job's data files into smaller * batches. Splitting is necessary when the total size of each object is too large * to fit in a single request. You can also use data splitting to improve * performance by processing multiple concurrent mini-batches. The default value * for SplitType is None, which indicates that input data * files are not split, and request payloads contain the entire contents of an * input object. Set the value of this parameter to Line to split * records on a newline character boundary. SplitType also supports a * number of record-oriented binary data formats. Currently, the supported record * formats are:

  • RecordIO

  • TFRecord

  • *

When splitting is enabled, the size of a mini-batch depends on the * values of the BatchStrategy and MaxPayloadInMB * parameters. When the value of BatchStrategy is * MultiRecord, Amazon SageMaker sends the maximum number of records * in each request, up to the MaxPayloadInMB limit. If the value of * BatchStrategy is SingleRecord, Amazon SageMaker sends * individual records in each request.

Some data formats represent a * record as a binary payload wrapped with extra padding bytes. When splitting is * applied to a binary data format, padding is removed if the value of * BatchStrategy is set to SingleRecord. Padding is not * removed if the value of BatchStrategy is set to * MultiRecord.

For more information about * RecordIO, see Create a Dataset Using * RecordIO in the MXNet documentation. For more information about * TFRecord, see Consuming * TFRecord data in the TensorFlow documentation.

*/ inline void SetSplitType(SplitType&& value) { m_splitTypeHasBeenSet = true; m_splitType = std::move(value); } /** *

The method to use to split the transform job's data files into smaller * batches. Splitting is necessary when the total size of each object is too large * to fit in a single request. You can also use data splitting to improve * performance by processing multiple concurrent mini-batches. The default value * for SplitType is None, which indicates that input data * files are not split, and request payloads contain the entire contents of an * input object. Set the value of this parameter to Line to split * records on a newline character boundary. SplitType also supports a * number of record-oriented binary data formats. Currently, the supported record * formats are:

  • RecordIO

  • TFRecord

  • *

When splitting is enabled, the size of a mini-batch depends on the * values of the BatchStrategy and MaxPayloadInMB * parameters. When the value of BatchStrategy is * MultiRecord, Amazon SageMaker sends the maximum number of records * in each request, up to the MaxPayloadInMB limit. If the value of * BatchStrategy is SingleRecord, Amazon SageMaker sends * individual records in each request.

Some data formats represent a * record as a binary payload wrapped with extra padding bytes. When splitting is * applied to a binary data format, padding is removed if the value of * BatchStrategy is set to SingleRecord. Padding is not * removed if the value of BatchStrategy is set to * MultiRecord.

For more information about * RecordIO, see Create a Dataset Using * RecordIO in the MXNet documentation. For more information about * TFRecord, see Consuming * TFRecord data in the TensorFlow documentation.

*/ inline TransformInput& WithSplitType(const SplitType& value) { SetSplitType(value); return *this;} /** *

The method to use to split the transform job's data files into smaller * batches. Splitting is necessary when the total size of each object is too large * to fit in a single request. You can also use data splitting to improve * performance by processing multiple concurrent mini-batches. The default value * for SplitType is None, which indicates that input data * files are not split, and request payloads contain the entire contents of an * input object. Set the value of this parameter to Line to split * records on a newline character boundary. SplitType also supports a * number of record-oriented binary data formats. Currently, the supported record * formats are:

  • RecordIO

  • TFRecord

  • *

When splitting is enabled, the size of a mini-batch depends on the * values of the BatchStrategy and MaxPayloadInMB * parameters. When the value of BatchStrategy is * MultiRecord, Amazon SageMaker sends the maximum number of records * in each request, up to the MaxPayloadInMB limit. If the value of * BatchStrategy is SingleRecord, Amazon SageMaker sends * individual records in each request.

Some data formats represent a * record as a binary payload wrapped with extra padding bytes. When splitting is * applied to a binary data format, padding is removed if the value of * BatchStrategy is set to SingleRecord. Padding is not * removed if the value of BatchStrategy is set to * MultiRecord.

For more information about * RecordIO, see Create a Dataset Using * RecordIO in the MXNet documentation. For more information about * TFRecord, see Consuming * TFRecord data in the TensorFlow documentation.

*/ inline TransformInput& WithSplitType(SplitType&& value) { SetSplitType(std::move(value)); return *this;} private: TransformDataSource m_dataSource; bool m_dataSourceHasBeenSet = false; Aws::String m_contentType; bool m_contentTypeHasBeenSet = false; CompressionType m_compressionType; bool m_compressionTypeHasBeenSet = false; SplitType m_splitType; bool m_splitTypeHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws