/* * 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 DeleteObject operation. /// Removes the null version (if there is one) of an object and inserts a delete marker, /// which becomes the latest version of the object. If there isn't a null version, Amazon /// S3 does not remove any objects but will still respond that the command was successful. /// /// /// /// To remove a specific version, you must be the bucket owner and you must use the version /// Id subresource. Using this subresource permanently deletes the version. If the object /// deleted is a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, /// to true. /// /// /// /// If the object you want to delete is in a bucket where the bucket versioning configuration /// is MFA Delete enabled, you must include the x-amz-mfa request header /// in the DELETE versionId request. Requests that include x-amz-mfa /// must use HTTPS. /// /// /// /// For more information about MFA Delete, see Using /// MFA Delete. To see sample requests that use versioning, see Sample /// Request. /// /// /// /// You can delete objects by explicitly calling DELETE Object or configure its lifecycle /// (PutBucketLifecycle) /// to enable Amazon S3 to remove them for you. If you want to block users or accounts /// from removing or deleting objects from your bucket, you must deny them the s3:DeleteObject, /// s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration /// actions. /// /// /// /// The following action is related to DeleteObject: /// /// /// public partial class DeleteObjectRequest : AmazonWebServiceRequest { private string bucketName; private bool? bypassGovernanceRetention; private string expectedBucketOwner; private string key; private MfaCodes mfaCodes; private RequestPayer requestPayer; private string versionId; /// /// Gets and sets the property BucketName. /// /// The bucket name of the bucket containing the object. /// /// /// /// 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. /// /// /// /// When you use this action with Amazon S3 on Outposts, you must direct requests to the /// S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. /// When you use this action with S3 on Outposts through the Amazon Web Services SDKs, /// you provide the Outposts access point ARN in place of the bucket name. For more information /// about S3 on Outposts ARNs, see What /// is S3 on Outposts? in the Amazon S3 User Guide. /// /// public string BucketName { get { return this.bucketName; } set { this.bucketName = value; } } // Check to see if Bucket property is set internal bool IsSetBucketName() { return this.bucketName != null; } /// /// Gets and sets the property BypassGovernanceRetention. /// /// Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process /// this operation. To use this header, you must have the s3:PutBucketPublicAccessBlock /// permission. /// /// 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 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); } /// /// The key identifying the object to delete. /// /// /// 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 this.key != null; } /// /// The MfaCodes Tuple associates the Serial Number and the current Token/Code displayed on the /// Multi-Factor Authentication device associated with your AWS Account. /// /// /// This is a required property for this request if:
/// 1. EnableMfaDelete was configured on the bucket /// containing this object's version.
/// 2. You are deleting an object's version ///
public MfaCodes MfaCodes { get { return this.mfaCodes; } set { this.mfaCodes = value; } } /// /// Checks if the MfaCodes property is set. /// /// true if the MfaCodes property is set. internal bool IsSetMfaCodes() { return (this.mfaCodes != null) && (!System.String.IsNullOrEmpty(MfaCodes.SerialNumber)) && (!System.String.IsNullOrEmpty(MfaCodes.AuthenticationValue)); } /// /// Confirms that the requester knows that she or he will be charged for the request. /// Bucket owners need not specify this parameter in their requests. /// public RequestPayer RequestPayer { get { return this.requestPayer; } set { this.requestPayer = value; } } /// /// Checks to see if RequetsPayer is set. /// /// true, if RequestPayer property is set. internal bool IsSetRequestPayer() { return requestPayer != null; } /// /// Gets and sets the property VersionId. /// /// VersionId used to reference a specific version of the object. /// /// public string VersionId { get { return this.versionId; } set { this.versionId = value; } } /// /// Checks if VersionId property is set. /// /// true if VersionId property is set. internal bool IsSetVersionId() { return !System.String.IsNullOrEmpty(this.versionId); } } }