/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes integration options for Amazon Athena.

See Also:

* AWS * API Reference

*/ class AthenaIntegration { public: AWS_EC2_API AthenaIntegration(); AWS_EC2_API AthenaIntegration(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API AthenaIntegration& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline const Aws::String& GetIntegrationResultS3DestinationArn() const{ return m_integrationResultS3DestinationArn; } /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline bool IntegrationResultS3DestinationArnHasBeenSet() const { return m_integrationResultS3DestinationArnHasBeenSet; } /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline void SetIntegrationResultS3DestinationArn(const Aws::String& value) { m_integrationResultS3DestinationArnHasBeenSet = true; m_integrationResultS3DestinationArn = value; } /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline void SetIntegrationResultS3DestinationArn(Aws::String&& value) { m_integrationResultS3DestinationArnHasBeenSet = true; m_integrationResultS3DestinationArn = std::move(value); } /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline void SetIntegrationResultS3DestinationArn(const char* value) { m_integrationResultS3DestinationArnHasBeenSet = true; m_integrationResultS3DestinationArn.assign(value); } /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline AthenaIntegration& WithIntegrationResultS3DestinationArn(const Aws::String& value) { SetIntegrationResultS3DestinationArn(value); return *this;} /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline AthenaIntegration& WithIntegrationResultS3DestinationArn(Aws::String&& value) { SetIntegrationResultS3DestinationArn(std::move(value)); return *this;} /** *

The location in Amazon S3 to store the generated CloudFormation template.

*/ inline AthenaIntegration& WithIntegrationResultS3DestinationArn(const char* value) { SetIntegrationResultS3DestinationArn(value); return *this;} /** *

The schedule for adding new partitions to the table.

*/ inline const PartitionLoadFrequency& GetPartitionLoadFrequency() const{ return m_partitionLoadFrequency; } /** *

The schedule for adding new partitions to the table.

*/ inline bool PartitionLoadFrequencyHasBeenSet() const { return m_partitionLoadFrequencyHasBeenSet; } /** *

The schedule for adding new partitions to the table.

*/ inline void SetPartitionLoadFrequency(const PartitionLoadFrequency& value) { m_partitionLoadFrequencyHasBeenSet = true; m_partitionLoadFrequency = value; } /** *

The schedule for adding new partitions to the table.

*/ inline void SetPartitionLoadFrequency(PartitionLoadFrequency&& value) { m_partitionLoadFrequencyHasBeenSet = true; m_partitionLoadFrequency = std::move(value); } /** *

The schedule for adding new partitions to the table.

*/ inline AthenaIntegration& WithPartitionLoadFrequency(const PartitionLoadFrequency& value) { SetPartitionLoadFrequency(value); return *this;} /** *

The schedule for adding new partitions to the table.

*/ inline AthenaIntegration& WithPartitionLoadFrequency(PartitionLoadFrequency&& value) { SetPartitionLoadFrequency(std::move(value)); return *this;} /** *

The start date for the partition.

*/ inline const Aws::Utils::DateTime& GetPartitionStartDate() const{ return m_partitionStartDate; } /** *

The start date for the partition.

*/ inline bool PartitionStartDateHasBeenSet() const { return m_partitionStartDateHasBeenSet; } /** *

The start date for the partition.

*/ inline void SetPartitionStartDate(const Aws::Utils::DateTime& value) { m_partitionStartDateHasBeenSet = true; m_partitionStartDate = value; } /** *

The start date for the partition.

*/ inline void SetPartitionStartDate(Aws::Utils::DateTime&& value) { m_partitionStartDateHasBeenSet = true; m_partitionStartDate = std::move(value); } /** *

The start date for the partition.

*/ inline AthenaIntegration& WithPartitionStartDate(const Aws::Utils::DateTime& value) { SetPartitionStartDate(value); return *this;} /** *

The start date for the partition.

*/ inline AthenaIntegration& WithPartitionStartDate(Aws::Utils::DateTime&& value) { SetPartitionStartDate(std::move(value)); return *this;} /** *

The end date for the partition.

*/ inline const Aws::Utils::DateTime& GetPartitionEndDate() const{ return m_partitionEndDate; } /** *

The end date for the partition.

*/ inline bool PartitionEndDateHasBeenSet() const { return m_partitionEndDateHasBeenSet; } /** *

The end date for the partition.

*/ inline void SetPartitionEndDate(const Aws::Utils::DateTime& value) { m_partitionEndDateHasBeenSet = true; m_partitionEndDate = value; } /** *

The end date for the partition.

*/ inline void SetPartitionEndDate(Aws::Utils::DateTime&& value) { m_partitionEndDateHasBeenSet = true; m_partitionEndDate = std::move(value); } /** *

The end date for the partition.

*/ inline AthenaIntegration& WithPartitionEndDate(const Aws::Utils::DateTime& value) { SetPartitionEndDate(value); return *this;} /** *

The end date for the partition.

*/ inline AthenaIntegration& WithPartitionEndDate(Aws::Utils::DateTime&& value) { SetPartitionEndDate(std::move(value)); return *this;} private: Aws::String m_integrationResultS3DestinationArn; bool m_integrationResultS3DestinationArnHasBeenSet = false; PartitionLoadFrequency m_partitionLoadFrequency; bool m_partitionLoadFrequencyHasBeenSet = false; Aws::Utils::DateTime m_partitionStartDate; bool m_partitionStartDateHasBeenSet = false; Aws::Utils::DateTime m_partitionEndDate; bool m_partitionEndDateHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws