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

Output configuration information for a labeling job.

See Also:

* AWS * API Reference

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

The Amazon S3 location to write output data.

*/ inline const Aws::String& GetS3OutputPath() const{ return m_s3OutputPath; } /** *

The Amazon S3 location to write output data.

*/ inline bool S3OutputPathHasBeenSet() const { return m_s3OutputPathHasBeenSet; } /** *

The Amazon S3 location to write output data.

*/ inline void SetS3OutputPath(const Aws::String& value) { m_s3OutputPathHasBeenSet = true; m_s3OutputPath = value; } /** *

The Amazon S3 location to write output data.

*/ inline void SetS3OutputPath(Aws::String&& value) { m_s3OutputPathHasBeenSet = true; m_s3OutputPath = std::move(value); } /** *

The Amazon S3 location to write output data.

*/ inline void SetS3OutputPath(const char* value) { m_s3OutputPathHasBeenSet = true; m_s3OutputPath.assign(value); } /** *

The Amazon S3 location to write output data.

*/ inline LabelingJobOutputConfig& WithS3OutputPath(const Aws::String& value) { SetS3OutputPath(value); return *this;} /** *

The Amazon S3 location to write output data.

*/ inline LabelingJobOutputConfig& WithS3OutputPath(Aws::String&& value) { SetS3OutputPath(std::move(value)); return *this;} /** *

The Amazon S3 location to write output data.

*/ inline LabelingJobOutputConfig& WithS3OutputPath(const char* value) { SetS3OutputPath(value); return *this;} /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline LabelingJobOutputConfig& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline LabelingJobOutputConfig& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The Amazon Web Services Key Management Service ID of the key used to encrypt * the output data, if any.

If you provide your own KMS key ID, you must add * the required permissions to your KMS key described in Encrypt * Output Data and Storage Volume with Amazon Web Services KMS.

If you * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web * Services KMS key for Amazon S3 for your role's account to encrypt your output * data.

If you use a bucket policy with an s3:PutObject * permission that only allows objects with server-side encryption, set the * condition key of s3:x-amz-server-side-encryption to * "aws:kms". For more information, see KMS-Managed * Encryption Keys in the Amazon Simple Storage Service Developer Guide. *

*/ inline LabelingJobOutputConfig& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline const Aws::String& GetSnsTopicArn() const{ return m_snsTopicArn; } /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline bool SnsTopicArnHasBeenSet() const { return m_snsTopicArnHasBeenSet; } /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline void SetSnsTopicArn(const Aws::String& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = value; } /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline void SetSnsTopicArn(Aws::String&& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = std::move(value); } /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline void SetSnsTopicArn(const char* value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn.assign(value); } /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline LabelingJobOutputConfig& WithSnsTopicArn(const Aws::String& value) { SetSnsTopicArn(value); return *this;} /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline LabelingJobOutputConfig& WithSnsTopicArn(Aws::String&& value) { SetSnsTopicArn(std::move(value)); return *this;} /** *

An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide * a SnsTopicArn if you want to do real time chaining to another * streaming job and receive an Amazon SNS notifications each time a data object is * submitted by a worker.

If you provide an SnsTopicArn in * OutputConfig, when workers complete labeling tasks, Ground Truth * will send labeling task output data to the SNS output topic you specify here. *

To learn more, see Receive * Output Data from a Streaming Labeling Job.

*/ inline LabelingJobOutputConfig& WithSnsTopicArn(const char* value) { SetSnsTopicArn(value); return *this;} private: Aws::String m_s3OutputPath; bool m_s3OutputPathHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::String m_snsTopicArn; bool m_snsTopicArnHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws