/*
* 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 System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.S3.Model
{
///
/// Container for the parameters to the PutBucketPolicy operation.
/// Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity
/// other than the root user of the Amazon Web Services account that owns the bucket,
/// the calling identity must have the PutBucketPolicy
permissions on the
/// specified bucket and belong to the bucket owner's account in order to use this operation.
///
///
///
/// If you don't have PutBucketPolicy
permissions, Amazon S3 returns a 403
/// Access Denied
error. If you have the correct permissions, but you're not using
/// an identity that belongs to the bucket owner's account, Amazon S3 returns a 405
/// Method Not Allowed
error.
///
///
///
/// To ensure that bucket owners don't inadvertently lock themselves out of their own
/// buckets, the root principal in a bucket owner's Amazon Web Services account can perform
/// the GetBucketPolicy
, PutBucketPolicy
, and DeleteBucketPolicy
/// API actions, even if their bucket policy explicitly denies the root principal's access.
/// Bucket owner root principals can only be blocked from performing these API actions
/// by VPC endpoint policies and Amazon Web Services Organizations policies.
///
///
///
/// For more information, see Bucket
/// policy examples.
///
///
///
/// The following operations are related to PutBucketPolicy
:
///
///
///
public partial class PutBucketPolicyRequest : AmazonWebServiceRequest
{
private ChecksumAlgorithm _checksumAlgorithm;
private bool? confirmRemoveSelfBucketAccess;
private string expectedBucketOwner;
///
/// The name of the bucket.
///
public string BucketName { get; set; }
// Check to see if BucketName property is set
internal bool IsSetBucket()
{
return this.BucketName != null;
}
///
/// Gets and sets the property ChecksumAlgorithm.
///
/// Indicates the algorithm used to create the checksum for the object. Amazon S3 will
/// fail the request with a 400 error if there is no checksum associated with the object.
/// For more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
public ChecksumAlgorithm ChecksumAlgorithm
{
get { return this._checksumAlgorithm; }
set { this._checksumAlgorithm = value; }
}
// Check to see if ChecksumAlgorithm property is set
internal bool IsSetChecksumAlgorithm()
{
return this._checksumAlgorithm != null;
}
///
/// Gets and sets the property ContentMD5.
///
/// The MD5 hash of the request body.
///
///
///
/// For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon
/// Web Services SDKs, this field is calculated automatically.
///
///
public string ContentMD5 { get; set; }
// Check to see if ContentMD5 property is set
internal bool IsSetContentMD5()
{
return this.ContentMD5 != null;
}
///
/// The bucket policy as a JSON document.
///
public string Policy { get; set; }
// Check to see if Policy property is set
internal bool IsSetPolicy()
{
return this.Policy != null;
}
///
/// Set this parameter to true to confirm that you want to remove your
/// permissions to change this bucket policy in the future.
///
public bool ConfirmRemoveSelfBucketAccess
{
get
{
return this.confirmRemoveSelfBucketAccess.GetValueOrDefault();
}
set
{
this.confirmRemoveSelfBucketAccess = value;
}
}
// Check to see if ConfirmRemoveSelfBucketAccess property is set
internal bool IsSetConfirmRemoveSelfBucketAccess()
{
return this.confirmRemoveSelfBucketAccess.HasValue;
}
///
/// Overriden to turn off sending SHA256 header.
///
protected override bool IncludeSHA256Header
{
get
{
return false;
}
}
///
/// 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);
}
}
}