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

The configuration that specifies an S3 location.

See Also:

* AWS * API Reference

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The bucket name of the customer S3 bucket.

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

The object key preview for the customer S3 location.

*/ inline const Aws::String& GetObjectKeyPrefix() const{ return m_objectKeyPrefix; } /** *

The object key preview for the customer S3 location.

*/ inline bool ObjectKeyPrefixHasBeenSet() const { return m_objectKeyPrefixHasBeenSet; } /** *

The object key preview for the customer S3 location.

*/ inline void SetObjectKeyPrefix(const Aws::String& value) { m_objectKeyPrefixHasBeenSet = true; m_objectKeyPrefix = value; } /** *

The object key preview for the customer S3 location.

*/ inline void SetObjectKeyPrefix(Aws::String&& value) { m_objectKeyPrefixHasBeenSet = true; m_objectKeyPrefix = std::move(value); } /** *

The object key preview for the customer S3 location.

*/ inline void SetObjectKeyPrefix(const char* value) { m_objectKeyPrefixHasBeenSet = true; m_objectKeyPrefix.assign(value); } /** *

The object key preview for the customer S3 location.

*/ inline S3Configuration& WithObjectKeyPrefix(const Aws::String& value) { SetObjectKeyPrefix(value); return *this;} /** *

The object key preview for the customer S3 location.

*/ inline S3Configuration& WithObjectKeyPrefix(Aws::String&& value) { SetObjectKeyPrefix(std::move(value)); return *this;} /** *

The object key preview for the customer S3 location.

*/ inline S3Configuration& WithObjectKeyPrefix(const char* value) { SetObjectKeyPrefix(value); return *this;} /** *

The encryption option for the customer S3 location. Options are S3 * server-side encryption with an S3 managed key or Amazon Web Services managed * key.

*/ inline const S3EncryptionOption& GetEncryptionOption() const{ return m_encryptionOption; } /** *

The encryption option for the customer S3 location. Options are S3 * server-side encryption with an S3 managed key or Amazon Web Services managed * key.

*/ inline bool EncryptionOptionHasBeenSet() const { return m_encryptionOptionHasBeenSet; } /** *

The encryption option for the customer S3 location. Options are S3 * server-side encryption with an S3 managed key or Amazon Web Services managed * key.

*/ inline void SetEncryptionOption(const S3EncryptionOption& value) { m_encryptionOptionHasBeenSet = true; m_encryptionOption = value; } /** *

The encryption option for the customer S3 location. Options are S3 * server-side encryption with an S3 managed key or Amazon Web Services managed * key.

*/ inline void SetEncryptionOption(S3EncryptionOption&& value) { m_encryptionOptionHasBeenSet = true; m_encryptionOption = std::move(value); } /** *

The encryption option for the customer S3 location. Options are S3 * server-side encryption with an S3 managed key or Amazon Web Services managed * key.

*/ inline S3Configuration& WithEncryptionOption(const S3EncryptionOption& value) { SetEncryptionOption(value); return *this;} /** *

The encryption option for the customer S3 location. Options are S3 * server-side encryption with an S3 managed key or Amazon Web Services managed * key.

*/ inline S3Configuration& WithEncryptionOption(S3EncryptionOption&& value) { SetEncryptionOption(std::move(value)); return *this;} /** *

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

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

The KMS key ID for the customer S3 location when encrypting with an Amazon * Web Services managed key.

*/ inline S3Configuration& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: Aws::String m_bucketName; bool m_bucketNameHasBeenSet = false; Aws::String m_objectKeyPrefix; bool m_objectKeyPrefixHasBeenSet = false; S3EncryptionOption m_encryptionOption; bool m_encryptionOptionHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace TimestreamWrite } // namespace Aws