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

Each S3Resource object represents an Amazon S3 bucket that your * transferred data will be exported from or imported into. For export jobs, this * object can have an optional KeyRange value. The length of the range * is defined at job creation, and has either an inclusive * BeginMarker, an inclusive EndMarker, or both. Ranges * are UTF-8 binary sorted.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline const Aws::String& GetBucketArn() const{ return m_bucketArn; } /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline bool BucketArnHasBeenSet() const { return m_bucketArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline void SetBucketArn(const Aws::String& value) { m_bucketArnHasBeenSet = true; m_bucketArn = value; } /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline void SetBucketArn(Aws::String&& value) { m_bucketArnHasBeenSet = true; m_bucketArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline void SetBucketArn(const char* value) { m_bucketArnHasBeenSet = true; m_bucketArn.assign(value); } /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline S3Resource& WithBucketArn(const Aws::String& value) { SetBucketArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline S3Resource& WithBucketArn(Aws::String&& value) { SetBucketArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an Amazon S3 bucket.

*/ inline S3Resource& WithBucketArn(const char* value) { SetBucketArn(value); return *this;} /** *

For export jobs, you can provide an optional KeyRange within a * specific Amazon S3 bucket. The length of the range is defined at job creation, * and has either an inclusive BeginMarker, an inclusive * EndMarker, or both. Ranges are UTF-8 binary sorted.

*/ inline const KeyRange& GetKeyRange() const{ return m_keyRange; } /** *

For export jobs, you can provide an optional KeyRange within a * specific Amazon S3 bucket. The length of the range is defined at job creation, * and has either an inclusive BeginMarker, an inclusive * EndMarker, or both. Ranges are UTF-8 binary sorted.

*/ inline bool KeyRangeHasBeenSet() const { return m_keyRangeHasBeenSet; } /** *

For export jobs, you can provide an optional KeyRange within a * specific Amazon S3 bucket. The length of the range is defined at job creation, * and has either an inclusive BeginMarker, an inclusive * EndMarker, or both. Ranges are UTF-8 binary sorted.

*/ inline void SetKeyRange(const KeyRange& value) { m_keyRangeHasBeenSet = true; m_keyRange = value; } /** *

For export jobs, you can provide an optional KeyRange within a * specific Amazon S3 bucket. The length of the range is defined at job creation, * and has either an inclusive BeginMarker, an inclusive * EndMarker, or both. Ranges are UTF-8 binary sorted.

*/ inline void SetKeyRange(KeyRange&& value) { m_keyRangeHasBeenSet = true; m_keyRange = std::move(value); } /** *

For export jobs, you can provide an optional KeyRange within a * specific Amazon S3 bucket. The length of the range is defined at job creation, * and has either an inclusive BeginMarker, an inclusive * EndMarker, or both. Ranges are UTF-8 binary sorted.

*/ inline S3Resource& WithKeyRange(const KeyRange& value) { SetKeyRange(value); return *this;} /** *

For export jobs, you can provide an optional KeyRange within a * specific Amazon S3 bucket. The length of the range is defined at job creation, * and has either an inclusive BeginMarker, an inclusive * EndMarker, or both. Ranges are UTF-8 binary sorted.

*/ inline S3Resource& WithKeyRange(KeyRange&& value) { SetKeyRange(std::move(value)); return *this;} /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline const Aws::Vector& GetTargetOnDeviceServices() const{ return m_targetOnDeviceServices; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline bool TargetOnDeviceServicesHasBeenSet() const { return m_targetOnDeviceServicesHasBeenSet; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline void SetTargetOnDeviceServices(const Aws::Vector& value) { m_targetOnDeviceServicesHasBeenSet = true; m_targetOnDeviceServices = value; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline void SetTargetOnDeviceServices(Aws::Vector&& value) { m_targetOnDeviceServicesHasBeenSet = true; m_targetOnDeviceServices = std::move(value); } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline S3Resource& WithTargetOnDeviceServices(const Aws::Vector& value) { SetTargetOnDeviceServices(value); return *this;} /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline S3Resource& WithTargetOnDeviceServices(Aws::Vector&& value) { SetTargetOnDeviceServices(std::move(value)); return *this;} /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline S3Resource& AddTargetOnDeviceServices(const TargetOnDeviceService& value) { m_targetOnDeviceServicesHasBeenSet = true; m_targetOnDeviceServices.push_back(value); return *this; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family supports Amazon S3 and NFS (Network File System).

*/ inline S3Resource& AddTargetOnDeviceServices(TargetOnDeviceService&& value) { m_targetOnDeviceServicesHasBeenSet = true; m_targetOnDeviceServices.push_back(std::move(value)); return *this; } private: Aws::String m_bucketArn; bool m_bucketArnHasBeenSet = false; KeyRange m_keyRange; bool m_keyRangeHasBeenSet = false; Aws::Vector m_targetOnDeviceServices; bool m_targetOnDeviceServicesHasBeenSet = false; }; } // namespace Model } // namespace Snowball } // namespace Aws