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

Provides information about the location of input data.

You must * specify at least one of the following: S3DataSource or * SnsDataSource.

Use SnsDataSource to specify an * SNS input topic for a streaming labeling job. If you do not specify and SNS * input topic ARN, Ground Truth will create a one-time labeling job.

Use * S3DataSource to specify an input manifest file for both streaming * and one-time labeling jobs. Adding an S3DataSource is optional if * you use SnsDataSource to create a streaming labeling * job.

See Also:

AWS * API Reference

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

The Amazon S3 location of the input data objects.

*/ inline const LabelingJobS3DataSource& GetS3DataSource() const{ return m_s3DataSource; } /** *

The Amazon S3 location of the input data objects.

*/ inline bool S3DataSourceHasBeenSet() const { return m_s3DataSourceHasBeenSet; } /** *

The Amazon S3 location of the input data objects.

*/ inline void SetS3DataSource(const LabelingJobS3DataSource& value) { m_s3DataSourceHasBeenSet = true; m_s3DataSource = value; } /** *

The Amazon S3 location of the input data objects.

*/ inline void SetS3DataSource(LabelingJobS3DataSource&& value) { m_s3DataSourceHasBeenSet = true; m_s3DataSource = std::move(value); } /** *

The Amazon S3 location of the input data objects.

*/ inline LabelingJobDataSource& WithS3DataSource(const LabelingJobS3DataSource& value) { SetS3DataSource(value); return *this;} /** *

The Amazon S3 location of the input data objects.

*/ inline LabelingJobDataSource& WithS3DataSource(LabelingJobS3DataSource&& value) { SetS3DataSource(std::move(value)); return *this;} /** *

An Amazon SNS data source used for streaming labeling jobs. To learn more, * see Send * Data to a Streaming Labeling Job.

*/ inline const LabelingJobSnsDataSource& GetSnsDataSource() const{ return m_snsDataSource; } /** *

An Amazon SNS data source used for streaming labeling jobs. To learn more, * see Send * Data to a Streaming Labeling Job.

*/ inline bool SnsDataSourceHasBeenSet() const { return m_snsDataSourceHasBeenSet; } /** *

An Amazon SNS data source used for streaming labeling jobs. To learn more, * see Send * Data to a Streaming Labeling Job.

*/ inline void SetSnsDataSource(const LabelingJobSnsDataSource& value) { m_snsDataSourceHasBeenSet = true; m_snsDataSource = value; } /** *

An Amazon SNS data source used for streaming labeling jobs. To learn more, * see Send * Data to a Streaming Labeling Job.

*/ inline void SetSnsDataSource(LabelingJobSnsDataSource&& value) { m_snsDataSourceHasBeenSet = true; m_snsDataSource = std::move(value); } /** *

An Amazon SNS data source used for streaming labeling jobs. To learn more, * see Send * Data to a Streaming Labeling Job.

*/ inline LabelingJobDataSource& WithSnsDataSource(const LabelingJobSnsDataSource& value) { SetSnsDataSource(value); return *this;} /** *

An Amazon SNS data source used for streaming labeling jobs. To learn more, * see Send * Data to a Streaming Labeling Job.

*/ inline LabelingJobDataSource& WithSnsDataSource(LabelingJobSnsDataSource&& value) { SetSnsDataSource(std::move(value)); return *this;} private: LabelingJobS3DataSource m_s3DataSource; bool m_s3DataSourceHasBeenSet = false; LabelingJobSnsDataSource m_snsDataSource; bool m_snsDataSourceHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws