/*
* 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
{
///
/// Container for the parameters to the ConnectCustomKeyStore operation.
/// Connects or reconnects a custom
/// key store to its backing key store. For an CloudHSM key store, ConnectCustomKeyStore
/// connects the key store to its associated CloudHSM cluster. For an external key store,
/// ConnectCustomKeyStore
connects the key store to the external key store
/// proxy that communicates with your external key manager.
///
///
///
/// The custom key store must be connected before you can create KMS keys in the key store
/// or use the KMS keys it contains. You can disconnect and reconnect a custom key store
/// at any time.
///
///
///
/// The connection process for a custom key store can take an extended amount of time
/// to complete. This operation starts the connection process, but it does not wait for
/// it to complete. When it succeeds, this operation quickly returns an HTTP 200 response
/// and a JSON object with no properties. However, this response does not indicate that
/// the custom key store is connected. To get the connection state of the custom key store,
/// use the DescribeCustomKeyStores operation.
///
///
///
/// This operation is part of the custom
/// key stores feature in KMS, which combines the convenience and extensive integration
/// of KMS with the isolation and control of a key store that you own and manage.
///
///
///
/// The ConnectCustomKeyStore
operation might fail for various reasons. To
/// find the reason, use the DescribeCustomKeyStores operation and see the ConnectionErrorCode
/// in the response. For help interpreting the ConnectionErrorCode
, see CustomKeyStoresListEntry.
///
///
///
/// To fix the failure, use the DisconnectCustomKeyStore operation to disconnect
/// the custom key store, correct the error, use the UpdateCustomKeyStore operation
/// if necessary, and then use ConnectCustomKeyStore
again.
///
///
///
/// CloudHSM key store
///
///
///
/// During the connection process for an CloudHSM key store, KMS finds the CloudHSM cluster
/// that is associated with the custom key store, creates the connection infrastructure,
/// connects to the cluster, logs into the CloudHSM client as the kmsuser
/// CU, and rotates its password.
///
///
///
/// To connect an CloudHSM key store, its associated CloudHSM cluster must have at least
/// one active HSM. To get the number of active HSMs in a cluster, use the DescribeClusters
/// operation. To add HSMs to the cluster, use the CreateHsm
/// operation. Also, the
/// kmsuser
crypto user (CU) must not be logged into the cluster. This
/// prevents KMS from using this account to log in.
///
///
///
/// If you are having trouble connecting or disconnecting a CloudHSM key store, see Troubleshooting
/// an CloudHSM key store in the Key Management Service Developer Guide.
///
///
///
/// External key store
///
///
///
/// When you connect an external key store that uses public endpoint connectivity, KMS
/// tests its ability to communicate with your external key manager by sending a request
/// via the external key store proxy.
///
///
///
/// When you connect to an external key store that uses VPC endpoint service connectivity,
/// KMS establishes the networking elements that it needs to communicate with your external
/// key manager via the external key store proxy. This includes creating an interface
/// endpoint to the VPC endpoint service and a private hosted zone for traffic between
/// KMS and the VPC endpoint service.
///
///
///
/// To connect an external key store, KMS must be able to connect to the external key
/// store proxy, the external key store proxy must be able to communicate with your external
/// key manager, and the external key manager must be available for cryptographic operations.
///
///
///
/// If you are having trouble connecting or disconnecting an external key store, see Troubleshooting
/// an external key store in the Key Management Service Developer Guide.
///
///
///
/// Cross-account use: No. You cannot perform this operation on a custom key store
/// in a different Amazon Web Services account.
///
///
///
/// Required permissions: kms:ConnectCustomKeyStore
/// (IAM policy)
///
///
///
/// Related operations
///
///
///
public partial class ConnectCustomKeyStoreRequest : AmazonKeyManagementServiceRequest
{
private string _customKeyStoreId;
///
/// Gets and sets the property CustomKeyStoreId.
///
/// Enter the key store ID of the custom key store that you want to connect. To find the
/// ID of a custom key store, use the DescribeCustomKeyStores operation.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string CustomKeyStoreId
{
get { return this._customKeyStoreId; }
set { this._customKeyStoreId = value; }
}
// Check to see if CustomKeyStoreId property is set
internal bool IsSetCustomKeyStoreId()
{
return this._customKeyStoreId != null;
}
}
}