/* * 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 System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using Amazon.Runtime; namespace Amazon.S3.Model { /// /// Container for the parameters to the PutBucketInventoryConfiguration operation. /// This implementation of the PUT action adds an inventory configuration /// (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory /// configurations per bucket. /// /// /// /// Amazon S3 inventory generates inventories of the objects in the bucket on a daily /// or weekly basis, and the results are published to a flat file. The bucket that is /// inventoried is called the source bucket, and the bucket where the inventory /// flat file is stored is called the destination bucket. The destination /// bucket must be in the same Amazon Web Services Region as the source bucket. /// /// /// /// /// When you configure an inventory for a source bucket, you specify the destination /// bucket where you want the inventory to be stored, and whether to generate the inventory /// daily or weekly. You can also configure what object metadata to include and whether /// to inventory all object versions or only current versions. For more information, see /// Amazon /// S3 Inventory in the Amazon S3 User Guide. /// /// /// /// You must create a bucket policy on the destination bucket to grant permissions /// to Amazon S3 to write objects to the bucket in the defined location. For an example /// policy, see /// Granting Permissions for Amazon S3 Inventory and Storage Class Analysis. /// ///
Permissions
/// /// To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration /// action. The bucket owner has this permission by default and can grant this permission /// to others. /// /// /// /// The s3:PutInventoryConfiguration permission allows a user to create an /// S3 /// Inventory report that includes all object metadata fields available and to specify /// the destination bucket to store the inventory. A user with read access to objects /// in the destination bucket can also access all object metadata fields that are available /// in the inventory report. /// /// /// /// To restrict access to an inventory report, see Restricting /// access to an Amazon S3 Inventory report in the Amazon S3 User Guide. For /// more information about the metadata fields available in S3 Inventory, see Amazon /// S3 Inventory lists in the Amazon S3 User Guide. For more information about /// permissions, see Permissions /// related to bucket subresource operations and Identity /// and access management in Amazon S3 in the Amazon S3 User Guide. /// ///
/// /// PutBucketInventoryConfiguration 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 400 Bad Request Error
/// /// Cause: You are not the owner of the specified bucket, or you do not have the /// s3:PutInventoryConfiguration bucket permission to set the configuration /// on the bucket. /// ///
/// /// The following operations are related to PutBucketInventoryConfiguration: /// /// ///
public partial class PutBucketInventoryConfigurationRequest : AmazonWebServiceRequest { private string bucketName; private string inventoryId; private InventoryConfiguration inventoryConfiguration; private string expectedBucketOwner; /// /// The name of the bucket where the inventory configuration will be stored. /// public string BucketName { get { return this.bucketName; } set { this.bucketName = value; } } // Check to see if Bucket property is set internal bool IsSetBucketName() { return !(string.IsNullOrEmpty(this.bucketName)); } /// /// Specifies the inventory Id. /// public string InventoryId { get { return this.inventoryId; } set { this.inventoryId = value; } } // Check to see if InventoryId property is set internal bool IsSetInventoryId() { return !(string.IsNullOrEmpty(this.inventoryId)); } /// /// Specifies the inventory configuration. /// public InventoryConfiguration InventoryConfiguration { get { return this.inventoryConfiguration; } set { this.inventoryConfiguration = value; } } // Check to see if InventoryConfiguration property is set internal bool IsSetInventoryConfiguration() { return this.inventoryConfiguration != null; } /// /// The account ID of the expected bucket owner. /// If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. /// public string ExpectedBucketOwner { get { return this.expectedBucketOwner; } set { this.expectedBucketOwner = value; } } /// /// Checks to see if ExpectedBucketOwner is set. /// /// true, if ExpectedBucketOwner property is set. internal bool IsSetExpectedBucketOwner() { return !String.IsNullOrEmpty(this.expectedBucketOwner); } } }