/*
* 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 route53-2013-04-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.Route53.Model
{
///
/// Container for the parameters to the CreateKeySigningKey operation.
/// Creates a new key-signing key (KSK) associated with a hosted zone. You can only have
/// two KSKs per hosted zone.
///
public partial class CreateKeySigningKeyRequest : AmazonRoute53Request
{
private string _callerReference;
private string _hostedZoneId;
private string _keyManagementServiceArn;
private string _name;
private string _status;
///
/// Gets and sets the property CallerReference.
///
/// A unique string that identifies the request.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string CallerReference
{
get { return this._callerReference; }
set { this._callerReference = value; }
}
// Check to see if CallerReference property is set
internal bool IsSetCallerReference()
{
return this._callerReference != null;
}
///
/// Gets and sets the property HostedZoneId.
///
/// The unique string (ID) used to identify a hosted zone.
///
///
[AWSProperty(Required=true, Max=32)]
public string HostedZoneId
{
get { return this._hostedZoneId; }
set { this._hostedZoneId = value; }
}
// Check to see if HostedZoneId property is set
internal bool IsSetHostedZoneId()
{
return this._hostedZoneId != null;
}
///
/// Gets and sets the property KeyManagementServiceArn.
///
/// The Amazon resource name (ARN) for a customer managed key in Key Management Service
/// (KMS). The KeyManagementServiceArn must be unique for each key-signing
/// key (KSK) in a single hosted zone. To see an example of KeyManagementServiceArn
/// that grants the correct permissions for DNSSEC, scroll down to Example.
///
///
///
/// You must configure the customer managed customer managed key as follows:
///
/// - Status
-
///
/// Enabled
///
///
- Key spec
-
///
/// ECC_NIST_P256
///
///
- Key usage
-
///
/// Sign and verify
///
///
- Key policy
-
///
/// The key policy must give permission for the following actions:
///
///
-
///
/// DescribeKey
///
///
-
///
/// GetPublicKey
///
///
-
///
/// Sign
///
///
///
/// The key policy must also include the Amazon Route 53 service in the principal for
/// your account. Specify the following:
///
/// -
///
///
"Service": "dnssec-route53.amazonaws.com"
///
///
///
/// For more information about working with a customer managed key in KMS, see Key
/// Management Service concepts.
///
///
[AWSProperty(Required=true)]
public string KeyManagementServiceArn
{
get { return this._keyManagementServiceArn; }
set { this._keyManagementServiceArn = value; }
}
// Check to see if KeyManagementServiceArn property is set
internal bool IsSetKeyManagementServiceArn()
{
return this._keyManagementServiceArn != null;
}
///
/// Gets and sets the property Name.
///
/// A string used to identify a key-signing key (KSK). Name can include numbers,
/// letters, and underscores (_). Name must be unique for each key-signing
/// key in the same hosted zone.
///
///
[AWSProperty(Required=true, Min=3, Max=128)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property Status.
///
/// A string specifying the initial status of the key-signing key (KSK). You can set the
/// value to ACTIVE or INACTIVE.
///
///
[AWSProperty(Required=true, Min=5, Max=150)]
public string Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
}
}