/*
* 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 payment-cryptography-2021-09-14.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.PaymentCryptography.Model
{
///
/// Metadata about an Amazon Web Services Payment Cryptography key.
///
public partial class KeySummary
{
private bool? _enabled;
private bool? _exportable;
private string _keyArn;
private KeyAttributes _keyAttributes;
private string _keyCheckValue;
private KeyState _keyState;
///
/// Gets and sets the property Enabled.
///
/// Specifies whether the key is enabled.
///
///
[AWSProperty(Required=true)]
public bool Enabled
{
get { return this._enabled.GetValueOrDefault(); }
set { this._enabled = value; }
}
// Check to see if Enabled property is set
internal bool IsSetEnabled()
{
return this._enabled.HasValue;
}
///
/// Gets and sets the property Exportable.
///
/// Specifies whether the key is exportable. This data is immutable after the key is created.
///
///
[AWSProperty(Required=true)]
public bool Exportable
{
get { return this._exportable.GetValueOrDefault(); }
set { this._exportable = value; }
}
// Check to see if Exportable property is set
internal bool IsSetExportable()
{
return this._exportable.HasValue;
}
///
/// Gets and sets the property KeyArn.
///
/// The Amazon Resource Name (ARN) of the key.
///
///
[AWSProperty(Required=true, Min=70, Max=150)]
public string KeyArn
{
get { return this._keyArn; }
set { this._keyArn = value; }
}
// Check to see if KeyArn property is set
internal bool IsSetKeyArn()
{
return this._keyArn != null;
}
///
/// Gets and sets the property KeyAttributes.
///
/// The role of the key, the algorithm it supports, and the cryptographic operations allowed
/// with the key. This data is immutable after the key is created.
///
///
[AWSProperty(Required=true)]
public KeyAttributes KeyAttributes
{
get { return this._keyAttributes; }
set { this._keyAttributes = value; }
}
// Check to see if KeyAttributes property is set
internal bool IsSetKeyAttributes()
{
return this._keyAttributes != null;
}
///
/// Gets and sets the property KeyCheckValue.
///
/// The key check value (KCV) is used to check if all parties holding a given key have
/// the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography
/// calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes
/// or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits,
/// of the resulting cryptogram.
///
///
[AWSProperty(Required=true, Min=4, Max=16)]
public string KeyCheckValue
{
get { return this._keyCheckValue; }
set { this._keyCheckValue = value; }
}
// Check to see if KeyCheckValue property is set
internal bool IsSetKeyCheckValue()
{
return this._keyCheckValue != null;
}
///
/// Gets and sets the property KeyState.
///
/// The state of an Amazon Web Services Payment Cryptography that is being created or
/// deleted.
///
///
[AWSProperty(Required=true)]
public KeyState KeyState
{
get { return this._keyState; }
set { this._keyState = value; }
}
// Check to see if KeyState property is set
internal bool IsSetKeyState()
{
return this._keyState != null;
}
}
}