/** * 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 Rekognition { namespace Model { /** *

Provides the input image either as bytes or an S3 object.

You pass * image bytes to an Amazon Rekognition API operation by using the * Bytes property. For example, you would use the Bytes * property to pass an image loaded from a local file system. Image bytes passed by * using the Bytes property must be base64-encoded. Your code may not * need to encode image bytes if you are using an AWS SDK to call Amazon * Rekognition API operations.

For more information, see Analyzing an Image * Loaded from a Local File System in the Amazon Rekognition Developer Guide.

*

You pass images stored in an S3 bucket to an Amazon Rekognition API * operation by using the S3Object property. Images stored in an S3 * bucket do not need to be base64-encoded.

The region for the S3 bucket * containing the S3 object must match the region you use for Amazon Rekognition * operations.

If you use the AWS CLI to call Amazon Rekognition operations, * passing image bytes using the Bytes property is not supported. You must first * upload the image to an Amazon S3 bucket and then call the operation using the * S3Object property.

For Amazon Rekognition to process an S3 object, the * user must have permission to access the S3 object. For more information, see How * Amazon Rekognition works with IAM in the Amazon Rekognition Developer Guide. *

See Also:

AWS * API Reference

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

Blob of image bytes up to 5 MBs. Note that the maximum image size you can * pass to DetectCustomLabels is 4MB.

*/ inline const Aws::Utils::ByteBuffer& GetBytes() const{ return m_bytes; } /** *

Blob of image bytes up to 5 MBs. Note that the maximum image size you can * pass to DetectCustomLabels is 4MB.

*/ inline bool BytesHasBeenSet() const { return m_bytesHasBeenSet; } /** *

Blob of image bytes up to 5 MBs. Note that the maximum image size you can * pass to DetectCustomLabels is 4MB.

*/ inline void SetBytes(const Aws::Utils::ByteBuffer& value) { m_bytesHasBeenSet = true; m_bytes = value; } /** *

Blob of image bytes up to 5 MBs. Note that the maximum image size you can * pass to DetectCustomLabels is 4MB.

*/ inline void SetBytes(Aws::Utils::ByteBuffer&& value) { m_bytesHasBeenSet = true; m_bytes = std::move(value); } /** *

Blob of image bytes up to 5 MBs. Note that the maximum image size you can * pass to DetectCustomLabels is 4MB.

*/ inline Image& WithBytes(const Aws::Utils::ByteBuffer& value) { SetBytes(value); return *this;} /** *

Blob of image bytes up to 5 MBs. Note that the maximum image size you can * pass to DetectCustomLabels is 4MB.

*/ inline Image& WithBytes(Aws::Utils::ByteBuffer&& value) { SetBytes(std::move(value)); return *this;} /** *

Identifies an S3 object as the image source.

*/ inline const S3Object& GetS3Object() const{ return m_s3Object; } /** *

Identifies an S3 object as the image source.

*/ inline bool S3ObjectHasBeenSet() const { return m_s3ObjectHasBeenSet; } /** *

Identifies an S3 object as the image source.

*/ inline void SetS3Object(const S3Object& value) { m_s3ObjectHasBeenSet = true; m_s3Object = value; } /** *

Identifies an S3 object as the image source.

*/ inline void SetS3Object(S3Object&& value) { m_s3ObjectHasBeenSet = true; m_s3Object = std::move(value); } /** *

Identifies an S3 object as the image source.

*/ inline Image& WithS3Object(const S3Object& value) { SetS3Object(value); return *this;} /** *

Identifies an S3 object as the image source.

*/ inline Image& WithS3Object(S3Object&& value) { SetS3Object(std::move(value)); return *this;} private: Aws::Utils::ByteBuffer m_bytes; bool m_bytesHasBeenSet = false; S3Object m_s3Object; bool m_s3ObjectHasBeenSet = false; }; } // namespace Model } // namespace Rekognition } // namespace Aws