/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace KMS { namespace Model { /** */ class UpdateCustomKeyStoreRequest : public KMSRequest { public: AWS_KMS_API UpdateCustomKeyStoreRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateCustomKeyStore"; } AWS_KMS_API Aws::String SerializePayload() const override; AWS_KMS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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.

*/ inline const Aws::String& GetCustomKeyStoreId() const{ return m_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.

*/ inline bool CustomKeyStoreIdHasBeenSet() const { return m_customKeyStoreIdHasBeenSet; } /** *

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.

*/ inline void SetCustomKeyStoreId(const Aws::String& value) { m_customKeyStoreIdHasBeenSet = true; m_customKeyStoreId = value; } /** *

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.

*/ inline void SetCustomKeyStoreId(Aws::String&& value) { m_customKeyStoreIdHasBeenSet = true; m_customKeyStoreId = std::move(value); } /** *

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.

*/ inline void SetCustomKeyStoreId(const char* value) { m_customKeyStoreIdHasBeenSet = true; m_customKeyStoreId.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithCustomKeyStoreId(const Aws::String& value) { SetCustomKeyStoreId(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithCustomKeyStoreId(Aws::String&& value) { SetCustomKeyStoreId(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithCustomKeyStoreId(const char* value) { SetCustomKeyStoreId(value); return *this;} /** *

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.

*/ inline const Aws::String& GetNewCustomKeyStoreName() const{ return m_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.

*/ inline bool NewCustomKeyStoreNameHasBeenSet() const { return m_newCustomKeyStoreNameHasBeenSet; } /** *

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.

*/ inline void SetNewCustomKeyStoreName(const Aws::String& value) { m_newCustomKeyStoreNameHasBeenSet = true; m_newCustomKeyStoreName = value; } /** *

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.

*/ inline void SetNewCustomKeyStoreName(Aws::String&& value) { m_newCustomKeyStoreNameHasBeenSet = true; m_newCustomKeyStoreName = std::move(value); } /** *

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.

*/ inline void SetNewCustomKeyStoreName(const char* value) { m_newCustomKeyStoreNameHasBeenSet = true; m_newCustomKeyStoreName.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithNewCustomKeyStoreName(const Aws::String& value) { SetNewCustomKeyStoreName(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithNewCustomKeyStoreName(Aws::String&& value) { SetNewCustomKeyStoreName(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithNewCustomKeyStoreName(const char* value) { SetNewCustomKeyStoreName(value); return *this;} /** *

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.

*/ inline const Aws::String& GetKeyStorePassword() const{ return m_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.

*/ inline bool KeyStorePasswordHasBeenSet() const { return m_keyStorePasswordHasBeenSet; } /** *

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.

*/ inline void SetKeyStorePassword(const Aws::String& value) { m_keyStorePasswordHasBeenSet = true; m_keyStorePassword = value; } /** *

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.

*/ inline void SetKeyStorePassword(Aws::String&& value) { m_keyStorePasswordHasBeenSet = true; m_keyStorePassword = std::move(value); } /** *

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.

*/ inline void SetKeyStorePassword(const char* value) { m_keyStorePasswordHasBeenSet = true; m_keyStorePassword.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithKeyStorePassword(const Aws::String& value) { SetKeyStorePassword(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithKeyStorePassword(Aws::String&& value) { SetKeyStorePassword(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithKeyStorePassword(const char* value) { SetKeyStorePassword(value); return *this;} /** *

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.

*/ inline const Aws::String& GetCloudHsmClusterId() const{ return m_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.

*/ inline bool CloudHsmClusterIdHasBeenSet() const { return m_cloudHsmClusterIdHasBeenSet; } /** *

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.

*/ inline void SetCloudHsmClusterId(const Aws::String& value) { m_cloudHsmClusterIdHasBeenSet = true; m_cloudHsmClusterId = value; } /** *

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.

*/ inline void SetCloudHsmClusterId(Aws::String&& value) { m_cloudHsmClusterIdHasBeenSet = true; m_cloudHsmClusterId = std::move(value); } /** *

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.

*/ inline void SetCloudHsmClusterId(const char* value) { m_cloudHsmClusterIdHasBeenSet = true; m_cloudHsmClusterId.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithCloudHsmClusterId(const Aws::String& value) { SetCloudHsmClusterId(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithCloudHsmClusterId(Aws::String&& value) { SetCloudHsmClusterId(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithCloudHsmClusterId(const char* value) { SetCloudHsmClusterId(value); return *this;} /** *

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.

*/ inline const Aws::String& GetXksProxyUriEndpoint() const{ return m_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.

*/ inline bool XksProxyUriEndpointHasBeenSet() const { return m_xksProxyUriEndpointHasBeenSet; } /** *

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.

*/ inline void SetXksProxyUriEndpoint(const Aws::String& value) { m_xksProxyUriEndpointHasBeenSet = true; m_xksProxyUriEndpoint = value; } /** *

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.

*/ inline void SetXksProxyUriEndpoint(Aws::String&& value) { m_xksProxyUriEndpointHasBeenSet = true; m_xksProxyUriEndpoint = std::move(value); } /** *

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.

*/ inline void SetXksProxyUriEndpoint(const char* value) { m_xksProxyUriEndpointHasBeenSet = true; m_xksProxyUriEndpoint.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyUriEndpoint(const Aws::String& value) { SetXksProxyUriEndpoint(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyUriEndpoint(Aws::String&& value) { SetXksProxyUriEndpoint(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyUriEndpoint(const char* value) { SetXksProxyUriEndpoint(value); return *this;} /** *

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.

*/ inline const Aws::String& GetXksProxyUriPath() const{ return m_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.

*/ inline bool XksProxyUriPathHasBeenSet() const { return m_xksProxyUriPathHasBeenSet; } /** *

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.

*/ inline void SetXksProxyUriPath(const Aws::String& value) { m_xksProxyUriPathHasBeenSet = true; m_xksProxyUriPath = value; } /** *

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.

*/ inline void SetXksProxyUriPath(Aws::String&& value) { m_xksProxyUriPathHasBeenSet = true; m_xksProxyUriPath = std::move(value); } /** *

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.

*/ inline void SetXksProxyUriPath(const char* value) { m_xksProxyUriPathHasBeenSet = true; m_xksProxyUriPath.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyUriPath(const Aws::String& value) { SetXksProxyUriPath(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyUriPath(Aws::String&& value) { SetXksProxyUriPath(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyUriPath(const char* value) { SetXksProxyUriPath(value); return *this;} /** *

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.

*/ inline const Aws::String& GetXksProxyVpcEndpointServiceName() const{ return m_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.

*/ inline bool XksProxyVpcEndpointServiceNameHasBeenSet() const { return m_xksProxyVpcEndpointServiceNameHasBeenSet; } /** *

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.

*/ inline void SetXksProxyVpcEndpointServiceName(const Aws::String& value) { m_xksProxyVpcEndpointServiceNameHasBeenSet = true; m_xksProxyVpcEndpointServiceName = value; } /** *

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.

*/ inline void SetXksProxyVpcEndpointServiceName(Aws::String&& value) { m_xksProxyVpcEndpointServiceNameHasBeenSet = true; m_xksProxyVpcEndpointServiceName = std::move(value); } /** *

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.

*/ inline void SetXksProxyVpcEndpointServiceName(const char* value) { m_xksProxyVpcEndpointServiceNameHasBeenSet = true; m_xksProxyVpcEndpointServiceName.assign(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyVpcEndpointServiceName(const Aws::String& value) { SetXksProxyVpcEndpointServiceName(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyVpcEndpointServiceName(Aws::String&& value) { SetXksProxyVpcEndpointServiceName(std::move(value)); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyVpcEndpointServiceName(const char* value) { SetXksProxyVpcEndpointServiceName(value); return *this;} /** *

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.

*/ inline const XksProxyAuthenticationCredentialType& GetXksProxyAuthenticationCredential() const{ return m_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.

*/ inline bool XksProxyAuthenticationCredentialHasBeenSet() const { return m_xksProxyAuthenticationCredentialHasBeenSet; } /** *

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.

*/ inline void SetXksProxyAuthenticationCredential(const XksProxyAuthenticationCredentialType& value) { m_xksProxyAuthenticationCredentialHasBeenSet = true; m_xksProxyAuthenticationCredential = value; } /** *

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.

*/ inline void SetXksProxyAuthenticationCredential(XksProxyAuthenticationCredentialType&& value) { m_xksProxyAuthenticationCredentialHasBeenSet = true; m_xksProxyAuthenticationCredential = std::move(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyAuthenticationCredential(const XksProxyAuthenticationCredentialType& value) { SetXksProxyAuthenticationCredential(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyAuthenticationCredential(XksProxyAuthenticationCredentialType&& value) { SetXksProxyAuthenticationCredential(std::move(value)); return *this;} /** *

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.

*/ inline const XksProxyConnectivityType& GetXksProxyConnectivity() const{ return m_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.

*/ inline bool XksProxyConnectivityHasBeenSet() const { return m_xksProxyConnectivityHasBeenSet; } /** *

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.

*/ inline void SetXksProxyConnectivity(const XksProxyConnectivityType& value) { m_xksProxyConnectivityHasBeenSet = true; m_xksProxyConnectivity = value; } /** *

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.

*/ inline void SetXksProxyConnectivity(XksProxyConnectivityType&& value) { m_xksProxyConnectivityHasBeenSet = true; m_xksProxyConnectivity = std::move(value); } /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyConnectivity(const XksProxyConnectivityType& value) { SetXksProxyConnectivity(value); return *this;} /** *

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.

*/ inline UpdateCustomKeyStoreRequest& WithXksProxyConnectivity(XksProxyConnectivityType&& value) { SetXksProxyConnectivity(std::move(value)); return *this;} private: Aws::String m_customKeyStoreId; bool m_customKeyStoreIdHasBeenSet = false; Aws::String m_newCustomKeyStoreName; bool m_newCustomKeyStoreNameHasBeenSet = false; Aws::String m_keyStorePassword; bool m_keyStorePasswordHasBeenSet = false; Aws::String m_cloudHsmClusterId; bool m_cloudHsmClusterIdHasBeenSet = false; Aws::String m_xksProxyUriEndpoint; bool m_xksProxyUriEndpointHasBeenSet = false; Aws::String m_xksProxyUriPath; bool m_xksProxyUriPathHasBeenSet = false; Aws::String m_xksProxyVpcEndpointServiceName; bool m_xksProxyVpcEndpointServiceNameHasBeenSet = false; XksProxyAuthenticationCredentialType m_xksProxyAuthenticationCredential; bool m_xksProxyAuthenticationCredentialHasBeenSet = false; XksProxyConnectivityType m_xksProxyConnectivity; bool m_xksProxyConnectivityHasBeenSet = false; }; } // namespace Model } // namespace KMS } // namespace Aws