/* * 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.Internal; namespace Amazon.S3.Model { /// /// Describes the default server-side encryption to apply to new objects in the bucket. /// If a PUT Object request doesn't specify any server-side encryption, this default encryption /// will be applied. For more information, see PUT /// Bucket encryption in the Amazon S3 API Reference. /// public class ServerSideEncryptionByDefault { private string serverSideEncryptionKeyManagementServiceKeyId; private ServerSideEncryptionMethod serverSideEncryptionAlgorithm; /// /// KMS master key ID to use for the default encryption. /// This parameter is allowed if SSEAlgorithm is aws:kms. /// /// Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS /// key ID to use for the default encryption. This parameter is allowed if and only if /// SSEAlgorithm is set to aws:kms. /// /// /// /// You can specify the key ID or the Amazon Resource Name (ARN) of the KMS key. If you /// use a key ID, you can run into a LogDestination undeliverable error when creating /// a VPC flow log. /// /// /// /// If you are using encryption with cross-account or Amazon Web Services service operations /// you must use a fully qualified KMS key ARN. For more information, see Using /// encryption for cross-account operations. /// /// /// /// Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric /// keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service /// Developer Guide. /// /// /// [AWSProperty(Sensitive=true)] public string ServerSideEncryptionKeyManagementServiceKeyId { get { return this.serverSideEncryptionKeyManagementServiceKeyId; } set { this.serverSideEncryptionKeyManagementServiceKeyId = value; } } // Check to see if ServerSideEncryptionKeyManagementServiceKeyId property is set internal bool IsSetServerSideEncryptionKeyManagementServiceKeyId() { return this.serverSideEncryptionKeyManagementServiceKeyId != null; } /// /// Server-side encryption algorithm to use for the default encryption. /// public ServerSideEncryptionMethod ServerSideEncryptionAlgorithm { get { return this.serverSideEncryptionAlgorithm; } set { this.serverSideEncryptionAlgorithm = value; } } // Check to see if ServerSideEncryptionAlgorithm property is set internal bool IsSetServerSideEncryptionAlgorithm() { return this.serverSideEncryptionAlgorithm != null; } } }