/*
* 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 s3control-2018-08-20.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.S3Control.Model
{
///
/// A container for the Amazon S3 Storage Lens configuration.
///
public partial class StorageLensConfiguration
{
private AccountLevel _accountLevel;
private StorageLensAwsOrg _awsOrg;
private StorageLensDataExport _dataExport;
private Exclude _exclude;
private string _id;
private Include _include;
private bool? _isEnabled;
private string _storageLensArn;
///
/// Gets and sets the property AccountLevel.
///
/// A container for all the account-level configurations of your S3 Storage Lens configuration.
///
///
[AWSProperty(Required=true)]
public AccountLevel AccountLevel
{
get { return this._accountLevel; }
set { this._accountLevel = value; }
}
// Check to see if AccountLevel property is set
internal bool IsSetAccountLevel()
{
return this._accountLevel != null;
}
///
/// Gets and sets the property AwsOrg.
///
/// A container for the Amazon Web Services organization for this S3 Storage Lens configuration.
///
///
public StorageLensAwsOrg AwsOrg
{
get { return this._awsOrg; }
set { this._awsOrg = value; }
}
// Check to see if AwsOrg property is set
internal bool IsSetAwsOrg()
{
return this._awsOrg != null;
}
///
/// Gets and sets the property DataExport.
///
/// A container to specify the properties of your S3 Storage Lens metrics export including,
/// the destination, schema and format.
///
///
public StorageLensDataExport DataExport
{
get { return this._dataExport; }
set { this._dataExport = value; }
}
// Check to see if DataExport property is set
internal bool IsSetDataExport()
{
return this._dataExport != null;
}
///
/// Gets and sets the property Exclude.
///
/// A container for what is excluded in this configuration. This container can only be
/// valid if there is no Include
container submitted, and it's not empty.
///
///
///
public Exclude Exclude
{
get { return this._exclude; }
set { this._exclude = value; }
}
// Check to see if Exclude property is set
internal bool IsSetExclude()
{
return this._exclude != null;
}
///
/// Gets and sets the property Id.
///
/// A container for the Amazon S3 Storage Lens configuration ID.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property Include.
///
/// A container for what is included in this configuration. This container can only be
/// valid if there is no Exclude
container submitted, and it's not empty.
///
///
///
public Include Include
{
get { return this._include; }
set { this._include = value; }
}
// Check to see if Include property is set
internal bool IsSetInclude()
{
return this._include != null;
}
///
/// Gets and sets the property IsEnabled.
///
/// A container for whether the S3 Storage Lens configuration is enabled.
///
///
[AWSProperty(Required=true)]
public bool IsEnabled
{
get { return this._isEnabled.GetValueOrDefault(); }
set { this._isEnabled = value; }
}
// Check to see if IsEnabled property is set
internal bool IsSetIsEnabled()
{
return this._isEnabled.HasValue;
}
///
/// Gets and sets the property StorageLensArn.
///
/// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property
/// is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
///
///
///
[AWSProperty(Min=1, Max=1024)]
public string StorageLensArn
{
get { return this._storageLensArn; }
set { this._storageLensArn = value; }
}
// Check to see if StorageLensArn property is set
internal bool IsSetStorageLensArn()
{
return this._storageLensArn != null;
}
}
}