/* * Copyright 2018-2023 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. */ package com.amazonaws.services.kms.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class GenerateRandomRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The length of the random byte string. This parameter is required. *
*/ private Integer numberOfBytes; /** ** Generates the random byte string in the CloudHSM cluster that is associated with the specified CloudHSM key * store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation. *
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
*
* A signed attestation
* document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's
* public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256
.
*
* This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this * parameter, use the Amazon Web Services * Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under the
* public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the private
* key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web Services * Nitro Enclaves uses KMS in the Key Management Service Developer Guide. *
*/ private RecipientInfo recipient; /** ** The length of the random byte string. This parameter is required. *
* * @param numberOfBytes * The length of the random byte string. This parameter is required. */ public void setNumberOfBytes(Integer numberOfBytes) { this.numberOfBytes = numberOfBytes; } /** ** The length of the random byte string. This parameter is required. *
* * @return The length of the random byte string. This parameter is required. */ public Integer getNumberOfBytes() { return this.numberOfBytes; } /** ** The length of the random byte string. This parameter is required. *
* * @param numberOfBytes * The length of the random byte string. This parameter is required. * @return Returns a reference to this object so that method calls can be chained together. */ public GenerateRandomRequest withNumberOfBytes(Integer numberOfBytes) { setNumberOfBytes(numberOfBytes); return this; } /** ** Generates the random byte string in the CloudHSM cluster that is associated with the specified CloudHSM key * store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation. *
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
*/
public void setCustomKeyStoreId(String customKeyStoreId) {
this.customKeyStoreId = customKeyStoreId;
}
/**
*
* Generates the random byte string in the CloudHSM cluster that is associated with the specified CloudHSM key * store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation. *
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
*/
public String getCustomKeyStoreId() {
return this.customKeyStoreId;
}
/**
*
* Generates the random byte string in the CloudHSM cluster that is associated with the specified CloudHSM key * store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation. *
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
*
* External key store IDs are not valid for this parameter. If you specify the ID of an external key store,
* GenerateRandom
throws an UnsupportedOperationException
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public GenerateRandomRequest withCustomKeyStoreId(String customKeyStoreId) {
setCustomKeyStoreId(customKeyStoreId);
return this;
}
/**
*
* A signed attestation
* document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's
* public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256
.
*
* This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this * parameter, use the Amazon Web Services * Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under the
* public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the private
* key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web Services * Nitro Enclaves uses KMS in the Key Management Service Developer Guide. *
* * @param recipient * A signed attestation document from an Amazon Web Services Nitro enclave and the encryption algorithm to use * with the enclave's public key. The only valid encryption algorithm isRSAES_OAEP_SHA_256
.
*
* * This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this * parameter, use the Amazon Web * Services Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under
* the public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the
* private key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web * Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide. */ public void setRecipient(RecipientInfo recipient) { this.recipient = recipient; } /** *
* A signed attestation
* document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's
* public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256
.
*
* This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this * parameter, use the Amazon Web Services * Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under the
* public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the private
* key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web Services * Nitro Enclaves uses KMS in the Key Management Service Developer Guide. *
* * @return A signed attestation document from an Amazon Web Services Nitro enclave and the encryption algorithm to use * with the enclave's public key. The only valid encryption algorithm isRSAES_OAEP_SHA_256
.
*
* * This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include * this parameter, use the Amazon Web * Services Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under
* the public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the
* private key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web * Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide. */ public RecipientInfo getRecipient() { return this.recipient; } /** *
* A signed attestation
* document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's
* public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256
.
*
* This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this * parameter, use the Amazon Web Services * Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under the
* public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the private
* key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web Services * Nitro Enclaves uses KMS in the Key Management Service Developer Guide. *
* * @param recipient * A signed attestation document from an Amazon Web Services Nitro enclave and the encryption algorithm to use * with the enclave's public key. The only valid encryption algorithm isRSAES_OAEP_SHA_256
.
*
* * This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this * parameter, use the Amazon Web * Services Nitro Enclaves SDK or any Amazon Web Services SDK. *
*
* When you use this parameter, instead of returning plaintext bytes, KMS encrypts the plaintext bytes under
* the public key in the attestation document, and returns the resulting ciphertext in the
* CiphertextForRecipient
field in the response. This ciphertext can be decrypted only with the
* private key in the enclave. The Plaintext
field in the response is null or empty.
*
* For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web * Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public GenerateRandomRequest withRecipient(RecipientInfo recipient) { setRecipient(recipient); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getNumberOfBytes() != null) sb.append("NumberOfBytes: ").append(getNumberOfBytes()).append(","); if (getCustomKeyStoreId() != null) sb.append("CustomKeyStoreId: ").append(getCustomKeyStoreId()).append(","); if (getRecipient() != null) sb.append("Recipient: ").append(getRecipient()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof GenerateRandomRequest == false) return false; GenerateRandomRequest other = (GenerateRandomRequest) obj; if (other.getNumberOfBytes() == null ^ this.getNumberOfBytes() == null) return false; if (other.getNumberOfBytes() != null && other.getNumberOfBytes().equals(this.getNumberOfBytes()) == false) return false; if (other.getCustomKeyStoreId() == null ^ this.getCustomKeyStoreId() == null) return false; if (other.getCustomKeyStoreId() != null && other.getCustomKeyStoreId().equals(this.getCustomKeyStoreId()) == false) return false; if (other.getRecipient() == null ^ this.getRecipient() == null) return false; if (other.getRecipient() != null && other.getRecipient().equals(this.getRecipient()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getNumberOfBytes() == null) ? 0 : getNumberOfBytes().hashCode()); hashCode = prime * hashCode + ((getCustomKeyStoreId() == null) ? 0 : getCustomKeyStoreId().hashCode()); hashCode = prime * hashCode + ((getRecipient() == null) ? 0 : getRecipient().hashCode()); return hashCode; } @Override public GenerateRandomRequest clone() { return (GenerateRandomRequest) super.clone(); } }