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

Information about the target S3 bucket for the resource data * sync.

See Also:

AWS * API Reference

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

The name of the S3 bucket where the aggregated data is stored.

*/ inline const Aws::String& GetBucketName() const{ return m_bucketName; } /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline bool BucketNameHasBeenSet() const { return m_bucketNameHasBeenSet; } /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline void SetBucketName(const Aws::String& value) { m_bucketNameHasBeenSet = true; m_bucketName = value; } /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline void SetBucketName(Aws::String&& value) { m_bucketNameHasBeenSet = true; m_bucketName = std::move(value); } /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline void SetBucketName(const char* value) { m_bucketNameHasBeenSet = true; m_bucketName.assign(value); } /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline ResourceDataSyncS3Destination& WithBucketName(const Aws::String& value) { SetBucketName(value); return *this;} /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline ResourceDataSyncS3Destination& WithBucketName(Aws::String&& value) { SetBucketName(std::move(value)); return *this;} /** *

The name of the S3 bucket where the aggregated data is stored.

*/ inline ResourceDataSyncS3Destination& WithBucketName(const char* value) { SetBucketName(value); return *this;} /** *

An Amazon S3 prefix for the bucket.

*/ inline const Aws::String& GetPrefix() const{ return m_prefix; } /** *

An Amazon S3 prefix for the bucket.

*/ inline bool PrefixHasBeenSet() const { return m_prefixHasBeenSet; } /** *

An Amazon S3 prefix for the bucket.

*/ inline void SetPrefix(const Aws::String& value) { m_prefixHasBeenSet = true; m_prefix = value; } /** *

An Amazon S3 prefix for the bucket.

*/ inline void SetPrefix(Aws::String&& value) { m_prefixHasBeenSet = true; m_prefix = std::move(value); } /** *

An Amazon S3 prefix for the bucket.

*/ inline void SetPrefix(const char* value) { m_prefixHasBeenSet = true; m_prefix.assign(value); } /** *

An Amazon S3 prefix for the bucket.

*/ inline ResourceDataSyncS3Destination& WithPrefix(const Aws::String& value) { SetPrefix(value); return *this;} /** *

An Amazon S3 prefix for the bucket.

*/ inline ResourceDataSyncS3Destination& WithPrefix(Aws::String&& value) { SetPrefix(std::move(value)); return *this;} /** *

An Amazon S3 prefix for the bucket.

*/ inline ResourceDataSyncS3Destination& WithPrefix(const char* value) { SetPrefix(value); return *this;} /** *

A supported sync format. The following format is currently supported: * JsonSerDe

*/ inline const ResourceDataSyncS3Format& GetSyncFormat() const{ return m_syncFormat; } /** *

A supported sync format. The following format is currently supported: * JsonSerDe

*/ inline bool SyncFormatHasBeenSet() const { return m_syncFormatHasBeenSet; } /** *

A supported sync format. The following format is currently supported: * JsonSerDe

*/ inline void SetSyncFormat(const ResourceDataSyncS3Format& value) { m_syncFormatHasBeenSet = true; m_syncFormat = value; } /** *

A supported sync format. The following format is currently supported: * JsonSerDe

*/ inline void SetSyncFormat(ResourceDataSyncS3Format&& value) { m_syncFormatHasBeenSet = true; m_syncFormat = std::move(value); } /** *

A supported sync format. The following format is currently supported: * JsonSerDe

*/ inline ResourceDataSyncS3Destination& WithSyncFormat(const ResourceDataSyncS3Format& value) { SetSyncFormat(value); return *this;} /** *

A supported sync format. The following format is currently supported: * JsonSerDe

*/ inline ResourceDataSyncS3Destination& WithSyncFormat(ResourceDataSyncS3Format&& value) { SetSyncFormat(std::move(value)); return *this;} /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline ResourceDataSyncS3Destination& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline ResourceDataSyncS3Destination& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The Amazon Web Services Region with the S3 bucket targeted by the resource * data sync.

*/ inline ResourceDataSyncS3Destination& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline const Aws::String& GetAWSKMSKeyARN() const{ return m_aWSKMSKeyARN; } /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline bool AWSKMSKeyARNHasBeenSet() const { return m_aWSKMSKeyARNHasBeenSet; } /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline void SetAWSKMSKeyARN(const Aws::String& value) { m_aWSKMSKeyARNHasBeenSet = true; m_aWSKMSKeyARN = value; } /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline void SetAWSKMSKeyARN(Aws::String&& value) { m_aWSKMSKeyARNHasBeenSet = true; m_aWSKMSKeyARN = std::move(value); } /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline void SetAWSKMSKeyARN(const char* value) { m_aWSKMSKeyARNHasBeenSet = true; m_aWSKMSKeyARN.assign(value); } /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline ResourceDataSyncS3Destination& WithAWSKMSKeyARN(const Aws::String& value) { SetAWSKMSKeyARN(value); return *this;} /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline ResourceDataSyncS3Destination& WithAWSKMSKeyARN(Aws::String&& value) { SetAWSKMSKeyARN(std::move(value)); return *this;} /** *

The ARN of an encryption key for a destination in Amazon S3. Must belong to * the same Region as the destination S3 bucket.

*/ inline ResourceDataSyncS3Destination& WithAWSKMSKeyARN(const char* value) { SetAWSKMSKeyARN(value); return *this;} /** *

Enables destination data sharing. By default, this field is * null.

*/ inline const ResourceDataSyncDestinationDataSharing& GetDestinationDataSharing() const{ return m_destinationDataSharing; } /** *

Enables destination data sharing. By default, this field is * null.

*/ inline bool DestinationDataSharingHasBeenSet() const { return m_destinationDataSharingHasBeenSet; } /** *

Enables destination data sharing. By default, this field is * null.

*/ inline void SetDestinationDataSharing(const ResourceDataSyncDestinationDataSharing& value) { m_destinationDataSharingHasBeenSet = true; m_destinationDataSharing = value; } /** *

Enables destination data sharing. By default, this field is * null.

*/ inline void SetDestinationDataSharing(ResourceDataSyncDestinationDataSharing&& value) { m_destinationDataSharingHasBeenSet = true; m_destinationDataSharing = std::move(value); } /** *

Enables destination data sharing. By default, this field is * null.

*/ inline ResourceDataSyncS3Destination& WithDestinationDataSharing(const ResourceDataSyncDestinationDataSharing& value) { SetDestinationDataSharing(value); return *this;} /** *

Enables destination data sharing. By default, this field is * null.

*/ inline ResourceDataSyncS3Destination& WithDestinationDataSharing(ResourceDataSyncDestinationDataSharing&& value) { SetDestinationDataSharing(std::move(value)); return *this;} private: Aws::String m_bucketName; bool m_bucketNameHasBeenSet = false; Aws::String m_prefix; bool m_prefixHasBeenSet = false; ResourceDataSyncS3Format m_syncFormat; bool m_syncFormatHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; Aws::String m_aWSKMSKeyARN; bool m_aWSKMSKeyARNHasBeenSet = false; ResourceDataSyncDestinationDataSharing m_destinationDataSharing; bool m_destinationDataSharingHasBeenSet = false; }; } // namespace Model } // namespace SSM } // namespace Aws