1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/sagemaker/SageMaker_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <utility> 10 11 namespace Aws 12 { 13 namespace Utils 14 { 15 namespace Json 16 { 17 class JsonValue; 18 class JsonView; 19 } // namespace Json 20 } // namespace Utils 21 namespace SageMaker 22 { 23 namespace Model 24 { 25 26 /** 27 * <p>Output configuration information for a labeling job.</p><p><h3>See Also:</h3> 28 * <a 29 * href="http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobOutputConfig">AWS 30 * API Reference</a></p> 31 */ 32 class AWS_SAGEMAKER_API LabelingJobOutputConfig 33 { 34 public: 35 LabelingJobOutputConfig(); 36 LabelingJobOutputConfig(Aws::Utils::Json::JsonView jsonValue); 37 LabelingJobOutputConfig& operator=(Aws::Utils::Json::JsonView jsonValue); 38 Aws::Utils::Json::JsonValue Jsonize() const; 39 40 41 /** 42 * <p>The Amazon S3 location to write output data.</p> 43 */ GetS3OutputPath()44 inline const Aws::String& GetS3OutputPath() const{ return m_s3OutputPath; } 45 46 /** 47 * <p>The Amazon S3 location to write output data.</p> 48 */ S3OutputPathHasBeenSet()49 inline bool S3OutputPathHasBeenSet() const { return m_s3OutputPathHasBeenSet; } 50 51 /** 52 * <p>The Amazon S3 location to write output data.</p> 53 */ SetS3OutputPath(const Aws::String & value)54 inline void SetS3OutputPath(const Aws::String& value) { m_s3OutputPathHasBeenSet = true; m_s3OutputPath = value; } 55 56 /** 57 * <p>The Amazon S3 location to write output data.</p> 58 */ SetS3OutputPath(Aws::String && value)59 inline void SetS3OutputPath(Aws::String&& value) { m_s3OutputPathHasBeenSet = true; m_s3OutputPath = std::move(value); } 60 61 /** 62 * <p>The Amazon S3 location to write output data.</p> 63 */ SetS3OutputPath(const char * value)64 inline void SetS3OutputPath(const char* value) { m_s3OutputPathHasBeenSet = true; m_s3OutputPath.assign(value); } 65 66 /** 67 * <p>The Amazon S3 location to write output data.</p> 68 */ WithS3OutputPath(const Aws::String & value)69 inline LabelingJobOutputConfig& WithS3OutputPath(const Aws::String& value) { SetS3OutputPath(value); return *this;} 70 71 /** 72 * <p>The Amazon S3 location to write output data.</p> 73 */ WithS3OutputPath(Aws::String && value)74 inline LabelingJobOutputConfig& WithS3OutputPath(Aws::String&& value) { SetS3OutputPath(std::move(value)); return *this;} 75 76 /** 77 * <p>The Amazon S3 location to write output data.</p> 78 */ WithS3OutputPath(const char * value)79 inline LabelingJobOutputConfig& WithS3OutputPath(const char* value) { SetS3OutputPath(value); return *this;} 80 81 82 /** 83 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 84 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 85 * the required permissions to your KMS key described in <a 86 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 87 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 88 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 89 * Services KMS key for Amazon S3 for your role's account to encrypt your output 90 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 91 * permission that only allows objects with server-side encryption, set the 92 * condition key of <code>s3:x-amz-server-side-encryption</code> to 93 * <code>"aws:kms"</code>. For more information, see <a 94 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 95 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 96 * </p> 97 */ GetKmsKeyId()98 inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } 99 100 /** 101 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 102 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 103 * the required permissions to your KMS key described in <a 104 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 105 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 106 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 107 * Services KMS key for Amazon S3 for your role's account to encrypt your output 108 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 109 * permission that only allows objects with server-side encryption, set the 110 * condition key of <code>s3:x-amz-server-side-encryption</code> to 111 * <code>"aws:kms"</code>. For more information, see <a 112 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 113 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 114 * </p> 115 */ KmsKeyIdHasBeenSet()116 inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } 117 118 /** 119 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 120 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 121 * the required permissions to your KMS key described in <a 122 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 123 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 124 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 125 * Services KMS key for Amazon S3 for your role's account to encrypt your output 126 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 127 * permission that only allows objects with server-side encryption, set the 128 * condition key of <code>s3:x-amz-server-side-encryption</code> to 129 * <code>"aws:kms"</code>. For more information, see <a 130 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 131 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 132 * </p> 133 */ SetKmsKeyId(const Aws::String & value)134 inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } 135 136 /** 137 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 138 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 139 * the required permissions to your KMS key described in <a 140 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 141 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 142 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 143 * Services KMS key for Amazon S3 for your role's account to encrypt your output 144 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 145 * permission that only allows objects with server-side encryption, set the 146 * condition key of <code>s3:x-amz-server-side-encryption</code> to 147 * <code>"aws:kms"</code>. For more information, see <a 148 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 149 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 150 * </p> 151 */ SetKmsKeyId(Aws::String && value)152 inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } 153 154 /** 155 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 156 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 157 * the required permissions to your KMS key described in <a 158 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 159 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 160 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 161 * Services KMS key for Amazon S3 for your role's account to encrypt your output 162 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 163 * permission that only allows objects with server-side encryption, set the 164 * condition key of <code>s3:x-amz-server-side-encryption</code> to 165 * <code>"aws:kms"</code>. For more information, see <a 166 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 167 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 168 * </p> 169 */ SetKmsKeyId(const char * value)170 inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } 171 172 /** 173 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 174 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 175 * the required permissions to your KMS key described in <a 176 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 177 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 178 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 179 * Services KMS key for Amazon S3 for your role's account to encrypt your output 180 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 181 * permission that only allows objects with server-side encryption, set the 182 * condition key of <code>s3:x-amz-server-side-encryption</code> to 183 * <code>"aws:kms"</code>. For more information, see <a 184 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 185 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 186 * </p> 187 */ WithKmsKeyId(const Aws::String & value)188 inline LabelingJobOutputConfig& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} 189 190 /** 191 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 192 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 193 * the required permissions to your KMS key described in <a 194 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 195 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 196 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 197 * Services KMS key for Amazon S3 for your role's account to encrypt your output 198 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 199 * permission that only allows objects with server-side encryption, set the 200 * condition key of <code>s3:x-amz-server-side-encryption</code> to 201 * <code>"aws:kms"</code>. For more information, see <a 202 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 203 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 204 * </p> 205 */ WithKmsKeyId(Aws::String && value)206 inline LabelingJobOutputConfig& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} 207 208 /** 209 * <p>The Amazon Web Services Key Management Service ID of the key used to encrypt 210 * the output data, if any.</p> <p>If you provide your own KMS key ID, you must add 211 * the required permissions to your KMS key described in <a 212 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt 213 * Output Data and Storage Volume with Amazon Web Services KMS</a>.</p> <p>If you 214 * don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web 215 * Services KMS key for Amazon S3 for your role's account to encrypt your output 216 * data.</p> <p>If you use a bucket policy with an <code>s3:PutObject</code> 217 * permission that only allows objects with server-side encryption, set the 218 * condition key of <code>s3:x-amz-server-side-encryption</code> to 219 * <code>"aws:kms"</code>. For more information, see <a 220 * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed 221 * Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> 222 * </p> 223 */ WithKmsKeyId(const char * value)224 inline LabelingJobOutputConfig& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} 225 226 227 /** 228 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 229 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 230 * streaming job and receive an Amazon SNS notifications each time a data object is 231 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 232 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 233 * will send labeling task output data to the SNS output topic you specify here. 234 * </p> <p>To learn more, see <a 235 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 236 * Output Data from a Streaming Labeling Job</a>. </p> 237 */ GetSnsTopicArn()238 inline const Aws::String& GetSnsTopicArn() const{ return m_snsTopicArn; } 239 240 /** 241 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 242 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 243 * streaming job and receive an Amazon SNS notifications each time a data object is 244 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 245 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 246 * will send labeling task output data to the SNS output topic you specify here. 247 * </p> <p>To learn more, see <a 248 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 249 * Output Data from a Streaming Labeling Job</a>. </p> 250 */ SnsTopicArnHasBeenSet()251 inline bool SnsTopicArnHasBeenSet() const { return m_snsTopicArnHasBeenSet; } 252 253 /** 254 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 255 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 256 * streaming job and receive an Amazon SNS notifications each time a data object is 257 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 258 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 259 * will send labeling task output data to the SNS output topic you specify here. 260 * </p> <p>To learn more, see <a 261 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 262 * Output Data from a Streaming Labeling Job</a>. </p> 263 */ SetSnsTopicArn(const Aws::String & value)264 inline void SetSnsTopicArn(const Aws::String& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = value; } 265 266 /** 267 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 268 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 269 * streaming job and receive an Amazon SNS notifications each time a data object is 270 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 271 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 272 * will send labeling task output data to the SNS output topic you specify here. 273 * </p> <p>To learn more, see <a 274 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 275 * Output Data from a Streaming Labeling Job</a>. </p> 276 */ SetSnsTopicArn(Aws::String && value)277 inline void SetSnsTopicArn(Aws::String&& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = std::move(value); } 278 279 /** 280 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 281 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 282 * streaming job and receive an Amazon SNS notifications each time a data object is 283 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 284 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 285 * will send labeling task output data to the SNS output topic you specify here. 286 * </p> <p>To learn more, see <a 287 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 288 * Output Data from a Streaming Labeling Job</a>. </p> 289 */ SetSnsTopicArn(const char * value)290 inline void SetSnsTopicArn(const char* value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn.assign(value); } 291 292 /** 293 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 294 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 295 * streaming job and receive an Amazon SNS notifications each time a data object is 296 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 297 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 298 * will send labeling task output data to the SNS output topic you specify here. 299 * </p> <p>To learn more, see <a 300 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 301 * Output Data from a Streaming Labeling Job</a>. </p> 302 */ WithSnsTopicArn(const Aws::String & value)303 inline LabelingJobOutputConfig& WithSnsTopicArn(const Aws::String& value) { SetSnsTopicArn(value); return *this;} 304 305 /** 306 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 307 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 308 * streaming job and receive an Amazon SNS notifications each time a data object is 309 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 310 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 311 * will send labeling task output data to the SNS output topic you specify here. 312 * </p> <p>To learn more, see <a 313 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 314 * Output Data from a Streaming Labeling Job</a>. </p> 315 */ WithSnsTopicArn(Aws::String && value)316 inline LabelingJobOutputConfig& WithSnsTopicArn(Aws::String&& value) { SetSnsTopicArn(std::move(value)); return *this;} 317 318 /** 319 * <p>An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide 320 * a <code>SnsTopicArn</code> if you want to do real time chaining to another 321 * streaming job and receive an Amazon SNS notifications each time a data object is 322 * submitted by a worker.</p> <p>If you provide an <code>SnsTopicArn</code> in 323 * <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth 324 * will send labeling task output data to the SNS output topic you specify here. 325 * </p> <p>To learn more, see <a 326 * href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive 327 * Output Data from a Streaming Labeling Job</a>. </p> 328 */ WithSnsTopicArn(const char * value)329 inline LabelingJobOutputConfig& WithSnsTopicArn(const char* value) { SetSnsTopicArn(value); return *this;} 330 331 private: 332 333 Aws::String m_s3OutputPath; 334 bool m_s3OutputPathHasBeenSet; 335 336 Aws::String m_kmsKeyId; 337 bool m_kmsKeyIdHasBeenSet; 338 339 Aws::String m_snsTopicArn; 340 bool m_snsTopicArnHasBeenSet; 341 }; 342 343 } // namespace Model 344 } // namespace SageMaker 345 } // namespace Aws 346