/* * 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 kms-2014-11-01.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.KeyManagementService.Model { /// /// Use this structure to allow cryptographic /// operations in the grant only when the operation request includes the specified /// encryption /// context. /// /// /// /// KMS applies the grant constraints only to cryptographic operations that support an /// encryption context, that is, all cryptographic operations with a symmetric /// KMS key. Grant constraints are not applied to operations that do not support an /// encryption context, such as cryptographic operations with asymmetric KMS keys and /// management operations, such as DescribeKey or RetireGrant. /// /// /// /// In a cryptographic operation, the encryption context in the decryption operation must /// be an exact, case-sensitive match for the keys and values in the encryption context /// of the encryption operation. Only the order of the pairs can vary. /// /// /// /// However, in a grant constraint, the key in each key-value pair is not case sensitive, /// but the value is case sensitive. /// /// /// /// To avoid confusion, do not use multiple encryption context pairs that differ only /// by case. To require a fully case-sensitive encryption context, use the kms:EncryptionContext: /// and kms:EncryptionContextKeys conditions in an IAM or key policy. For /// details, see kms:EncryptionContext: /// in the Key Management Service Developer Guide . /// /// /// public partial class GrantConstraints { private Dictionary _encryptionContextEquals = new Dictionary(); private Dictionary _encryptionContextSubset = new Dictionary(); /// /// Gets and sets the property EncryptionContextEquals. /// /// A list of key-value pairs that must match the encryption context in the cryptographic /// operation request. The grant allows the operation only when the encryption context /// in the request is the same as the encryption context specified in this constraint. /// /// public Dictionary EncryptionContextEquals { get { return this._encryptionContextEquals; } set { this._encryptionContextEquals = value; } } // Check to see if EncryptionContextEquals property is set internal bool IsSetEncryptionContextEquals() { return this._encryptionContextEquals != null && this._encryptionContextEquals.Count > 0; } /// /// Gets and sets the property EncryptionContextSubset. /// /// A list of key-value pairs that must be included in the encryption context of the cryptographic /// operation request. The grant allows the cryptographic operation only when the /// encryption context in the request includes the key-value pairs specified in this constraint, /// although it can include additional key-value pairs. /// /// public Dictionary EncryptionContextSubset { get { return this._encryptionContextSubset; } set { this._encryptionContextSubset = value; } } // Check to see if EncryptionContextSubset property is set internal bool IsSetEncryptionContextSubset() { return this._encryptionContextSubset != null && this._encryptionContextSubset.Count > 0; } } }