/*
* 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.
///
/// -
///
/// Key ID:
1234abcd-12ab-34cd-56ef-1234567890ab
///
/// -
///
/// Key ARN:
arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
///
///
///
///
/// 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;
}
}
}