/* * 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 UpdateCustomKeyStore operation. /// Changes the properties of a custom key store. You can use this operation to change /// the properties of an CloudHSM key store or an external key store. /// /// /// /// Use the required CustomKeyStoreId parameter to identify the custom key /// store. Use the remaining optional parameters to change its properties. This operation /// does not return any property values. To verify the updated property values, 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. /// /// /// /// When updating the properties of an external key store, verify that the updated settings /// connect your key store, via the external key store proxy, to the same external key /// manager as the previous settings, or to a backup or snapshot of the external key manager /// with the same cryptographic keys. If the updated connection settings fail, you can /// fix them and retry, although an extended delay might disrupt Amazon Web Services services. /// However, if KMS permanently loses its access to cryptographic keys, ciphertext encrypted /// under those keys is unrecoverable. /// /// /// /// For external key stores: /// /// /// /// Some external key managers provide a simpler method for updating an external key store. /// For details, see your external key manager documentation. /// /// /// /// When updating an external key store in the KMS console, you can upload a JSON-based /// proxy configuration file with the desired values. You cannot upload the proxy configuration /// file to the UpdateCustomKeyStore operation. However, you can use the /// file to help you determine the correct values for the UpdateCustomKeyStore /// parameters. /// /// /// /// For an CloudHSM key store, you can use this operation to change the custom key store /// friendly name (NewCustomKeyStoreName), to tell KMS about a change to /// the kmsuser crypto user password (KeyStorePassword), or /// to associate the custom key store with a different, but related, CloudHSM cluster /// (CloudHsmClusterId). To update any property of an CloudHSM key store, /// the ConnectionState of the CloudHSM key store must be DISCONNECTED. /// /// /// /// /// For an external key store, you can use this operation to change the custom key store /// friendly name (NewCustomKeyStoreName), or to tell KMS about a change /// to the external key store proxy authentication credentials (XksProxyAuthenticationCredential), /// connection method (XksProxyConnectivity), external proxy endpoint (XksProxyUriEndpoint) /// and path (XksProxyUriPath). For external key stores with an XksProxyConnectivity /// of VPC_ENDPOINT_SERVICE, you can also update the Amazon VPC endpoint /// service name (XksProxyVpcEndpointServiceName). To update most properties /// of an external key store, the ConnectionState of the external key store /// must be DISCONNECTED. However, you can update the CustomKeyStoreName, /// XksProxyAuthenticationCredential, and XksProxyUriPath of /// an external key store when it is in the CONNECTED or DISCONNECTED state. /// /// /// /// If your update requires a DISCONNECTED state, before using UpdateCustomKeyStore, /// use the DisconnectCustomKeyStore operation to disconnect the custom key store. /// After the UpdateCustomKeyStore operation completes, use the ConnectCustomKeyStore /// to reconnect the custom key store. To find the ConnectionState of the /// custom key store, use the DescribeCustomKeyStores operation. /// /// /// /// /// /// /// /// Before updating the custom key store, verify that the new values allow KMS to connect /// the custom key store to its backing key store. For example, before you change the /// XksProxyUriPath value, verify that the external key store proxy is reachable /// at the new path. /// /// /// /// If the operation succeeds, it returns a JSON object with no properties. /// /// /// /// Cross-account use: No. You cannot perform this operation on a custom key store /// in a different Amazon Web Services account. /// /// /// /// Required permissions: kms:UpdateCustomKeyStore /// (IAM policy) /// /// /// /// Related operations: /// /// /// public partial class UpdateCustomKeyStoreRequest : AmazonKeyManagementServiceRequest { private string _cloudHsmClusterId; private string _customKeyStoreId; private string _keyStorePassword; private string _newCustomKeyStoreName; private XksProxyAuthenticationCredentialType _xksProxyAuthenticationCredential; private XksProxyConnectivityType _xksProxyConnectivity; private string _xksProxyUriEndpoint; private string _xksProxyUriPath; private string _xksProxyVpcEndpointServiceName; /// /// Gets and sets the property CloudHsmClusterId. /// /// Associates the custom key store with a related CloudHSM cluster. This parameter is /// valid only for custom key stores with a CustomKeyStoreType of AWS_CLOUDHSM. /// /// /// /// Enter the cluster ID of the cluster that you used to create the custom key store or /// a cluster that shares a backup history and has the same cluster certificate as the /// original cluster. You cannot use this parameter to associate a custom key store with /// an unrelated cluster. In addition, the replacement cluster must fulfill /// the requirements for a cluster associated with a custom key store. To view the /// cluster certificate of a cluster, use the DescribeClusters /// operation. /// /// /// /// To change this value, the CloudHSM key store must be disconnected. /// /// [AWSProperty(Min=19, Max=24)] public string CloudHsmClusterId { get { return this._cloudHsmClusterId; } set { this._cloudHsmClusterId = value; } } // Check to see if CloudHsmClusterId property is set internal bool IsSetCloudHsmClusterId() { return this._cloudHsmClusterId != null; } /// /// Gets and sets the property CustomKeyStoreId. /// /// Identifies the custom key store that you want to update. Enter the ID of the custom /// key store. 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; } /// /// Gets and sets the property KeyStorePassword. /// /// Enter the current password of the kmsuser crypto user (CU) in the CloudHSM /// cluster that is associated with the custom key store. This parameter is valid only /// for custom key stores with a CustomKeyStoreType of AWS_CLOUDHSM. /// /// /// /// This parameter tells KMS the current password of the kmsuser crypto user /// (CU). It does not set or change the password of any users in the CloudHSM cluster. /// /// /// /// To change this value, the CloudHSM key store must be disconnected. /// /// [AWSProperty(Sensitive=true, Min=7, Max=32)] public string KeyStorePassword { get { return this._keyStorePassword; } set { this._keyStorePassword = value; } } // Check to see if KeyStorePassword property is set internal bool IsSetKeyStorePassword() { return this._keyStorePassword != null; } /// /// Gets and sets the property NewCustomKeyStoreName. /// /// Changes the friendly name of the custom key store to the value that you specify. The /// custom key store name must be unique in the Amazon Web Services account. /// /// /// /// Do not include confidential or sensitive information in this field. This field may /// be displayed in plaintext in CloudTrail logs and other output. /// /// /// /// To change this value, an CloudHSM key store must be disconnected. An external key /// store can be connected or disconnected. /// /// [AWSProperty(Min=1, Max=256)] public string NewCustomKeyStoreName { get { return this._newCustomKeyStoreName; } set { this._newCustomKeyStoreName = value; } } // Check to see if NewCustomKeyStoreName property is set internal bool IsSetNewCustomKeyStoreName() { return this._newCustomKeyStoreName != null; } /// /// Gets and sets the property XksProxyAuthenticationCredential. /// /// Changes the credentials that KMS uses to sign requests to the external key store proxy /// (XKS proxy). This parameter is valid only for custom key stores with a CustomKeyStoreType /// of EXTERNAL_KEY_STORE. /// /// /// /// You must specify both the AccessKeyId and SecretAccessKey /// value in the authentication credential, even if you are only updating one value. /// /// /// /// This parameter doesn't establish or change your authentication credentials on the /// proxy. It just tells KMS the credential that you established with your external key /// store proxy. For example, if you rotate the credential on your external key store /// proxy, you can use this parameter to update the credential in KMS. /// /// /// /// You can change this value when the external key store is connected or disconnected. /// /// public XksProxyAuthenticationCredentialType XksProxyAuthenticationCredential { get { return this._xksProxyAuthenticationCredential; } set { this._xksProxyAuthenticationCredential = value; } } // Check to see if XksProxyAuthenticationCredential property is set internal bool IsSetXksProxyAuthenticationCredential() { return this._xksProxyAuthenticationCredential != null; } /// /// Gets and sets the property XksProxyConnectivity. /// /// Changes the connectivity setting for the external key store. To indicate that the /// external key store proxy uses a Amazon VPC endpoint service to communicate with KMS, /// specify VPC_ENDPOINT_SERVICE. Otherwise, specify PUBLIC_ENDPOINT. /// /// /// /// If you change the XksProxyConnectivity to VPC_ENDPOINT_SERVICE, /// you must also change the XksProxyUriEndpoint and add an XksProxyVpcEndpointServiceName /// value. /// /// /// /// If you change the XksProxyConnectivity to PUBLIC_ENDPOINT, /// you must also change the XksProxyUriEndpoint and specify a null or empty /// string for the XksProxyVpcEndpointServiceName value. /// /// /// /// To change this value, the external key store must be disconnected. /// /// public XksProxyConnectivityType XksProxyConnectivity { get { return this._xksProxyConnectivity; } set { this._xksProxyConnectivity = value; } } // Check to see if XksProxyConnectivity property is set internal bool IsSetXksProxyConnectivity() { return this._xksProxyConnectivity != null; } /// /// Gets and sets the property XksProxyUriEndpoint. /// /// Changes the URI endpoint that KMS uses to connect to your external key store proxy /// (XKS proxy). This parameter is valid only for custom key stores with a CustomKeyStoreType /// of EXTERNAL_KEY_STORE. /// /// /// /// For external key stores with an XksProxyConnectivity value of PUBLIC_ENDPOINT, /// the protocol must be HTTPS. /// /// /// /// For external key stores with an XksProxyConnectivity value of VPC_ENDPOINT_SERVICE, /// specify https:// followed by the private DNS name associated with the /// VPC endpoint service. Each external key store must use a different private DNS name. /// /// /// /// The combined XksProxyUriEndpoint and XksProxyUriPath values /// must be unique in the Amazon Web Services account and Region. /// /// /// /// To change this value, the external key store must be disconnected. /// /// [AWSProperty(Min=10, Max=128)] public string XksProxyUriEndpoint { get { return this._xksProxyUriEndpoint; } set { this._xksProxyUriEndpoint = value; } } // Check to see if XksProxyUriEndpoint property is set internal bool IsSetXksProxyUriEndpoint() { return this._xksProxyUriEndpoint != null; } /// /// Gets and sets the property XksProxyUriPath. /// /// Changes the base path to the proxy APIs for this external key store. To find this /// value, see the documentation for your external key manager and external key store /// proxy (XKS proxy). This parameter is valid only for custom key stores with a CustomKeyStoreType /// of EXTERNAL_KEY_STORE. /// /// /// /// The value must start with / and must end with /kms/xks/v1, /// where v1 represents the version of the KMS external key store proxy API. /// You can include an optional prefix between the required elements such as /example/kms/xks/v1. /// /// /// /// The combined XksProxyUriEndpoint and XksProxyUriPath values /// must be unique in the Amazon Web Services account and Region. /// /// /// /// You can change this value when the external key store is connected or disconnected. /// /// [AWSProperty(Min=10, Max=128)] public string XksProxyUriPath { get { return this._xksProxyUriPath; } set { this._xksProxyUriPath = value; } } // Check to see if XksProxyUriPath property is set internal bool IsSetXksProxyUriPath() { return this._xksProxyUriPath != null; } /// /// Gets and sets the property XksProxyVpcEndpointServiceName. /// /// Changes the name that KMS uses to identify the Amazon VPC endpoint service for your /// external key store proxy (XKS proxy). This parameter is valid when the CustomKeyStoreType /// is EXTERNAL_KEY_STORE and the XksProxyConnectivity is VPC_ENDPOINT_SERVICE. /// /// /// /// To change this value, the external key store must be disconnected. /// /// [AWSProperty(Min=20, Max=64)] public string XksProxyVpcEndpointServiceName { get { return this._xksProxyVpcEndpointServiceName; } set { this._xksProxyVpcEndpointServiceName = value; } } // Check to see if XksProxyVpcEndpointServiceName property is set internal bool IsSetXksProxyVpcEndpointServiceName() { return this._xksProxyVpcEndpointServiceName != null; } } }