/*
* 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 s3control-2018-08-20.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.S3Control.Model
{
///
/// Container for the parameters to the PutBucketVersioning operation.
///
///
/// This operation sets the versioning state for S3 on Outposts buckets only. To set the
/// versioning state for an S3 bucket, see PutBucketVersioning
/// in the Amazon S3 API Reference.
///
///
///
/// Sets the versioning state for an S3 on Outposts bucket. With S3 Versioning, you can
/// save multiple distinct copies of your objects and recover from unintended user actions
/// and application failures.
///
///
///
/// You can set the versioning state to one of the following:
///
/// -
///
/// Enabled - Enables versioning for the objects in the bucket. All objects added
/// to the bucket receive a unique version ID.
///
///
-
///
/// Suspended - Suspends versioning for the objects in the bucket. All objects
/// added to the bucket receive the version ID
null
.
///
///
///
/// If you've never set versioning on your bucket, it has no versioning state. In that
/// case, a
/// GetBucketVersioning request does not return a versioning state value.
///
///
///
/// When you enable S3 Versioning, for each object in your bucket, you have a current
/// version and zero or more noncurrent versions. You can configure your bucket S3 Lifecycle
/// rules to expire noncurrent versions after a specified time period. For more information,
/// see
/// Creating and managing a lifecycle configuration for your S3 on Outposts bucket
/// in the Amazon S3 User Guide.
///
///
///
/// If you have an object expiration lifecycle configuration in your non-versioned bucket
/// and you want to maintain the same permanent delete behavior when you enable versioning,
/// you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration
/// will manage the deletes of the noncurrent object versions in the version-enabled bucket.
/// For more information, see Versioning
/// in the Amazon S3 User Guide.
///
///
///
/// All Amazon S3 on Outposts REST API requests for this action require an additional
/// parameter of x-amz-outpost-id
to be passed with the request. In addition,
/// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control
.
/// For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on
/// Outposts endpoint hostname prefix and the x-amz-outpost-id
derived by
/// using the access point ARN, see the Examples
/// section.
///
///
///
/// The following operations are related to PutBucketVersioning
for S3 on
/// Outposts.
///
///
///
public partial class PutBucketVersioningRequest : AmazonS3ControlRequest
{
private string _accountId;
private string _bucket;
private string _mfa;
private VersioningConfiguration _versioningConfiguration;
///
/// Gets and sets the property AccountId.
///
/// The Amazon Web Services account ID of the S3 on Outposts bucket.
///
///
[AWSProperty(Required=true, Max=64)]
public string AccountId
{
get { return this._accountId; }
set { this._accountId = value; }
}
// Check to see if AccountId property is set
internal bool IsSetAccountId()
{
return this._accountId != null;
}
///
/// Gets and sets the property Bucket.
///
/// The S3 on Outposts bucket to set the versioning state for.
///
///
[AWSProperty(Required=true, Min=3, Max=255)]
public string Bucket
{
get { return this._bucket; }
set { this._bucket = value; }
}
// Check to see if Bucket property is set
internal bool IsSetBucket()
{
return this._bucket != null;
}
///
/// Gets and sets the property MFA.
///
/// The concatenation of the authentication device's serial number, a space, and the value
/// that is displayed on your authentication device.
///
///
public string MFA
{
get { return this._mfa; }
set { this._mfa = value; }
}
// Check to see if MFA property is set
internal bool IsSetMFA()
{
return this._mfa != null;
}
///
/// Gets and sets the property VersioningConfiguration.
///
/// The root-level tag for the VersioningConfiguration
parameters.
///
///
[AWSProperty(Required=true)]
public VersioningConfiguration VersioningConfiguration
{
get { return this._versioningConfiguration; }
set { this._versioningConfiguration = value; }
}
// Check to see if VersioningConfiguration property is set
internal bool IsSetVersioningConfiguration()
{
return this._versioningConfiguration != null;
}
}
}