/*
* 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.
*/
/*
* Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
*/
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 PutObjectRetention operation.
/// Places an Object Retention configuration on an object. For more information, see Locking Objects.
/// Users or accounts require the s3:PutObjectRetention
permission in order
/// to place an Object Retention configuration on objects. Bypassing a Governance Retention
/// configuration requires the s3:BypassGovernanceRetention
permission.
///
///
///
/// This action is not supported by Amazon S3 on Outposts.
///
///
///
/// Permissions
///
///
///
/// When the Object Lock retention mode is set to compliance, you need s3:PutObjectRetention
/// and s3:BypassGovernanceRetention
permissions. For other requests to PutObjectRetention
,
/// only s3:PutObjectRetention
permissions are required.
///
///
public partial class PutObjectRetentionRequest : AmazonWebServiceRequest
{
private string _bucketName;
private bool? _bypassGovernanceRetention;
private ChecksumAlgorithm _checksumAlgorithm;
private string _contentMD5;
private string expectedBucketOwner;
private string _key;
private RequestPayer _requestPayer;
private ObjectLockRetention _retention;
private string _versionId;
///
/// Gets and sets the property BucketName.
///
/// The bucket name that contains the object you want to apply this Object Retention configuration
/// to.
///
///
///
/// When using this action with an access point, you must direct requests to the access
/// point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
/// When using this action with an access point through the Amazon Web Services SDKs,
/// you provide the access point ARN in place of the bucket name. For more information
/// about access point ARNs, see Using
/// access points in the Amazon S3 User Guide.
///
///
public string BucketName
{
get { return this._bucketName; }
set { this._bucketName = value; }
}
// Check to see if BucketName property is set
internal bool IsSetBucketName()
{
return !string.IsNullOrEmpty(this._bucketName);
}
///
/// Gets and sets the property BypassGovernanceRetention.
///
/// Indicates whether this action should bypass Governance-mode restrictions.
///
///
public bool BypassGovernanceRetention
{
get { return this._bypassGovernanceRetention.GetValueOrDefault(); }
set { this._bypassGovernanceRetention = value; }
}
// Check to see if BypassGovernanceRetention property is set
internal bool IsSetBypassGovernanceRetention()
{
return this._bypassGovernanceRetention.HasValue;
}
///
/// 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 for 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 { return this._contentMD5; }
set { this._contentMD5 = value; }
}
// Check to see if ContentMD5 property is set
internal bool IsSetContentMD5()
{
return !string.IsNullOrEmpty(this._contentMD5);
}
///
/// Gets and sets the property ExpectedBucketOwner.
///
/// 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; }
}
// Check to see if ExpectedBucketOwner property is set
internal bool IsSetExpectedBucketOwner()
{
return !String.IsNullOrEmpty(this.expectedBucketOwner);
}
///
/// Gets and sets the property Key.
///
/// The key name for the object that you want to apply this Object Retention configuration
/// to.
///
///
///
/// This property will be used as part of the resource path of the HTTP request. In .NET the System.Uri class
/// is used to construct the uri for the request. The System.Uri class will canonicalize the uri string by compacting characters like "..". /// For example an object key of "foo/../bar/file.txt" will be transformed into "bar/file.txt" because the ".."
/// is interpreted as use parent directory. For further information view the documentation for
/// the Uri class: https://docs.microsoft.com/en-us/dotnet/api/system.uri
///
public string Key
{
get { return this._key; }
set { this._key = value; }
}
// Check to see if Key property is set
internal bool IsSetKey()
{
return !string.IsNullOrEmpty(this._key);
}
///
/// Gets and sets the property RequestPayer.
///
public RequestPayer RequestPayer
{
get { return this._requestPayer; }
set { this._requestPayer = value; }
}
// Check to see if RequestPayer property is set
internal bool IsSetRequestPayer()
{
return this._requestPayer != null;
}
///
/// Gets and sets the property Retention.
///
/// The container element for the Object Retention configuration.
///
///
public ObjectLockRetention Retention
{
get { return this._retention; }
set { this._retention = value; }
}
// Check to see if Retention property is set
internal bool IsSetRetention()
{
return this._retention != null;
}
///
/// Gets and sets the property VersionId.
///
/// The version ID for the object that you want to apply this Object Retention configuration
/// to.
///
///
public string VersionId
{
get { return this._versionId; }
set { this._versionId = value; }
}
// Check to see if VersionId property is set
internal bool IsSetVersionId()
{
return !string.IsNullOrEmpty(this._versionId);
}
}
}