/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The configuration that specifies an S3 location.See Also:
* AWS
* API Reference
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