/** * 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 information about the updates in the query results, such as output * location and encryption configuration for the query results.

See * Also:

AWS * API Reference

*/ class ResultConfigurationUpdates { public: AWS_ATHENA_API ResultConfigurationUpdates(); AWS_ATHENA_API ResultConfigurationUpdates(Aws::Utils::Json::JsonView jsonValue); AWS_ATHENA_API ResultConfigurationUpdates& 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline ResultConfigurationUpdates& 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

*/ inline ResultConfigurationUpdates& 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/. 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 location for the query * results and the encryption configuration that are specified for the workgroup. * The "workgroup settings override" is specified in * EnforceWorkGroupConfiguration (true/false) in the * WorkGroupConfiguration. See * WorkGroupConfiguration$EnforceWorkGroupConfiguration.

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

If set to "true", indicates that the previously-specified query results * location (also known as a client-side setting) for queries in this workgroup * should be ignored and set to null. If set to "false" or not set, and a value is * present in the OutputLocation in * ResultConfigurationUpdates (the client-side setting), the * OutputLocation in the workgroup's ResultConfiguration * will be updated with the new value. For more information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool GetRemoveOutputLocation() const{ return m_removeOutputLocation; } /** *

If set to "true", indicates that the previously-specified query results * location (also known as a client-side setting) for queries in this workgroup * should be ignored and set to null. If set to "false" or not set, and a value is * present in the OutputLocation in * ResultConfigurationUpdates (the client-side setting), the * OutputLocation in the workgroup's ResultConfiguration * will be updated with the new value. For more information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool RemoveOutputLocationHasBeenSet() const { return m_removeOutputLocationHasBeenSet; } /** *

If set to "true", indicates that the previously-specified query results * location (also known as a client-side setting) for queries in this workgroup * should be ignored and set to null. If set to "false" or not set, and a value is * present in the OutputLocation in * ResultConfigurationUpdates (the client-side setting), the * OutputLocation in the workgroup's ResultConfiguration * will be updated with the new value. For more information, see Workgroup * Settings Override Client-Side Settings.

*/ inline void SetRemoveOutputLocation(bool value) { m_removeOutputLocationHasBeenSet = true; m_removeOutputLocation = value; } /** *

If set to "true", indicates that the previously-specified query results * location (also known as a client-side setting) for queries in this workgroup * should be ignored and set to null. If set to "false" or not set, and a value is * present in the OutputLocation in * ResultConfigurationUpdates (the client-side setting), the * OutputLocation in the workgroup's ResultConfiguration * will be updated with the new value. For more information, see Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfigurationUpdates& WithRemoveOutputLocation(bool value) { SetRemoveOutputLocation(value); return *this;} /** *

The encryption configuration for query and calculation results.

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

The encryption configuration for query and calculation results.

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

The encryption configuration for query and calculation results.

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

The encryption configuration for query and calculation results.

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

The encryption configuration for query and calculation results.

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

The encryption configuration for query and calculation results.

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

If set to "true", indicates that the previously-specified encryption * configuration (also known as the client-side setting) for queries in this * workgroup should be ignored and set to null. If set to "false" or not set, and a * value is present in the EncryptionConfiguration in * ResultConfigurationUpdates (the client-side setting), the * EncryptionConfiguration in the workgroup's * ResultConfiguration will be updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool GetRemoveEncryptionConfiguration() const{ return m_removeEncryptionConfiguration; } /** *

If set to "true", indicates that the previously-specified encryption * configuration (also known as the client-side setting) for queries in this * workgroup should be ignored and set to null. If set to "false" or not set, and a * value is present in the EncryptionConfiguration in * ResultConfigurationUpdates (the client-side setting), the * EncryptionConfiguration in the workgroup's * ResultConfiguration will be updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool RemoveEncryptionConfigurationHasBeenSet() const { return m_removeEncryptionConfigurationHasBeenSet; } /** *

If set to "true", indicates that the previously-specified encryption * configuration (also known as the client-side setting) for queries in this * workgroup should be ignored and set to null. If set to "false" or not set, and a * value is present in the EncryptionConfiguration in * ResultConfigurationUpdates (the client-side setting), the * EncryptionConfiguration in the workgroup's * ResultConfiguration will be updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline void SetRemoveEncryptionConfiguration(bool value) { m_removeEncryptionConfigurationHasBeenSet = true; m_removeEncryptionConfiguration = value; } /** *

If set to "true", indicates that the previously-specified encryption * configuration (also known as the client-side setting) for queries in this * workgroup should be ignored and set to null. If set to "false" or not set, and a * value is present in the EncryptionConfiguration in * ResultConfigurationUpdates (the client-side setting), the * EncryptionConfiguration in the workgroup's * ResultConfiguration will be updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfigurationUpdates& WithRemoveEncryptionConfiguration(bool value) { SetRemoveEncryptionConfiguration(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.

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.

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.

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.

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.

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.

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 ResultConfigurationUpdates& 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.

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 ResultConfigurationUpdates& 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.

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 ResultConfigurationUpdates& WithExpectedBucketOwner(const char* value) { SetExpectedBucketOwner(value); return *this;} /** *

If set to "true", removes the Amazon Web Services account ID previously * specified for ResultConfiguration$ExpectedBucketOwner. If set to "false" * or not set, and a value is present in the ExpectedBucketOwner in * ResultConfigurationUpdates (the client-side setting), the * ExpectedBucketOwner in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool GetRemoveExpectedBucketOwner() const{ return m_removeExpectedBucketOwner; } /** *

If set to "true", removes the Amazon Web Services account ID previously * specified for ResultConfiguration$ExpectedBucketOwner. If set to "false" * or not set, and a value is present in the ExpectedBucketOwner in * ResultConfigurationUpdates (the client-side setting), the * ExpectedBucketOwner in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool RemoveExpectedBucketOwnerHasBeenSet() const { return m_removeExpectedBucketOwnerHasBeenSet; } /** *

If set to "true", removes the Amazon Web Services account ID previously * specified for ResultConfiguration$ExpectedBucketOwner. If set to "false" * or not set, and a value is present in the ExpectedBucketOwner in * ResultConfigurationUpdates (the client-side setting), the * ExpectedBucketOwner in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline void SetRemoveExpectedBucketOwner(bool value) { m_removeExpectedBucketOwnerHasBeenSet = true; m_removeExpectedBucketOwner = value; } /** *

If set to "true", removes the Amazon Web Services account ID previously * specified for ResultConfiguration$ExpectedBucketOwner. If set to "false" * or not set, and a value is present in the ExpectedBucketOwner in * ResultConfigurationUpdates (the client-side setting), the * ExpectedBucketOwner in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfigurationUpdates& WithRemoveExpectedBucketOwner(bool value) { SetRemoveExpectedBucketOwner(value); return *this;} /** *

The ACL configuration for the query results.

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

The ACL configuration for the query results.

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

The ACL configuration for the query results.

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

The ACL configuration for the query results.

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

The ACL configuration for the query results.

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

The ACL configuration for the query results.

*/ inline ResultConfigurationUpdates& WithAclConfiguration(AclConfiguration&& value) { SetAclConfiguration(std::move(value)); return *this;} /** *

If set to true, indicates that the previously-specified ACL * configuration for queries in this workgroup should be ignored and set to null. * If set to false or not set, and a value is present in the * AclConfiguration of ResultConfigurationUpdates, the * AclConfiguration in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool GetRemoveAclConfiguration() const{ return m_removeAclConfiguration; } /** *

If set to true, indicates that the previously-specified ACL * configuration for queries in this workgroup should be ignored and set to null. * If set to false or not set, and a value is present in the * AclConfiguration of ResultConfigurationUpdates, the * AclConfiguration in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline bool RemoveAclConfigurationHasBeenSet() const { return m_removeAclConfigurationHasBeenSet; } /** *

If set to true, indicates that the previously-specified ACL * configuration for queries in this workgroup should be ignored and set to null. * If set to false or not set, and a value is present in the * AclConfiguration of ResultConfigurationUpdates, the * AclConfiguration in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline void SetRemoveAclConfiguration(bool value) { m_removeAclConfigurationHasBeenSet = true; m_removeAclConfiguration = value; } /** *

If set to true, indicates that the previously-specified ACL * configuration for queries in this workgroup should be ignored and set to null. * If set to false or not set, and a value is present in the * AclConfiguration of ResultConfigurationUpdates, the * AclConfiguration in the workgroup's * ResultConfiguration is updated with the new value. For more * information, see Workgroup * Settings Override Client-Side Settings.

*/ inline ResultConfigurationUpdates& WithRemoveAclConfiguration(bool value) { SetRemoveAclConfiguration(value); return *this;} private: Aws::String m_outputLocation; bool m_outputLocationHasBeenSet = false; bool m_removeOutputLocation; bool m_removeOutputLocationHasBeenSet = false; EncryptionConfiguration m_encryptionConfiguration; bool m_encryptionConfigurationHasBeenSet = false; bool m_removeEncryptionConfiguration; bool m_removeEncryptionConfigurationHasBeenSet = false; Aws::String m_expectedBucketOwner; bool m_expectedBucketOwnerHasBeenSet = false; bool m_removeExpectedBucketOwner; bool m_removeExpectedBucketOwnerHasBeenSet = false; AclConfiguration m_aclConfiguration; bool m_aclConfigurationHasBeenSet = false; bool m_removeAclConfiguration; bool m_removeAclConfigurationHasBeenSet = false; }; } // namespace Model } // namespace Athena } // namespace Aws