/*
* 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
{
///
/// Contains the configuration parameters for a PUT Copy object operation. S3 Batch Operations
/// passes every object to the underlying CopyObject
API operation. For more
/// information about the parameters for this operation, see CopyObject.
///
public partial class S3CopyObjectOperation
{
private List _accessControlGrants = new List();
private bool? _bucketKeyEnabled;
private S3CannedAccessControlList _cannedAccessControlList;
private S3ChecksumAlgorithm _checksumAlgorithm;
private S3MetadataDirective _metadataDirective;
private DateTime? _modifiedSinceConstraint;
private S3ObjectMetadata _newObjectMetadata;
private List _newObjectTagging = new List();
private S3ObjectLockLegalHoldStatus _objectLockLegalHoldStatus;
private S3ObjectLockMode _objectLockMode;
private DateTime? _objectLockRetainUntilDate;
private string _redirectLocation;
private bool? _requesterPays;
private string _sseAwsKmsKeyId;
private S3StorageClass _storageClass;
private string _targetKeyPrefix;
private string _targetResource;
private DateTime? _unModifiedSinceConstraint;
///
/// Gets and sets the property AccessControlGrants.
///
public List AccessControlGrants
{
get { return this._accessControlGrants; }
set { this._accessControlGrants = value; }
}
// Check to see if AccessControlGrants property is set
internal bool IsSetAccessControlGrants()
{
return this._accessControlGrants != null && this._accessControlGrants.Count > 0;
}
///
/// Gets and sets the property BucketKeyEnabled.
///
/// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with
/// server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting this header
/// to true
causes Amazon S3 to use an S3 Bucket Key for object encryption
/// with SSE-KMS.
///
///
///
/// Specifying this header with an object action doesn’t affect bucket-level
/// settings for S3 Bucket Key.
///
///
public bool BucketKeyEnabled
{
get { return this._bucketKeyEnabled.GetValueOrDefault(); }
set { this._bucketKeyEnabled = value; }
}
// Check to see if BucketKeyEnabled property is set
internal bool IsSetBucketKeyEnabled()
{
return this._bucketKeyEnabled.HasValue;
}
///
/// Gets and sets the property CannedAccessControlList.
///
public S3CannedAccessControlList CannedAccessControlList
{
get { return this._cannedAccessControlList; }
set { this._cannedAccessControlList = value; }
}
// Check to see if CannedAccessControlList property is set
internal bool IsSetCannedAccessControlList()
{
return this._cannedAccessControlList != null;
}
///
/// Gets and sets the property ChecksumAlgorithm.
///
/// Indicates the algorithm that you want Amazon S3 to use to create the checksum. For
/// more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
public S3ChecksumAlgorithm 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 MetadataDirective.
///
public S3MetadataDirective MetadataDirective
{
get { return this._metadataDirective; }
set { this._metadataDirective = value; }
}
// Check to see if MetadataDirective property is set
internal bool IsSetMetadataDirective()
{
return this._metadataDirective != null;
}
///
/// Gets and sets the property ModifiedSinceConstraint.
///
public DateTime ModifiedSinceConstraint
{
get { return this._modifiedSinceConstraint.GetValueOrDefault(); }
set { this._modifiedSinceConstraint = value; }
}
// Check to see if ModifiedSinceConstraint property is set
internal bool IsSetModifiedSinceConstraint()
{
return this._modifiedSinceConstraint.HasValue;
}
///
/// Gets and sets the property NewObjectMetadata.
///
/// If you don't provide this parameter, Amazon S3 copies all the metadata from the original
/// objects. If you specify an empty set, the new objects will have no tags. Otherwise,
/// Amazon S3 assigns the supplied tags to the new objects.
///
///
public S3ObjectMetadata NewObjectMetadata
{
get { return this._newObjectMetadata; }
set { this._newObjectMetadata = value; }
}
// Check to see if NewObjectMetadata property is set
internal bool IsSetNewObjectMetadata()
{
return this._newObjectMetadata != null;
}
///
/// Gets and sets the property NewObjectTagging.
///
public List NewObjectTagging
{
get { return this._newObjectTagging; }
set { this._newObjectTagging = value; }
}
// Check to see if NewObjectTagging property is set
internal bool IsSetNewObjectTagging()
{
return this._newObjectTagging != null && this._newObjectTagging.Count > 0;
}
///
/// Gets and sets the property ObjectLockLegalHoldStatus.
///
/// The legal hold status to be applied to all objects in the Batch Operations job.
///
///
public S3ObjectLockLegalHoldStatus ObjectLockLegalHoldStatus
{
get { return this._objectLockLegalHoldStatus; }
set { this._objectLockLegalHoldStatus = value; }
}
// Check to see if ObjectLockLegalHoldStatus property is set
internal bool IsSetObjectLockLegalHoldStatus()
{
return this._objectLockLegalHoldStatus != null;
}
///
/// Gets and sets the property ObjectLockMode.
///
/// The retention mode to be applied to all objects in the Batch Operations job.
///
///
public S3ObjectLockMode ObjectLockMode
{
get { return this._objectLockMode; }
set { this._objectLockMode = value; }
}
// Check to see if ObjectLockMode property is set
internal bool IsSetObjectLockMode()
{
return this._objectLockMode != null;
}
///
/// Gets and sets the property ObjectLockRetainUntilDate.
///
/// The date when the applied object retention configuration expires on all objects in
/// the Batch Operations job.
///
///
public DateTime ObjectLockRetainUntilDate
{
get { return this._objectLockRetainUntilDate.GetValueOrDefault(); }
set { this._objectLockRetainUntilDate = value; }
}
// Check to see if ObjectLockRetainUntilDate property is set
internal bool IsSetObjectLockRetainUntilDate()
{
return this._objectLockRetainUntilDate.HasValue;
}
///
/// Gets and sets the property RedirectLocation.
///
/// Specifies an optional metadata property for website redirects, x-amz-website-redirect-location
.
/// Allows webpage redirects if the object is accessed through a website endpoint.
///
///
[AWSProperty(Min=1, Max=2048)]
public string RedirectLocation
{
get { return this._redirectLocation; }
set { this._redirectLocation = value; }
}
// Check to see if RedirectLocation property is set
internal bool IsSetRedirectLocation()
{
return this._redirectLocation != null;
}
///
/// Gets and sets the property RequesterPays.
///
public bool RequesterPays
{
get { return this._requesterPays.GetValueOrDefault(); }
set { this._requesterPays = value; }
}
// Check to see if RequesterPays property is set
internal bool IsSetRequesterPays()
{
return this._requesterPays.HasValue;
}
///
/// Gets and sets the property SSEAwsKmsKeyId.
///
[AWSProperty(Min=1, Max=2000)]
public string SSEAwsKmsKeyId
{
get { return this._sseAwsKmsKeyId; }
set { this._sseAwsKmsKeyId = value; }
}
// Check to see if SSEAwsKmsKeyId property is set
internal bool IsSetSSEAwsKmsKeyId()
{
return this._sseAwsKmsKeyId != null;
}
///
/// Gets and sets the property StorageClass.
///
public S3StorageClass StorageClass
{
get { return this._storageClass; }
set { this._storageClass = value; }
}
// Check to see if StorageClass property is set
internal bool IsSetStorageClass()
{
return this._storageClass != null;
}
///
/// Gets and sets the property TargetKeyPrefix.
///
/// Specifies the folder prefix that you want the objects to be copied into. For example,
/// to copy objects into a folder named Folder1
in the destination bucket,
/// set the TargetKeyPrefix
property to Folder1
.
///
///
[AWSProperty(Min=1, Max=1024)]
public string TargetKeyPrefix
{
get { return this._targetKeyPrefix; }
set { this._targetKeyPrefix = value; }
}
// Check to see if TargetKeyPrefix property is set
internal bool IsSetTargetKeyPrefix()
{
return this._targetKeyPrefix != null;
}
///
/// Gets and sets the property TargetResource.
///
/// Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation.
/// For example, to copy objects to a bucket named destinationBucket
, set
/// the TargetResource
property to arn:aws:s3:::destinationBucket
.
///
///
[AWSProperty(Min=1, Max=128)]
public string TargetResource
{
get { return this._targetResource; }
set { this._targetResource = value; }
}
// Check to see if TargetResource property is set
internal bool IsSetTargetResource()
{
return this._targetResource != null;
}
///
/// Gets and sets the property UnModifiedSinceConstraint.
///
public DateTime UnModifiedSinceConstraint
{
get { return this._unModifiedSinceConstraint.GetValueOrDefault(); }
set { this._unModifiedSinceConstraint = value; }
}
// Check to see if UnModifiedSinceConstraint property is set
internal bool IsSetUnModifiedSinceConstraint()
{
return this._unModifiedSinceConstraint.HasValue;
}
}
}