/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the athena-2017-05-18.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Athena.Model
{
///
/// The configuration of the workgroup, which includes the location in Amazon S3 where
/// query and calculation results are stored, the encryption option, if any, used for
/// query and calculation results, whether the Amazon CloudWatch Metrics are enabled for
/// the workgroup and whether workgroup settings override query settings, and the data
/// usage limits for the amount of data scanned per query or per workgroup. The workgroup
/// settings override is specified in EnforceWorkGroupConfiguration
(true/false)
/// in the WorkGroupConfiguration
. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
///
public partial class WorkGroupConfiguration
{
private string _additionalConfiguration;
private long? _bytesScannedCutoffPerQuery;
private CustomerContentEncryptionConfiguration _customerContentEncryptionConfiguration;
private bool? _enableMinimumEncryptionConfiguration;
private bool? _enforceWorkGroupConfiguration;
private EngineVersion _engineVersion;
private string _executionRole;
private bool? _publishCloudWatchMetricsEnabled;
private bool? _requesterPaysEnabled;
private ResultConfiguration _resultConfiguration;
///
/// Gets and sets the property AdditionalConfiguration.
///
/// Specifies a user defined JSON string that is passed to the notebook engine.
///
///
[AWSProperty(Min=1, Max=128)]
public string AdditionalConfiguration
{
get { return this._additionalConfiguration; }
set { this._additionalConfiguration = value; }
}
// Check to see if AdditionalConfiguration property is set
internal bool IsSetAdditionalConfiguration()
{
return this._additionalConfiguration != null;
}
///
/// Gets and sets the property BytesScannedCutoffPerQuery.
///
/// The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup
/// is allowed to scan.
///
///
[AWSProperty(Min=10000000)]
public long BytesScannedCutoffPerQuery
{
get { return this._bytesScannedCutoffPerQuery.GetValueOrDefault(); }
set { this._bytesScannedCutoffPerQuery = value; }
}
// Check to see if BytesScannedCutoffPerQuery property is set
internal bool IsSetBytesScannedCutoffPerQuery()
{
return this._bytesScannedCutoffPerQuery.HasValue;
}
///
/// Gets and sets the property CustomerContentEncryptionConfiguration.
///
/// Specifies the KMS key that is used to encrypt the user's data stores in Athena. This
/// setting does not apply to Athena SQL workgroups.
///
///
public CustomerContentEncryptionConfiguration CustomerContentEncryptionConfiguration
{
get { return this._customerContentEncryptionConfiguration; }
set { this._customerContentEncryptionConfiguration = value; }
}
// Check to see if CustomerContentEncryptionConfiguration property is set
internal bool IsSetCustomerContentEncryptionConfiguration()
{
return this._customerContentEncryptionConfiguration != null;
}
///
/// Gets and sets the property EnableMinimumEncryptionConfiguration.
///
/// Enforces a minimal level of encryption for the workgroup for query and calculation
/// results that are written to Amazon S3. When enabled, workgroup users can set encryption
/// only to the minimum level set by the administrator or higher when they submit queries.
///
///
///
/// The EnforceWorkGroupConfiguration
setting takes precedence over the EnableMinimumEncryptionConfiguration
/// flag. This means that if EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
/// flag is ignored, and the workgroup configuration for encryption is used.
///
///
public bool EnableMinimumEncryptionConfiguration
{
get { return this._enableMinimumEncryptionConfiguration.GetValueOrDefault(); }
set { this._enableMinimumEncryptionConfiguration = value; }
}
// Check to see if EnableMinimumEncryptionConfiguration property is set
internal bool IsSetEnableMinimumEncryptionConfiguration()
{
return this._enableMinimumEncryptionConfiguration.HasValue;
}
///
/// Gets and sets the property EnforceWorkGroupConfiguration.
///
/// If set to "true", the settings for the workgroup override client-side settings. If
/// set to "false", client-side settings are used. For more information, see Workgroup
/// Settings Override Client-Side Settings.
///
///
public bool EnforceWorkGroupConfiguration
{
get { return this._enforceWorkGroupConfiguration.GetValueOrDefault(); }
set { this._enforceWorkGroupConfiguration = value; }
}
// Check to see if EnforceWorkGroupConfiguration property is set
internal bool IsSetEnforceWorkGroupConfiguration()
{
return this._enforceWorkGroupConfiguration.HasValue;
}
///
/// Gets and sets the property EngineVersion.
///
/// The engine version that all queries running on the workgroup use. Queries on the AmazonAthenaPreviewFunctionality
/// workgroup run on the preview engine regardless of this setting.
///
///
public EngineVersion EngineVersion
{
get { return this._engineVersion; }
set { this._engineVersion = value; }
}
// Check to see if EngineVersion property is set
internal bool IsSetEngineVersion()
{
return this._engineVersion != null;
}
///
/// Gets and sets the property ExecutionRole.
///
/// Role used in a session for accessing the user's resources.
///
///
[AWSProperty(Min=20, Max=2048)]
public string ExecutionRole
{
get { return this._executionRole; }
set { this._executionRole = value; }
}
// Check to see if ExecutionRole property is set
internal bool IsSetExecutionRole()
{
return this._executionRole != null;
}
///
/// Gets and sets the property PublishCloudWatchMetricsEnabled.
///
/// Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.
///
///
public bool PublishCloudWatchMetricsEnabled
{
get { return this._publishCloudWatchMetricsEnabled.GetValueOrDefault(); }
set { this._publishCloudWatchMetricsEnabled = value; }
}
// Check to see if PublishCloudWatchMetricsEnabled property is set
internal bool IsSetPublishCloudWatchMetricsEnabled()
{
return this._publishCloudWatchMetricsEnabled.HasValue;
}
///
/// Gets and sets the property RequesterPaysEnabled.
///
/// If set to true
, allows members assigned to a workgroup to reference Amazon
/// S3 Requester Pays buckets in queries. If set to false
, workgroup members
/// cannot query data from Requester Pays buckets, and queries that retrieve data from
/// Requester Pays buckets cause an error. The default is false
. For more
/// information about Requester Pays buckets, see Requester
/// Pays Buckets in the Amazon Simple Storage Service Developer Guide.
///
///
public bool RequesterPaysEnabled
{
get { return this._requesterPaysEnabled.GetValueOrDefault(); }
set { this._requesterPaysEnabled = value; }
}
// Check to see if RequesterPaysEnabled property is set
internal bool IsSetRequesterPaysEnabled()
{
return this._requesterPaysEnabled.HasValue;
}
///
/// Gets and sets the property ResultConfiguration.
///
/// The configuration for the workgroup, which includes the location in Amazon S3 where
/// query and calculation results are stored and the encryption option, if any, used for
/// query and calculation results. To run the query, you must specify the query results
/// location using one of the ways: either in the workgroup using this setting, or for
/// individual queries (client-side), using ResultConfiguration$OutputLocation.
/// 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.
///
///
public ResultConfiguration ResultConfiguration
{
get { return this._resultConfiguration; }
set { this._resultConfiguration = value; }
}
// Check to see if ResultConfiguration property is set
internal bool IsSetResultConfiguration()
{
return this._resultConfiguration != null;
}
}
}