import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { PutBucketAnalyticsConfigurationRequest } from "../models/models_0"; import type { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link PutBucketAnalyticsConfigurationCommand}. */ export interface PutBucketAnalyticsConfigurationCommandInput extends PutBucketAnalyticsConfigurationRequest { } /** * @public * * The output of {@link PutBucketAnalyticsConfigurationCommand}. */ export interface PutBucketAnalyticsConfigurationCommandOutput extends __MetadataBearer { } declare const PutBucketAnalyticsConfigurationCommand_base: { new (input: PutBucketAnalyticsConfigurationCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: PutBucketAnalyticsConfigurationCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** * *

This operation is not supported for directory buckets.

*
*

Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You * can have up to 1,000 analytics configurations per bucket.

*

You can choose to have storage class analysis export analysis reports sent to a comma-separated * values (CSV) flat file. See the DataExport request element. Reports are updated daily and * are based on the object filters that you configure. When selecting data export, you specify a * destination bucket and an optional destination prefix where the file is written. You can export the data * to a destination bucket in a different account. However, the destination bucket must be in the same * Region as the bucket that you are making the PUT analytics configuration to. For more information, see * Amazon S3 Analytics – * Storage Class Analysis.

* *

You must create a bucket policy on the destination bucket where the exported file is written to * grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see Granting * Permissions for Amazon S3 Inventory and Storage Class Analysis.

*
*

To use this operation, you must have permissions to perform the * s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The * bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 * Resources.

*

* PutBucketAnalyticsConfiguration has the following special errors:

* *

The following operations are related to PutBucketAnalyticsConfiguration:

* * *

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

*
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { S3Client, PutBucketAnalyticsConfigurationCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, PutBucketAnalyticsConfigurationCommand } = require("@aws-sdk/client-s3"); // CommonJS import * // import type { S3ClientConfig } from "@aws-sdk/client-s3"; * const config = {}; // type is S3ClientConfig * const client = new S3Client(config); * const input = { // PutBucketAnalyticsConfigurationRequest * Bucket: "STRING_VALUE", // required * Id: "STRING_VALUE", // required * AnalyticsConfiguration: { // AnalyticsConfiguration * Id: "STRING_VALUE", // required * Filter: { // AnalyticsFilter Union: only one key present * Prefix: "STRING_VALUE", * Tag: { // Tag * Key: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * And: { // AnalyticsAndOperator * Prefix: "STRING_VALUE", * Tags: [ // TagSet * { * Key: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * }, * StorageClassAnalysis: { // StorageClassAnalysis * DataExport: { // StorageClassAnalysisDataExport * OutputSchemaVersion: "V_1", // required * Destination: { // AnalyticsExportDestination * S3BucketDestination: { // AnalyticsS3BucketDestination * Format: "CSV", // required * BucketAccountId: "STRING_VALUE", * Bucket: "STRING_VALUE", // required * Prefix: "STRING_VALUE", * }, * }, * }, * }, * }, * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new PutBucketAnalyticsConfigurationCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param PutBucketAnalyticsConfigurationCommandInput - {@link PutBucketAnalyticsConfigurationCommandInput} * @returns {@link PutBucketAnalyticsConfigurationCommandOutput} * @see {@link PutBucketAnalyticsConfigurationCommandInput} for command's `input` shape. * @see {@link PutBucketAnalyticsConfigurationCommandOutput} for command's `response` shape. * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. * * @throws {@link S3ServiceException} *

Base exception class for all service exceptions from S3 service.

* * * @public */ export declare class PutBucketAnalyticsConfigurationCommand extends PutBucketAnalyticsConfigurationCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: PutBucketAnalyticsConfigurationRequest; output: {}; }; sdk: { input: PutBucketAnalyticsConfigurationCommandInput; output: PutBucketAnalyticsConfigurationCommandOutput; }; }; }