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

The location in Amazon S3 where query and calculation results are stored and * the encryption option, if any, used for query and calculation results. These are * known as "client-side settings". If workgroup settings override client-side * settings, then the query uses the workgroup settings.

See Also:

* AWS * API Reference

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

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline const Aws::String& GetOutputLocation() const{ return m_outputLocation; } /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline bool OutputLocationHasBeenSet() const { return m_outputLocationHasBeenSet; } /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline void SetOutputLocation(const Aws::String& value) { m_outputLocationHasBeenSet = true; m_outputLocation = value; } /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline void SetOutputLocation(Aws::String&& value) { m_outputLocationHasBeenSet = true; m_outputLocation = std::move(value); } /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline void SetOutputLocation(const char* value) { m_outputLocationHasBeenSet = true; m_outputLocation.assign(value); } /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline ResultConfiguration& WithOutputLocation(const Aws::String& value) { SetOutputLocation(value); return *this;} /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline ResultConfiguration& WithOutputLocation(Aws::String&& value) { SetOutputLocation(std::move(value)); return *this;} /** *

The location in Amazon S3 where your query and calculation results are * stored, such as s3://path/to/query/bucket/. To run the query, you * must specify the query results location using one of the ways: either for * individual queries using either this setting (client-side), or in the workgroup, * using WorkGroupConfiguration. If none of them is set, Athena issues an * error that no output location is provided. For more information, see Working with * query results, recent queries, and output files. If workgroup settings * override client-side settings, then the query uses the settings specified for * the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline ResultConfiguration& WithOutputLocation(const char* value) { SetOutputLocation(value); return *this;} /** *

If query and calculation results are encrypted in Amazon S3, indicates the * encryption option used (for example, SSE_KMS or * CSE_KMS) and key information. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the * encryption configuration that is specified for the workgroup, and also uses the * location for storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline const EncryptionConfiguration& GetEncryptionConfiguration() const{ return m_encryptionConfiguration; } /** *

If query and calculation results are encrypted in Amazon S3, indicates the * encryption option used (for example, SSE_KMS or * CSE_KMS) and key information. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the * encryption configuration that is specified for the workgroup, and also uses the * location for storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline bool EncryptionConfigurationHasBeenSet() const { return m_encryptionConfigurationHasBeenSet; } /** *

If query and calculation results are encrypted in Amazon S3, indicates the * encryption option used (for example, SSE_KMS or * CSE_KMS) and key information. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the * encryption configuration that is specified for the workgroup, and also uses the * location for storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetEncryptionConfiguration(const EncryptionConfiguration& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = value; } /** *

If query and calculation results are encrypted in Amazon S3, indicates the * encryption option used (for example, SSE_KMS or * CSE_KMS) and key information. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the * encryption configuration that is specified for the workgroup, and also uses the * location for storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetEncryptionConfiguration(EncryptionConfiguration&& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = std::move(value); } /** *

If query and calculation results are encrypted in Amazon S3, indicates the * encryption option used (for example, SSE_KMS or * CSE_KMS) and key information. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the * encryption configuration that is specified for the workgroup, and also uses the * location for storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithEncryptionConfiguration(const EncryptionConfiguration& value) { SetEncryptionConfiguration(value); return *this;} /** *

If query and calculation results are encrypted in Amazon S3, indicates the * encryption option used (for example, SSE_KMS or * CSE_KMS) and key information. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the * encryption configuration that is specified for the workgroup, and also uses the * location for storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithEncryptionConfiguration(EncryptionConfiguration&& value) { SetEncryptionConfiguration(std::move(value)); return *this;} /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline const Aws::String& GetExpectedBucketOwner() const{ return m_expectedBucketOwner; } /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline bool ExpectedBucketOwnerHasBeenSet() const { return m_expectedBucketOwnerHasBeenSet; } /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetExpectedBucketOwner(const Aws::String& value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner = value; } /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetExpectedBucketOwner(Aws::String&& value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner = std::move(value); } /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetExpectedBucketOwner(const char* value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner.assign(value); } /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithExpectedBucketOwner(const Aws::String& value) { SetExpectedBucketOwner(value); return *this;} /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithExpectedBucketOwner(Aws::String&& value) { SetExpectedBucketOwner(std::move(value)); return *this;} /** *

The Amazon Web Services account ID that you expect to be the owner of the * Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, * Athena uses the value for ExpectedBucketOwner when it makes Amazon * S3 calls to your specified output location. If the * ExpectedBucketOwner Amazon Web Services account ID does not match * the actual owner of the Amazon S3 bucket, the call fails with a permissions * error.

This is a client-side setting. If workgroup settings override * client-side settings, then the query uses the ExpectedBucketOwner * setting that is specified for the workgroup, and also uses the location for * storing query results specified in the workgroup. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithExpectedBucketOwner(const char* value) { SetExpectedBucketOwner(value); return *this;} /** *

Indicates that an Amazon S3 canned ACL should be set to control ownership of * stored query results. Currently the only supported canned ACL is * BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the ACL * configuration that is specified for the workgroup, and also uses the location * for storing query results specified in the workgroup. For more information, see * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline const AclConfiguration& GetAclConfiguration() const{ return m_aclConfiguration; } /** *

Indicates that an Amazon S3 canned ACL should be set to control ownership of * stored query results. Currently the only supported canned ACL is * BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the ACL * configuration that is specified for the workgroup, and also uses the location * for storing query results specified in the workgroup. For more information, see * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline bool AclConfigurationHasBeenSet() const { return m_aclConfigurationHasBeenSet; } /** *

Indicates that an Amazon S3 canned ACL should be set to control ownership of * stored query results. Currently the only supported canned ACL is * BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the ACL * configuration that is specified for the workgroup, and also uses the location * for storing query results specified in the workgroup. For more information, see * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetAclConfiguration(const AclConfiguration& value) { m_aclConfigurationHasBeenSet = true; m_aclConfiguration = value; } /** *

Indicates that an Amazon S3 canned ACL should be set to control ownership of * stored query results. Currently the only supported canned ACL is * BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the ACL * configuration that is specified for the workgroup, and also uses the location * for storing query results specified in the workgroup. For more information, see * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline void SetAclConfiguration(AclConfiguration&& value) { m_aclConfigurationHasBeenSet = true; m_aclConfiguration = std::move(value); } /** *

Indicates that an Amazon S3 canned ACL should be set to control ownership of * stored query results. Currently the only supported canned ACL is * BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the ACL * configuration that is specified for the workgroup, and also uses the location * for storing query results specified in the workgroup. For more information, see * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithAclConfiguration(const AclConfiguration& value) { SetAclConfiguration(value); return *this;} /** *

Indicates that an Amazon S3 canned ACL should be set to control ownership of * stored query results. Currently the only supported canned ACL is * BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If * workgroup settings override client-side settings, then the query uses the ACL * configuration that is specified for the workgroup, and also uses the location * for storing query results specified in the workgroup. For more information, see * WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfiguration& WithAclConfiguration(AclConfiguration&& value) { SetAclConfiguration(std::move(value)); return *this;} private: Aws::String m_outputLocation; bool m_outputLocationHasBeenSet = false; EncryptionConfiguration m_encryptionConfiguration; bool m_encryptionConfigurationHasBeenSet = false; Aws::String m_expectedBucketOwner; bool m_expectedBucketOwnerHasBeenSet = false; AclConfiguration m_aclConfiguration; bool m_aclConfigurationHasBeenSet = false; }; } // namespace Model } // namespace Athena } // namespace Aws