/*
* 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.
*/
using Amazon.Runtime;
using System;
using System.Collections.Generic;
using System.Text;
namespace Amazon.S3.Model
{
///
/// Container for the parameters to the PutBucketIntelligentTieringConfiguration operation.
/// Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have
/// up to 1,000 S3 Intelligent-Tiering configurations per bucket.
///
///
///
/// The S3 Intelligent-Tiering storage class is designed to optimize storage costs by
/// automatically moving data to the most cost-effective storage access tier, without
/// performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic
/// cost savings in three low latency and high throughput access tiers. To get the lowest
/// storage cost on data that can be accessed in minutes to hours, you can choose to activate
/// additional archiving capabilities.
///
///
///
/// The S3 Intelligent-Tiering storage class is the ideal storage class for data with
/// unknown, changing, or unpredictable access patterns, independent of object size or
/// retention period. If the size of an object is less than 128 KB, it is not monitored
/// and not eligible for auto-tiering. Smaller objects can be stored, but they are always
/// charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.
///
///
///
/// For more information, see Storage
/// class for automatically optimizing frequently and infrequently accessed objects.
///
///
///
/// Operations related to PutBucketIntelligentTieringConfiguration
include:
///
///
///
///
/// You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically
/// move objects stored in the S3 Intelligent-Tiering storage class to the Archive Access
/// or Deep Archive Access tier.
///
///
///
/// PutBucketIntelligentTieringConfiguration
has the following special errors:
///
/// - HTTP 400 Bad Request Error
-
///
/// Code: InvalidArgument
///
///
/// Cause: Invalid Argument
///
///
- HTTP 400 Bad Request Error
-
///
/// Code: TooManyConfigurations
///
///
/// Cause: You are attempting to create a new configuration but have already reached
/// the 1,000-configuration limit.
///
///
- HTTP 403 Forbidden Error
-
///
/// Cause: You are not the owner of the specified bucket, or you do not have the
///
s3:PutIntelligentTieringConfiguration
bucket permission to set the configuration
/// on the bucket.
///
///
///
public partial class PutBucketIntelligentTieringConfigurationRequest : AmazonWebServiceRequest
{
private string bucketName;
private string intelligentTieringId;
private IntelligentTieringConfiguration intelligentTieringConfiguration;
///
/// The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.
///
public string BucketName
{
get { return this.bucketName; }
set { this.bucketName = value; }
}
// Check to see if BucketName property is set
internal bool IsSetBucketName()
{
return this.bucketName != null;
}
///
/// The ID used to identify the S3 Intelligent-Tiering configuration.
///
public string IntelligentTieringId
{
get { return this.intelligentTieringId; }
set { this.intelligentTieringId = value; }
}
// Check to see if IntelligentTieringId property is set
internal bool IsSetIntelligentTieringId()
{
return this.intelligentTieringId != null;
}
///
/// Container for S3 Intelligent-Tiering configuration.
///
public IntelligentTieringConfiguration IntelligentTieringConfiguration
{
get { return this.intelligentTieringConfiguration; }
set { this.intelligentTieringConfiguration = value; }
}
// Check to see if IntelligentTieringConfiguration property is set
internal bool IsIntelligentTieringConfiguration()
{
return this.intelligentTieringConfiguration != null;
}
}
}