@aws-sdk/client-s3
Version:
AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native
75 lines • 4.87 kB
JavaScript
import { __extends } from "tslib";
import { PutBucketIntelligentTieringConfigurationRequest } from "../models/models_0";
import { deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand, serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand, } from "../protocols/Aws_restXml";
import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint";
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
import { Command as $Command } from "@aws-sdk/smithy-client";
/**
* <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket.</p>
* <p>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 additional operational overhead. S3 Intelligent-Tiering delivers automatic cost savings by moving data between access tiers, when access patterns change.</p>
* <p>The S3 Intelligent-Tiering storage class is suitable for objects larger than 128 KB that you plan to store for at least 30 days. If the size of an object is less than 128 KB, it is 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. </p>
* <p>If you delete an object before the end of the 30-day minimum storage duration period, you are charged for 30 days. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>.</p>
* <p>Operations related to
* <code>PutBucketIntelligentTieringConfiguration</code> include: </p>
* <ul>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
* </p>
* </li>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
* </p>
* </li>
* <li>
* <p>
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
* </p>
* </li>
* </ul>
*/
var PutBucketIntelligentTieringConfigurationCommand = /** @class */ (function (_super) {
__extends(PutBucketIntelligentTieringConfigurationCommand, _super);
// Start section: command_properties
// End section: command_properties
function PutBucketIntelligentTieringConfigurationCommand(input) {
var _this =
// Start section: command_constructor
_super.call(this) || this;
_this.input = input;
return _this;
// End section: command_constructor
}
/**
* @internal
*/
PutBucketIntelligentTieringConfigurationCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
this.middlewareStack.use(getBucketEndpointPlugin(configuration));
var stack = clientStack.concat(this.middlewareStack);
var logger = configuration.logger;
var clientName = "S3Client";
var commandName = "PutBucketIntelligentTieringConfigurationCommand";
var handlerExecutionContext = {
logger: logger,
clientName: clientName,
commandName: commandName,
inputFilterSensitiveLog: PutBucketIntelligentTieringConfigurationRequest.filterSensitiveLog,
outputFilterSensitiveLog: function (output) { return output; },
};
var requestHandler = configuration.requestHandler;
return stack.resolve(function (request) {
return requestHandler.handle(request.request, options || {});
}, handlerExecutionContext);
};
PutBucketIntelligentTieringConfigurationCommand.prototype.serialize = function (input, context) {
return serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand(input, context);
};
PutBucketIntelligentTieringConfigurationCommand.prototype.deserialize = function (output, context) {
return deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand(output, context);
};
return PutBucketIntelligentTieringConfigurationCommand;
}($Command));
export { PutBucketIntelligentTieringConfigurationCommand };
//# sourceMappingURL=PutBucketIntelligentTieringConfigurationCommand.js.map