com.amazonaws.services.kms.model.KeyMetadata Maven / Gradle / Ivy
Show all versions of aws-java-sdk-kms Show documentation
/*
* Copyright 2019-2024 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.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
*
* Contains metadata about a KMS key.
*
*
* This data type is used as a response element for the CreateKey, DescribeKey, and ReplicateKey
* operations.
*
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class KeyMetadata implements Serializable, Cloneable, StructuredPojo {
/**
*
* The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
*
*/
private String aWSAccountId;
/**
*
* The globally unique identifier for the KMS key.
*
*/
private String keyId;
/**
*
* The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management
* Service (KMS) in the Example ARNs section of the Amazon Web Services General Reference.
*
*/
private String arn;
/**
*
* The date and time when the KMS key was created.
*
*/
private java.util.Date creationDate;
/**
*
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is true,
* otherwise it is false.
*
*/
private Boolean enabled;
/**
*
* The description of the KMS key.
*
*/
private String description;
/**
*
* The
* cryptographic operations for which you can use the KMS key.
*
*/
private String keyUsage;
/**
*
* The current status of the KMS key.
*
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the
* Key Management Service Developer Guide.
*
*/
private String keyState;
/**
*
* The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled
* for deletion, that is, when its KeyState
is PendingDeletion
.
*
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is
* PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
*
*/
private java.util.Date deletionDate;
/**
*
* The time at which the imported key material expires. When the key material expires, KMS deletes the key material
* and the KMS key becomes unusable. This value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is KEY_MATERIAL_EXPIRES
, otherwise this
* value is omitted.
*
*/
private java.util.Date validTo;
/**
*
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the key
* material. When this value is EXTERNAL
, the key material was imported or the KMS key doesn't have any
* key material. When this value is AWS_CLOUDHSM
, the key material was created in the CloudHSM cluster
* associated with a custom key store.
*
*/
private String origin;
/**
*
* A unique identifier for the custom key store
* that contains the KMS key. This field is present only when the KMS key is created in a custom key store.
*
*/
private String customKeyStoreId;
/**
*
* The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key
* in an CloudHSM custom key store,
* KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is present only when
* the KMS key is created in an CloudHSM key store.
*
*/
private String cloudHsmClusterId;
/**
*
* Specifies whether the KMS key's key material expires. This value is present only when Origin
is
* EXTERNAL
, otherwise this value is omitted.
*
*/
private String expirationModel;
/**
*
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon
* Web Services managed. For more information about the difference, see KMS keys in the Key
* Management Service Developer Guide.
*
*/
private String keyManager;
/**
*
* Instead, use the KeySpec
field.
*
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend that you
* use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports both fields.
*
*/
@Deprecated
private String customerMasterKeySpec;
/**
*
* Describes the type of key material in the KMS key.
*
*/
private String keySpec;
/**
*
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms
* within KMS.
*
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
*
*/
private com.amazonaws.internal.SdkInternalList encryptionAlgorithms;
/**
*
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within
* KMS.
*
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
*
*/
private com.amazonaws.internal.SdkInternalList signingAlgorithms;
/**
*
* The key agreement algorithm used to derive a shared secret.
*
*/
private com.amazonaws.internal.SdkInternalList keyAgreementAlgorithms;
/**
*
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key. This
* value is True
for multi-Region primary and replica keys and False
for regional KMS
* keys.
*
*
* For more information about multi-Region keys, see Multi-Region keys in
* KMS in the Key Management Service Developer Guide.
*
*/
private Boolean multiRegion;
/**
*
* Lists the primary and replica keys in same multi-Region key. This field is present only when the value of the
* MultiRegion
field is True
.
*
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the current KMS
* key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the current
* KMS key if it is a replica key.
*
*
*
*/
private MultiRegionConfiguration multiRegionConfiguration;
/**
*
* The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the
* last of its replica keys is deleted. This value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the primary key in a multi-Region key, it
* is scheduled for deletion, and it still has existing replica keys.
*
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is
* displayed in the DeletionDate
field. However, when the primary key in a multi-Region key is
* scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value
* displays that waiting period. When the last replica key in the multi-Region key is deleted, the
* KeyState
of the scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the DeletionDate
field.
*
*/
private Integer pendingDeletionWindowInDays;
/**
*
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
*
* This value is present only when the KeyUsage
of the KMS key is GENERATE_VERIFY_MAC
.
*
*/
private com.amazonaws.internal.SdkInternalList macAlgorithms;
/**
*
* Information about the external key that is associated with a KMS key in an external key store.
*
*
* For more information, see External
* key in the Key Management Service Developer Guide.
*
*/
private XksKeyConfigurationType xksKeyConfiguration;
/**
*
* The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
*
*
* @param aWSAccountId
* The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
*/
public void setAWSAccountId(String aWSAccountId) {
this.aWSAccountId = aWSAccountId;
}
/**
*
* The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
*
*
* @return The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
*/
public String getAWSAccountId() {
return this.aWSAccountId;
}
/**
*
* The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
*
*
* @param aWSAccountId
* The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withAWSAccountId(String aWSAccountId) {
setAWSAccountId(aWSAccountId);
return this;
}
/**
*
* The globally unique identifier for the KMS key.
*
*
* @param keyId
* The globally unique identifier for the KMS key.
*/
public void setKeyId(String keyId) {
this.keyId = keyId;
}
/**
*
* The globally unique identifier for the KMS key.
*
*
* @return The globally unique identifier for the KMS key.
*/
public String getKeyId() {
return this.keyId;
}
/**
*
* The globally unique identifier for the KMS key.
*
*
* @param keyId
* The globally unique identifier for the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withKeyId(String keyId) {
setKeyId(keyId);
return this;
}
/**
*
* The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management
* Service (KMS) in the Example ARNs section of the Amazon Web Services General Reference.
*
*
* @param arn
* The Amazon Resource Name (ARN) of the KMS key. For examples, see Key
* Management Service (KMS) in the Example ARNs section of the Amazon Web Services General
* Reference.
*/
public void setArn(String arn) {
this.arn = arn;
}
/**
*
* The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management
* Service (KMS) in the Example ARNs section of the Amazon Web Services General Reference.
*
*
* @return The Amazon Resource Name (ARN) of the KMS key. For examples, see Key
* Management Service (KMS) in the Example ARNs section of the Amazon Web Services General
* Reference.
*/
public String getArn() {
return this.arn;
}
/**
*
* The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management
* Service (KMS) in the Example ARNs section of the Amazon Web Services General Reference.
*
*
* @param arn
* The Amazon Resource Name (ARN) of the KMS key. For examples, see Key
* Management Service (KMS) in the Example ARNs section of the Amazon Web Services General
* Reference.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withArn(String arn) {
setArn(arn);
return this;
}
/**
*
* The date and time when the KMS key was created.
*
*
* @param creationDate
* The date and time when the KMS key was created.
*/
public void setCreationDate(java.util.Date creationDate) {
this.creationDate = creationDate;
}
/**
*
* The date and time when the KMS key was created.
*
*
* @return The date and time when the KMS key was created.
*/
public java.util.Date getCreationDate() {
return this.creationDate;
}
/**
*
* The date and time when the KMS key was created.
*
*
* @param creationDate
* The date and time when the KMS key was created.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withCreationDate(java.util.Date creationDate) {
setCreationDate(creationDate);
return this;
}
/**
*
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is true,
* otherwise it is false.
*
*
* @param enabled
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is
* true, otherwise it is false.
*/
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
/**
*
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is true,
* otherwise it is false.
*
*
* @return Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value
* is true, otherwise it is false.
*/
public Boolean getEnabled() {
return this.enabled;
}
/**
*
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is true,
* otherwise it is false.
*
*
* @param enabled
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is
* true, otherwise it is false.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withEnabled(Boolean enabled) {
setEnabled(enabled);
return this;
}
/**
*
* Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value is true,
* otherwise it is false.
*
*
* @return Specifies whether the KMS key is enabled. When KeyState
is Enabled
this value
* is true, otherwise it is false.
*/
public Boolean isEnabled() {
return this.enabled;
}
/**
*
* The description of the KMS key.
*
*
* @param description
* The description of the KMS key.
*/
public void setDescription(String description) {
this.description = description;
}
/**
*
* The description of the KMS key.
*
*
* @return The description of the KMS key.
*/
public String getDescription() {
return this.description;
}
/**
*
* The description of the KMS key.
*
*
* @param description
* The description of the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withDescription(String description) {
setDescription(description);
return this;
}
/**
*
* The
* cryptographic operations for which you can use the KMS key.
*
*
* @param keyUsage
* The
* cryptographic operations for which you can use the KMS key.
* @see KeyUsageType
*/
public void setKeyUsage(String keyUsage) {
this.keyUsage = keyUsage;
}
/**
*
* The
* cryptographic operations for which you can use the KMS key.
*
*
* @return The cryptographic operations for which you can use the KMS key.
* @see KeyUsageType
*/
public String getKeyUsage() {
return this.keyUsage;
}
/**
*
* The
* cryptographic operations for which you can use the KMS key.
*
*
* @param keyUsage
* The
* cryptographic operations for which you can use the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyUsageType
*/
public KeyMetadata withKeyUsage(String keyUsage) {
setKeyUsage(keyUsage);
return this;
}
/**
*
* The
* cryptographic operations for which you can use the KMS key.
*
*
* @param keyUsage
* The
* cryptographic operations for which you can use the KMS key.
* @see KeyUsageType
*/
public void setKeyUsage(KeyUsageType keyUsage) {
withKeyUsage(keyUsage);
}
/**
*
* The
* cryptographic operations for which you can use the KMS key.
*
*
* @param keyUsage
* The
* cryptographic operations for which you can use the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyUsageType
*/
public KeyMetadata withKeyUsage(KeyUsageType keyUsage) {
this.keyUsage = keyUsage.toString();
return this;
}
/**
*
* The current status of the KMS key.
*
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the
* Key Management Service Developer Guide.
*
*
* @param keyState
* The current status of the KMS key.
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in
* the Key Management Service Developer Guide.
* @see KeyState
*/
public void setKeyState(String keyState) {
this.keyState = keyState;
}
/**
*
* The current status of the KMS key.
*
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the
* Key Management Service Developer Guide.
*
*
* @return The current status of the KMS key.
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in
* the Key Management Service Developer Guide.
* @see KeyState
*/
public String getKeyState() {
return this.keyState;
}
/**
*
* The current status of the KMS key.
*
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the
* Key Management Service Developer Guide.
*
*
* @param keyState
* The current status of the KMS key.
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in
* the Key Management Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyState
*/
public KeyMetadata withKeyState(String keyState) {
setKeyState(keyState);
return this;
}
/**
*
* The current status of the KMS key.
*
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the
* Key Management Service Developer Guide.
*
*
* @param keyState
* The current status of the KMS key.
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in
* the Key Management Service Developer Guide.
* @see KeyState
*/
public void setKeyState(KeyState keyState) {
withKeyState(keyState);
}
/**
*
* The current status of the KMS key.
*
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the
* Key Management Service Developer Guide.
*
*
* @param keyState
* The current status of the KMS key.
*
* For more information about how key state affects the use of a KMS key, see Key states of KMS keys in
* the Key Management Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyState
*/
public KeyMetadata withKeyState(KeyState keyState) {
this.keyState = keyState.toString();
return this;
}
/**
*
* The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled
* for deletion, that is, when its KeyState
is PendingDeletion
.
*
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is
* PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
*
*
* @param deletionDate
* The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is
* scheduled for deletion, that is, when its KeyState
is PendingDeletion
.
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key
* state is PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
*/
public void setDeletionDate(java.util.Date deletionDate) {
this.deletionDate = deletionDate;
}
/**
*
* The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled
* for deletion, that is, when its KeyState
is PendingDeletion
.
*
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is
* PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
*
*
* @return The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is
* scheduled for deletion, that is, when its KeyState
is PendingDeletion
.
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key
* state is PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
*/
public java.util.Date getDeletionDate() {
return this.deletionDate;
}
/**
*
* The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled
* for deletion, that is, when its KeyState
is PendingDeletion
.
*
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is
* PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
*
*
* @param deletionDate
* The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is
* scheduled for deletion, that is, when its KeyState
is PendingDeletion
.
*
* When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key
* state is PendingReplicaDeletion
and the length of its waiting period is displayed in the
* PendingDeletionWindowInDays
field.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withDeletionDate(java.util.Date deletionDate) {
setDeletionDate(deletionDate);
return this;
}
/**
*
* The time at which the imported key material expires. When the key material expires, KMS deletes the key material
* and the KMS key becomes unusable. This value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is KEY_MATERIAL_EXPIRES
, otherwise this
* value is omitted.
*
*
* @param validTo
* The time at which the imported key material expires. When the key material expires, KMS deletes the key
* material and the KMS key becomes unusable. This value is present only for KMS keys whose
* Origin
is EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
*/
public void setValidTo(java.util.Date validTo) {
this.validTo = validTo;
}
/**
*
* The time at which the imported key material expires. When the key material expires, KMS deletes the key material
* and the KMS key becomes unusable. This value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is KEY_MATERIAL_EXPIRES
, otherwise this
* value is omitted.
*
*
* @return The time at which the imported key material expires. When the key material expires, KMS deletes the key
* material and the KMS key becomes unusable. This value is present only for KMS keys whose
* Origin
is EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
*/
public java.util.Date getValidTo() {
return this.validTo;
}
/**
*
* The time at which the imported key material expires. When the key material expires, KMS deletes the key material
* and the KMS key becomes unusable. This value is present only for KMS keys whose Origin
is
* EXTERNAL
and whose ExpirationModel
is KEY_MATERIAL_EXPIRES
, otherwise this
* value is omitted.
*
*
* @param validTo
* The time at which the imported key material expires. When the key material expires, KMS deletes the key
* material and the KMS key becomes unusable. This value is present only for KMS keys whose
* Origin
is EXTERNAL
and whose ExpirationModel
is
* KEY_MATERIAL_EXPIRES
, otherwise this value is omitted.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withValidTo(java.util.Date validTo) {
setValidTo(validTo);
return this;
}
/**
*
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the key
* material. When this value is EXTERNAL
, the key material was imported or the KMS key doesn't have any
* key material. When this value is AWS_CLOUDHSM
, the key material was created in the CloudHSM cluster
* associated with a custom key store.
*
*
* @param origin
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the
* key material. When this value is EXTERNAL
, the key material was imported or the KMS key
* doesn't have any key material. When this value is AWS_CLOUDHSM
, the key material was created
* in the CloudHSM cluster associated with a custom key store.
* @see OriginType
*/
public void setOrigin(String origin) {
this.origin = origin;
}
/**
*
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the key
* material. When this value is EXTERNAL
, the key material was imported or the KMS key doesn't have any
* key material. When this value is AWS_CLOUDHSM
, the key material was created in the CloudHSM cluster
* associated with a custom key store.
*
*
* @return The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the
* key material. When this value is EXTERNAL
, the key material was imported or the KMS key
* doesn't have any key material. When this value is AWS_CLOUDHSM
, the key material was created
* in the CloudHSM cluster associated with a custom key store.
* @see OriginType
*/
public String getOrigin() {
return this.origin;
}
/**
*
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the key
* material. When this value is EXTERNAL
, the key material was imported or the KMS key doesn't have any
* key material. When this value is AWS_CLOUDHSM
, the key material was created in the CloudHSM cluster
* associated with a custom key store.
*
*
* @param origin
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the
* key material. When this value is EXTERNAL
, the key material was imported or the KMS key
* doesn't have any key material. When this value is AWS_CLOUDHSM
, the key material was created
* in the CloudHSM cluster associated with a custom key store.
* @return Returns a reference to this object so that method calls can be chained together.
* @see OriginType
*/
public KeyMetadata withOrigin(String origin) {
setOrigin(origin);
return this;
}
/**
*
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the key
* material. When this value is EXTERNAL
, the key material was imported or the KMS key doesn't have any
* key material. When this value is AWS_CLOUDHSM
, the key material was created in the CloudHSM cluster
* associated with a custom key store.
*
*
* @param origin
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the
* key material. When this value is EXTERNAL
, the key material was imported or the KMS key
* doesn't have any key material. When this value is AWS_CLOUDHSM
, the key material was created
* in the CloudHSM cluster associated with a custom key store.
* @see OriginType
*/
public void setOrigin(OriginType origin) {
withOrigin(origin);
}
/**
*
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the key
* material. When this value is EXTERNAL
, the key material was imported or the KMS key doesn't have any
* key material. When this value is AWS_CLOUDHSM
, the key material was created in the CloudHSM cluster
* associated with a custom key store.
*
*
* @param origin
* The source of the key material for the KMS key. When this value is AWS_KMS
, KMS created the
* key material. When this value is EXTERNAL
, the key material was imported or the KMS key
* doesn't have any key material. When this value is AWS_CLOUDHSM
, the key material was created
* in the CloudHSM cluster associated with a custom key store.
* @return Returns a reference to this object so that method calls can be chained together.
* @see OriginType
*/
public KeyMetadata withOrigin(OriginType origin) {
this.origin = origin.toString();
return this;
}
/**
*
* A unique identifier for the custom key store
* that contains the KMS key. This field is present only when the KMS key is created in a custom key store.
*
*
* @param customKeyStoreId
* A unique identifier for the custom key
* store that contains the KMS key. This field is present only when the KMS key is created in a custom
* key store.
*/
public void setCustomKeyStoreId(String customKeyStoreId) {
this.customKeyStoreId = customKeyStoreId;
}
/**
*
* A unique identifier for the custom key store
* that contains the KMS key. This field is present only when the KMS key is created in a custom key store.
*
*
* @return A unique identifier for the custom key
* store that contains the KMS key. This field is present only when the KMS key is created in a custom
* key store.
*/
public String getCustomKeyStoreId() {
return this.customKeyStoreId;
}
/**
*
* A unique identifier for the custom key store
* that contains the KMS key. This field is present only when the KMS key is created in a custom key store.
*
*
* @param customKeyStoreId
* A unique identifier for the custom key
* store that contains the KMS key. This field is present only when the KMS key is created in a custom
* key store.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withCustomKeyStoreId(String customKeyStoreId) {
setCustomKeyStoreId(customKeyStoreId);
return this;
}
/**
*
* The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key
* in an CloudHSM custom key store,
* KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is present only when
* the KMS key is created in an CloudHSM key store.
*
*
* @param cloudHsmClusterId
* The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a
* KMS key in an CloudHSM custom key
* store, KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is
* present only when the KMS key is created in an CloudHSM key store.
*/
public void setCloudHsmClusterId(String cloudHsmClusterId) {
this.cloudHsmClusterId = cloudHsmClusterId;
}
/**
*
* The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key
* in an CloudHSM custom key store,
* KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is present only when
* the KMS key is created in an CloudHSM key store.
*
*
* @return The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a
* KMS key in an CloudHSM custom key
* store, KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is
* present only when the KMS key is created in an CloudHSM key store.
*/
public String getCloudHsmClusterId() {
return this.cloudHsmClusterId;
}
/**
*
* The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key
* in an CloudHSM custom key store,
* KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is present only when
* the KMS key is created in an CloudHSM key store.
*
*
* @param cloudHsmClusterId
* The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a
* KMS key in an CloudHSM custom key
* store, KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is
* present only when the KMS key is created in an CloudHSM key store.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withCloudHsmClusterId(String cloudHsmClusterId) {
setCloudHsmClusterId(cloudHsmClusterId);
return this;
}
/**
*
* Specifies whether the KMS key's key material expires. This value is present only when Origin
is
* EXTERNAL
, otherwise this value is omitted.
*
*
* @param expirationModel
* Specifies whether the KMS key's key material expires. This value is present only when Origin
* is EXTERNAL
, otherwise this value is omitted.
* @see ExpirationModelType
*/
public void setExpirationModel(String expirationModel) {
this.expirationModel = expirationModel;
}
/**
*
* Specifies whether the KMS key's key material expires. This value is present only when Origin
is
* EXTERNAL
, otherwise this value is omitted.
*
*
* @return Specifies whether the KMS key's key material expires. This value is present only when Origin
* is EXTERNAL
, otherwise this value is omitted.
* @see ExpirationModelType
*/
public String getExpirationModel() {
return this.expirationModel;
}
/**
*
* Specifies whether the KMS key's key material expires. This value is present only when Origin
is
* EXTERNAL
, otherwise this value is omitted.
*
*
* @param expirationModel
* Specifies whether the KMS key's key material expires. This value is present only when Origin
* is EXTERNAL
, otherwise this value is omitted.
* @return Returns a reference to this object so that method calls can be chained together.
* @see ExpirationModelType
*/
public KeyMetadata withExpirationModel(String expirationModel) {
setExpirationModel(expirationModel);
return this;
}
/**
*
* Specifies whether the KMS key's key material expires. This value is present only when Origin
is
* EXTERNAL
, otherwise this value is omitted.
*
*
* @param expirationModel
* Specifies whether the KMS key's key material expires. This value is present only when Origin
* is EXTERNAL
, otherwise this value is omitted.
* @see ExpirationModelType
*/
public void setExpirationModel(ExpirationModelType expirationModel) {
withExpirationModel(expirationModel);
}
/**
*
* Specifies whether the KMS key's key material expires. This value is present only when Origin
is
* EXTERNAL
, otherwise this value is omitted.
*
*
* @param expirationModel
* Specifies whether the KMS key's key material expires. This value is present only when Origin
* is EXTERNAL
, otherwise this value is omitted.
* @return Returns a reference to this object so that method calls can be chained together.
* @see ExpirationModelType
*/
public KeyMetadata withExpirationModel(ExpirationModelType expirationModel) {
this.expirationModel = expirationModel.toString();
return this;
}
/**
*
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon
* Web Services managed. For more information about the difference, see KMS keys in the Key
* Management Service Developer Guide.
*
*
* @param keyManager
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or
* Amazon Web Services managed. For more information about the difference, see KMS keys in the
* Key Management Service Developer Guide.
* @see KeyManagerType
*/
public void setKeyManager(String keyManager) {
this.keyManager = keyManager;
}
/**
*
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon
* Web Services managed. For more information about the difference, see KMS keys in the Key
* Management Service Developer Guide.
*
*
* @return The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or
* Amazon Web Services managed. For more information about the difference, see KMS keys in the
* Key Management Service Developer Guide.
* @see KeyManagerType
*/
public String getKeyManager() {
return this.keyManager;
}
/**
*
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon
* Web Services managed. For more information about the difference, see KMS keys in the Key
* Management Service Developer Guide.
*
*
* @param keyManager
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or
* Amazon Web Services managed. For more information about the difference, see KMS keys in the
* Key Management Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyManagerType
*/
public KeyMetadata withKeyManager(String keyManager) {
setKeyManager(keyManager);
return this;
}
/**
*
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon
* Web Services managed. For more information about the difference, see KMS keys in the Key
* Management Service Developer Guide.
*
*
* @param keyManager
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or
* Amazon Web Services managed. For more information about the difference, see KMS keys in the
* Key Management Service Developer Guide.
* @see KeyManagerType
*/
public void setKeyManager(KeyManagerType keyManager) {
withKeyManager(keyManager);
}
/**
*
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon
* Web Services managed. For more information about the difference, see KMS keys in the Key
* Management Service Developer Guide.
*
*
* @param keyManager
* The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or
* Amazon Web Services managed. For more information about the difference, see KMS keys in the
* Key Management Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyManagerType
*/
public KeyMetadata withKeyManager(KeyManagerType keyManager) {
this.keyManager = keyManager.toString();
return this;
}
/**
*
* Instead, use the KeySpec
field.
*
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend that you
* use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports both fields.
*
*
* @param customerMasterKeySpec
* Instead, use the KeySpec
field.
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend
* that you use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports
* both fields.
* @see CustomerMasterKeySpec
*/
@Deprecated
public void setCustomerMasterKeySpec(String customerMasterKeySpec) {
this.customerMasterKeySpec = customerMasterKeySpec;
}
/**
*
* Instead, use the KeySpec
field.
*
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend that you
* use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports both fields.
*
*
* @return Instead, use the KeySpec
field.
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend
* that you use the KeySpec
field in your code. However, to avoid breaking changes, KMS
* supports both fields.
* @see CustomerMasterKeySpec
*/
@Deprecated
public String getCustomerMasterKeySpec() {
return this.customerMasterKeySpec;
}
/**
*
* Instead, use the KeySpec
field.
*
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend that you
* use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports both fields.
*
*
* @param customerMasterKeySpec
* Instead, use the KeySpec
field.
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend
* that you use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports
* both fields.
* @return Returns a reference to this object so that method calls can be chained together.
* @see CustomerMasterKeySpec
*/
@Deprecated
public KeyMetadata withCustomerMasterKeySpec(String customerMasterKeySpec) {
setCustomerMasterKeySpec(customerMasterKeySpec);
return this;
}
/**
*
* Instead, use the KeySpec
field.
*
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend that you
* use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports both fields.
*
*
* @param customerMasterKeySpec
* Instead, use the KeySpec
field.
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend
* that you use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports
* both fields.
* @see CustomerMasterKeySpec
*/
@Deprecated
public void setCustomerMasterKeySpec(CustomerMasterKeySpec customerMasterKeySpec) {
withCustomerMasterKeySpec(customerMasterKeySpec);
}
/**
*
* Instead, use the KeySpec
field.
*
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend that you
* use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports both fields.
*
*
* @param customerMasterKeySpec
* Instead, use the KeySpec
field.
*
* The KeySpec
and CustomerMasterKeySpec
fields have the same value. We recommend
* that you use the KeySpec
field in your code. However, to avoid breaking changes, KMS supports
* both fields.
* @return Returns a reference to this object so that method calls can be chained together.
* @see CustomerMasterKeySpec
*/
@Deprecated
public KeyMetadata withCustomerMasterKeySpec(CustomerMasterKeySpec customerMasterKeySpec) {
this.customerMasterKeySpec = customerMasterKeySpec.toString();
return this;
}
/**
*
* Describes the type of key material in the KMS key.
*
*
* @param keySpec
* Describes the type of key material in the KMS key.
* @see KeySpec
*/
public void setKeySpec(String keySpec) {
this.keySpec = keySpec;
}
/**
*
* Describes the type of key material in the KMS key.
*
*
* @return Describes the type of key material in the KMS key.
* @see KeySpec
*/
public String getKeySpec() {
return this.keySpec;
}
/**
*
* Describes the type of key material in the KMS key.
*
*
* @param keySpec
* Describes the type of key material in the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeySpec
*/
public KeyMetadata withKeySpec(String keySpec) {
setKeySpec(keySpec);
return this;
}
/**
*
* Describes the type of key material in the KMS key.
*
*
* @param keySpec
* Describes the type of key material in the KMS key.
* @see KeySpec
*/
public void setKeySpec(KeySpec keySpec) {
withKeySpec(keySpec);
}
/**
*
* Describes the type of key material in the KMS key.
*
*
* @param keySpec
* Describes the type of key material in the KMS key.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeySpec
*/
public KeyMetadata withKeySpec(KeySpec keySpec) {
this.keySpec = keySpec.toString();
return this;
}
/**
*
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms
* within KMS.
*
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
*
*
* @return The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption
* algorithms within KMS.
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
* @see EncryptionAlgorithmSpec
*/
public java.util.List getEncryptionAlgorithms() {
if (encryptionAlgorithms == null) {
encryptionAlgorithms = new com.amazonaws.internal.SdkInternalList();
}
return encryptionAlgorithms;
}
/**
*
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms
* within KMS.
*
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
*
*
* @param encryptionAlgorithms
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption
* algorithms within KMS.
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
* @see EncryptionAlgorithmSpec
*/
public void setEncryptionAlgorithms(java.util.Collection encryptionAlgorithms) {
if (encryptionAlgorithms == null) {
this.encryptionAlgorithms = null;
return;
}
this.encryptionAlgorithms = new com.amazonaws.internal.SdkInternalList(encryptionAlgorithms);
}
/**
*
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms
* within KMS.
*
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setEncryptionAlgorithms(java.util.Collection)} or {@link #withEncryptionAlgorithms(java.util.Collection)}
* if you want to override the existing values.
*
*
* @param encryptionAlgorithms
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption
* algorithms within KMS.
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see EncryptionAlgorithmSpec
*/
public KeyMetadata withEncryptionAlgorithms(String... encryptionAlgorithms) {
if (this.encryptionAlgorithms == null) {
setEncryptionAlgorithms(new com.amazonaws.internal.SdkInternalList(encryptionAlgorithms.length));
}
for (String ele : encryptionAlgorithms) {
this.encryptionAlgorithms.add(ele);
}
return this;
}
/**
*
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms
* within KMS.
*
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
*
*
* @param encryptionAlgorithms
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption
* algorithms within KMS.
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see EncryptionAlgorithmSpec
*/
public KeyMetadata withEncryptionAlgorithms(java.util.Collection encryptionAlgorithms) {
setEncryptionAlgorithms(encryptionAlgorithms);
return this;
}
/**
*
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms
* within KMS.
*
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
*
*
* @param encryptionAlgorithms
* The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption
* algorithms within KMS.
*
* This value is present only when the KeyUsage
of the KMS key is ENCRYPT_DECRYPT
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see EncryptionAlgorithmSpec
*/
public KeyMetadata withEncryptionAlgorithms(EncryptionAlgorithmSpec... encryptionAlgorithms) {
com.amazonaws.internal.SdkInternalList encryptionAlgorithmsCopy = new com.amazonaws.internal.SdkInternalList(
encryptionAlgorithms.length);
for (EncryptionAlgorithmSpec value : encryptionAlgorithms) {
encryptionAlgorithmsCopy.add(value.toString());
}
if (getEncryptionAlgorithms() == null) {
setEncryptionAlgorithms(encryptionAlgorithmsCopy);
} else {
getEncryptionAlgorithms().addAll(encryptionAlgorithmsCopy);
}
return this;
}
/**
*
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within
* KMS.
*
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
*
*
* @return The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing
* algorithms within KMS.
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
* @see SigningAlgorithmSpec
*/
public java.util.List getSigningAlgorithms() {
if (signingAlgorithms == null) {
signingAlgorithms = new com.amazonaws.internal.SdkInternalList();
}
return signingAlgorithms;
}
/**
*
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within
* KMS.
*
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
*
*
* @param signingAlgorithms
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms
* within KMS.
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
* @see SigningAlgorithmSpec
*/
public void setSigningAlgorithms(java.util.Collection signingAlgorithms) {
if (signingAlgorithms == null) {
this.signingAlgorithms = null;
return;
}
this.signingAlgorithms = new com.amazonaws.internal.SdkInternalList(signingAlgorithms);
}
/**
*
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within
* KMS.
*
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setSigningAlgorithms(java.util.Collection)} or {@link #withSigningAlgorithms(java.util.Collection)} if
* you want to override the existing values.
*
*
* @param signingAlgorithms
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms
* within KMS.
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SigningAlgorithmSpec
*/
public KeyMetadata withSigningAlgorithms(String... signingAlgorithms) {
if (this.signingAlgorithms == null) {
setSigningAlgorithms(new com.amazonaws.internal.SdkInternalList(signingAlgorithms.length));
}
for (String ele : signingAlgorithms) {
this.signingAlgorithms.add(ele);
}
return this;
}
/**
*
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within
* KMS.
*
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
*
*
* @param signingAlgorithms
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms
* within KMS.
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SigningAlgorithmSpec
*/
public KeyMetadata withSigningAlgorithms(java.util.Collection signingAlgorithms) {
setSigningAlgorithms(signingAlgorithms);
return this;
}
/**
*
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within
* KMS.
*
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
*
*
* @param signingAlgorithms
* The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms
* within KMS.
*
* This field appears only when the KeyUsage
of the KMS key is SIGN_VERIFY
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SigningAlgorithmSpec
*/
public KeyMetadata withSigningAlgorithms(SigningAlgorithmSpec... signingAlgorithms) {
com.amazonaws.internal.SdkInternalList signingAlgorithmsCopy = new com.amazonaws.internal.SdkInternalList(signingAlgorithms.length);
for (SigningAlgorithmSpec value : signingAlgorithms) {
signingAlgorithmsCopy.add(value.toString());
}
if (getSigningAlgorithms() == null) {
setSigningAlgorithms(signingAlgorithmsCopy);
} else {
getSigningAlgorithms().addAll(signingAlgorithmsCopy);
}
return this;
}
/**
*
* The key agreement algorithm used to derive a shared secret.
*
*
* @return The key agreement algorithm used to derive a shared secret.
* @see KeyAgreementAlgorithmSpec
*/
public java.util.List getKeyAgreementAlgorithms() {
if (keyAgreementAlgorithms == null) {
keyAgreementAlgorithms = new com.amazonaws.internal.SdkInternalList();
}
return keyAgreementAlgorithms;
}
/**
*
* The key agreement algorithm used to derive a shared secret.
*
*
* @param keyAgreementAlgorithms
* The key agreement algorithm used to derive a shared secret.
* @see KeyAgreementAlgorithmSpec
*/
public void setKeyAgreementAlgorithms(java.util.Collection keyAgreementAlgorithms) {
if (keyAgreementAlgorithms == null) {
this.keyAgreementAlgorithms = null;
return;
}
this.keyAgreementAlgorithms = new com.amazonaws.internal.SdkInternalList(keyAgreementAlgorithms);
}
/**
*
* The key agreement algorithm used to derive a shared secret.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setKeyAgreementAlgorithms(java.util.Collection)} or
* {@link #withKeyAgreementAlgorithms(java.util.Collection)} if you want to override the existing values.
*
*
* @param keyAgreementAlgorithms
* The key agreement algorithm used to derive a shared secret.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyAgreementAlgorithmSpec
*/
public KeyMetadata withKeyAgreementAlgorithms(String... keyAgreementAlgorithms) {
if (this.keyAgreementAlgorithms == null) {
setKeyAgreementAlgorithms(new com.amazonaws.internal.SdkInternalList(keyAgreementAlgorithms.length));
}
for (String ele : keyAgreementAlgorithms) {
this.keyAgreementAlgorithms.add(ele);
}
return this;
}
/**
*
* The key agreement algorithm used to derive a shared secret.
*
*
* @param keyAgreementAlgorithms
* The key agreement algorithm used to derive a shared secret.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyAgreementAlgorithmSpec
*/
public KeyMetadata withKeyAgreementAlgorithms(java.util.Collection keyAgreementAlgorithms) {
setKeyAgreementAlgorithms(keyAgreementAlgorithms);
return this;
}
/**
*
* The key agreement algorithm used to derive a shared secret.
*
*
* @param keyAgreementAlgorithms
* The key agreement algorithm used to derive a shared secret.
* @return Returns a reference to this object so that method calls can be chained together.
* @see KeyAgreementAlgorithmSpec
*/
public KeyMetadata withKeyAgreementAlgorithms(KeyAgreementAlgorithmSpec... keyAgreementAlgorithms) {
com.amazonaws.internal.SdkInternalList keyAgreementAlgorithmsCopy = new com.amazonaws.internal.SdkInternalList(
keyAgreementAlgorithms.length);
for (KeyAgreementAlgorithmSpec value : keyAgreementAlgorithms) {
keyAgreementAlgorithmsCopy.add(value.toString());
}
if (getKeyAgreementAlgorithms() == null) {
setKeyAgreementAlgorithms(keyAgreementAlgorithmsCopy);
} else {
getKeyAgreementAlgorithms().addAll(keyAgreementAlgorithmsCopy);
}
return this;
}
/**
*
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key. This
* value is True
for multi-Region primary and replica keys and False
for regional KMS
* keys.
*
*
* For more information about multi-Region keys, see Multi-Region keys in
* KMS in the Key Management Service Developer Guide.
*
*
* @param multiRegion
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key.
* This value is True
for multi-Region primary and replica keys and False
for
* regional KMS keys.
*
* For more information about multi-Region keys, see Multi-Region
* keys in KMS in the Key Management Service Developer Guide.
*/
public void setMultiRegion(Boolean multiRegion) {
this.multiRegion = multiRegion;
}
/**
*
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key. This
* value is True
for multi-Region primary and replica keys and False
for regional KMS
* keys.
*
*
* For more information about multi-Region keys, see Multi-Region keys in
* KMS in the Key Management Service Developer Guide.
*
*
* @return Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key.
* This value is True
for multi-Region primary and replica keys and False
for
* regional KMS keys.
*
* For more information about multi-Region keys, see Multi-Region
* keys in KMS in the Key Management Service Developer Guide.
*/
public Boolean getMultiRegion() {
return this.multiRegion;
}
/**
*
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key. This
* value is True
for multi-Region primary and replica keys and False
for regional KMS
* keys.
*
*
* For more information about multi-Region keys, see Multi-Region keys in
* KMS in the Key Management Service Developer Guide.
*
*
* @param multiRegion
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key.
* This value is True
for multi-Region primary and replica keys and False
for
* regional KMS keys.
*
* For more information about multi-Region keys, see Multi-Region
* keys in KMS in the Key Management Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withMultiRegion(Boolean multiRegion) {
setMultiRegion(multiRegion);
return this;
}
/**
*
* Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key. This
* value is True
for multi-Region primary and replica keys and False
for regional KMS
* keys.
*
*
* For more information about multi-Region keys, see Multi-Region keys in
* KMS in the Key Management Service Developer Guide.
*
*
* @return Indicates whether the KMS key is a multi-Region (True
) or regional (False
) key.
* This value is True
for multi-Region primary and replica keys and False
for
* regional KMS keys.
*
* For more information about multi-Region keys, see Multi-Region
* keys in KMS in the Key Management Service Developer Guide.
*/
public Boolean isMultiRegion() {
return this.multiRegion;
}
/**
*
* Lists the primary and replica keys in same multi-Region key. This field is present only when the value of the
* MultiRegion
field is True
.
*
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the current KMS
* key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the current
* KMS key if it is a replica key.
*
*
*
*
* @param multiRegionConfiguration
* Lists the primary and replica keys in same multi-Region key. This field is present only when the value of
* the MultiRegion
field is True
.
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or
* REPLICA
key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the
* current KMS key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the
* current KMS key if it is a replica key.
*
*
*/
public void setMultiRegionConfiguration(MultiRegionConfiguration multiRegionConfiguration) {
this.multiRegionConfiguration = multiRegionConfiguration;
}
/**
*
* Lists the primary and replica keys in same multi-Region key. This field is present only when the value of the
* MultiRegion
field is True
.
*
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the current KMS
* key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the current
* KMS key if it is a replica key.
*
*
*
*
* @return Lists the primary and replica keys in same multi-Region key. This field is present only when the value of
* the MultiRegion
field is True
.
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or
* REPLICA
key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the
* current KMS key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the
* current KMS key if it is a replica key.
*
*
*/
public MultiRegionConfiguration getMultiRegionConfiguration() {
return this.multiRegionConfiguration;
}
/**
*
* Lists the primary and replica keys in same multi-Region key. This field is present only when the value of the
* MultiRegion
field is True
.
*
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or REPLICA
* key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the current KMS
* key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the current
* KMS key if it is a replica key.
*
*
*
*
* @param multiRegionConfiguration
* Lists the primary and replica keys in same multi-Region key. This field is present only when the value of
* the MultiRegion
field is True
.
*
* For more information about any listed KMS key, use the DescribeKey operation.
*
*
* -
*
* MultiRegionKeyType
indicates whether the KMS key is a PRIMARY
or
* REPLICA
key.
*
*
* -
*
* PrimaryKey
displays the key ARN and Region of the primary key. This field displays the
* current KMS key if it is the primary key.
*
*
* -
*
* ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the
* current KMS key if it is a replica key.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withMultiRegionConfiguration(MultiRegionConfiguration multiRegionConfiguration) {
setMultiRegionConfiguration(multiRegionConfiguration);
return this;
}
/**
*
* The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the
* last of its replica keys is deleted. This value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the primary key in a multi-Region key, it
* is scheduled for deletion, and it still has existing replica keys.
*
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is
* displayed in the DeletionDate
field. However, when the primary key in a multi-Region key is
* scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value
* displays that waiting period. When the last replica key in the multi-Region key is deleted, the
* KeyState
of the scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the DeletionDate
field.
*
*
* @param pendingDeletionWindowInDays
* The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins
* when the last of its replica keys is deleted. This value is present only when the KeyState
of
* the KMS key is PendingReplicaDeletion
. That indicates that the KMS key is the primary key in
* a multi-Region key, it is scheduled for deletion, and it still has existing replica keys.
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is
* displayed in the DeletionDate
field. However, when the primary key in a multi-Region key is
* scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This
* value displays that waiting period. When the last replica key in the multi-Region key is deleted, the
* KeyState
of the scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the DeletionDate
field.
*/
public void setPendingDeletionWindowInDays(Integer pendingDeletionWindowInDays) {
this.pendingDeletionWindowInDays = pendingDeletionWindowInDays;
}
/**
*
* The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the
* last of its replica keys is deleted. This value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the primary key in a multi-Region key, it
* is scheduled for deletion, and it still has existing replica keys.
*
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is
* displayed in the DeletionDate
field. However, when the primary key in a multi-Region key is
* scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value
* displays that waiting period. When the last replica key in the multi-Region key is deleted, the
* KeyState
of the scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the DeletionDate
field.
*
*
* @return The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins
* when the last of its replica keys is deleted. This value is present only when the KeyState
* of the KMS key is PendingReplicaDeletion
. That indicates that the KMS key is the primary key
* in a multi-Region key, it is scheduled for deletion, and it still has existing replica keys.
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date
* is displayed in the DeletionDate
field. However, when the primary key in a multi-Region key
* is scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted.
* This value displays that waiting period. When the last replica key in the multi-Region key is deleted,
* the KeyState
of the scheduled primary key changes from PendingReplicaDeletion
* to PendingDeletion
and the deletion date appears in the DeletionDate
field.
*/
public Integer getPendingDeletionWindowInDays() {
return this.pendingDeletionWindowInDays;
}
/**
*
* The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the
* last of its replica keys is deleted. This value is present only when the KeyState
of the KMS key is
* PendingReplicaDeletion
. That indicates that the KMS key is the primary key in a multi-Region key, it
* is scheduled for deletion, and it still has existing replica keys.
*
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is
* displayed in the DeletionDate
field. However, when the primary key in a multi-Region key is
* scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value
* displays that waiting period. When the last replica key in the multi-Region key is deleted, the
* KeyState
of the scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the DeletionDate
field.
*
*
* @param pendingDeletionWindowInDays
* The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins
* when the last of its replica keys is deleted. This value is present only when the KeyState
of
* the KMS key is PendingReplicaDeletion
. That indicates that the KMS key is the primary key in
* a multi-Region key, it is scheduled for deletion, and it still has existing replica keys.
*
* When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is
* displayed in the DeletionDate
field. However, when the primary key in a multi-Region key is
* scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This
* value displays that waiting period. When the last replica key in the multi-Region key is deleted, the
* KeyState
of the scheduled primary key changes from PendingReplicaDeletion
to
* PendingDeletion
and the deletion date appears in the DeletionDate
field.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withPendingDeletionWindowInDays(Integer pendingDeletionWindowInDays) {
setPendingDeletionWindowInDays(pendingDeletionWindowInDays);
return this;
}
/**
*
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
*
* This value is present only when the KeyUsage
of the KMS key is GENERATE_VERIFY_MAC
.
*
*
* @return The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
* This value is present only when the KeyUsage
of the KMS key is
* GENERATE_VERIFY_MAC
.
* @see MacAlgorithmSpec
*/
public java.util.List getMacAlgorithms() {
if (macAlgorithms == null) {
macAlgorithms = new com.amazonaws.internal.SdkInternalList();
}
return macAlgorithms;
}
/**
*
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
*
* This value is present only when the KeyUsage
of the KMS key is GENERATE_VERIFY_MAC
.
*
*
* @param macAlgorithms
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
* This value is present only when the KeyUsage
of the KMS key is
* GENERATE_VERIFY_MAC
.
* @see MacAlgorithmSpec
*/
public void setMacAlgorithms(java.util.Collection macAlgorithms) {
if (macAlgorithms == null) {
this.macAlgorithms = null;
return;
}
this.macAlgorithms = new com.amazonaws.internal.SdkInternalList(macAlgorithms);
}
/**
*
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
*
* This value is present only when the KeyUsage
of the KMS key is GENERATE_VERIFY_MAC
.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setMacAlgorithms(java.util.Collection)} or {@link #withMacAlgorithms(java.util.Collection)} if you want
* to override the existing values.
*
*
* @param macAlgorithms
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
* This value is present only when the KeyUsage
of the KMS key is
* GENERATE_VERIFY_MAC
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MacAlgorithmSpec
*/
public KeyMetadata withMacAlgorithms(String... macAlgorithms) {
if (this.macAlgorithms == null) {
setMacAlgorithms(new com.amazonaws.internal.SdkInternalList(macAlgorithms.length));
}
for (String ele : macAlgorithms) {
this.macAlgorithms.add(ele);
}
return this;
}
/**
*
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
*
* This value is present only when the KeyUsage
of the KMS key is GENERATE_VERIFY_MAC
.
*
*
* @param macAlgorithms
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
* This value is present only when the KeyUsage
of the KMS key is
* GENERATE_VERIFY_MAC
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MacAlgorithmSpec
*/
public KeyMetadata withMacAlgorithms(java.util.Collection macAlgorithms) {
setMacAlgorithms(macAlgorithms);
return this;
}
/**
*
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
*
* This value is present only when the KeyUsage
of the KMS key is GENERATE_VERIFY_MAC
.
*
*
* @param macAlgorithms
* The message authentication code (MAC) algorithm that the HMAC KMS key supports.
*
* This value is present only when the KeyUsage
of the KMS key is
* GENERATE_VERIFY_MAC
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MacAlgorithmSpec
*/
public KeyMetadata withMacAlgorithms(MacAlgorithmSpec... macAlgorithms) {
com.amazonaws.internal.SdkInternalList macAlgorithmsCopy = new com.amazonaws.internal.SdkInternalList(macAlgorithms.length);
for (MacAlgorithmSpec value : macAlgorithms) {
macAlgorithmsCopy.add(value.toString());
}
if (getMacAlgorithms() == null) {
setMacAlgorithms(macAlgorithmsCopy);
} else {
getMacAlgorithms().addAll(macAlgorithmsCopy);
}
return this;
}
/**
*
* Information about the external key that is associated with a KMS key in an external key store.
*
*
* For more information, see External
* key in the Key Management Service Developer Guide.
*
*
* @param xksKeyConfiguration
* Information about the external key that is associated with a KMS key in an external key store.
*
* For more information, see External key in the Key Management Service Developer Guide.
*/
public void setXksKeyConfiguration(XksKeyConfigurationType xksKeyConfiguration) {
this.xksKeyConfiguration = xksKeyConfiguration;
}
/**
*
* Information about the external key that is associated with a KMS key in an external key store.
*
*
* For more information, see External
* key in the Key Management Service Developer Guide.
*
*
* @return Information about the external key that is associated with a KMS key in an external key store.
*
* For more information, see External key in the Key Management Service Developer Guide.
*/
public XksKeyConfigurationType getXksKeyConfiguration() {
return this.xksKeyConfiguration;
}
/**
*
* Information about the external key that is associated with a KMS key in an external key store.
*
*
* For more information, see External
* key in the Key Management Service Developer Guide.
*
*
* @param xksKeyConfiguration
* Information about the external key that is associated with a KMS key in an external key store.
*
* For more information, see External key in the Key Management Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KeyMetadata withXksKeyConfiguration(XksKeyConfigurationType xksKeyConfiguration) {
setXksKeyConfiguration(xksKeyConfiguration);
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 (getAWSAccountId() != null)
sb.append("AWSAccountId: ").append(getAWSAccountId()).append(",");
if (getKeyId() != null)
sb.append("KeyId: ").append(getKeyId()).append(",");
if (getArn() != null)
sb.append("Arn: ").append(getArn()).append(",");
if (getCreationDate() != null)
sb.append("CreationDate: ").append(getCreationDate()).append(",");
if (getEnabled() != null)
sb.append("Enabled: ").append(getEnabled()).append(",");
if (getDescription() != null)
sb.append("Description: ").append(getDescription()).append(",");
if (getKeyUsage() != null)
sb.append("KeyUsage: ").append(getKeyUsage()).append(",");
if (getKeyState() != null)
sb.append("KeyState: ").append(getKeyState()).append(",");
if (getDeletionDate() != null)
sb.append("DeletionDate: ").append(getDeletionDate()).append(",");
if (getValidTo() != null)
sb.append("ValidTo: ").append(getValidTo()).append(",");
if (getOrigin() != null)
sb.append("Origin: ").append(getOrigin()).append(",");
if (getCustomKeyStoreId() != null)
sb.append("CustomKeyStoreId: ").append(getCustomKeyStoreId()).append(",");
if (getCloudHsmClusterId() != null)
sb.append("CloudHsmClusterId: ").append(getCloudHsmClusterId()).append(",");
if (getExpirationModel() != null)
sb.append("ExpirationModel: ").append(getExpirationModel()).append(",");
if (getKeyManager() != null)
sb.append("KeyManager: ").append(getKeyManager()).append(",");
if (getCustomerMasterKeySpec() != null)
sb.append("CustomerMasterKeySpec: ").append(getCustomerMasterKeySpec()).append(",");
if (getKeySpec() != null)
sb.append("KeySpec: ").append(getKeySpec()).append(",");
if (getEncryptionAlgorithms() != null)
sb.append("EncryptionAlgorithms: ").append(getEncryptionAlgorithms()).append(",");
if (getSigningAlgorithms() != null)
sb.append("SigningAlgorithms: ").append(getSigningAlgorithms()).append(",");
if (getKeyAgreementAlgorithms() != null)
sb.append("KeyAgreementAlgorithms: ").append(getKeyAgreementAlgorithms()).append(",");
if (getMultiRegion() != null)
sb.append("MultiRegion: ").append(getMultiRegion()).append(",");
if (getMultiRegionConfiguration() != null)
sb.append("MultiRegionConfiguration: ").append(getMultiRegionConfiguration()).append(",");
if (getPendingDeletionWindowInDays() != null)
sb.append("PendingDeletionWindowInDays: ").append(getPendingDeletionWindowInDays()).append(",");
if (getMacAlgorithms() != null)
sb.append("MacAlgorithms: ").append(getMacAlgorithms()).append(",");
if (getXksKeyConfiguration() != null)
sb.append("XksKeyConfiguration: ").append(getXksKeyConfiguration());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof KeyMetadata == false)
return false;
KeyMetadata other = (KeyMetadata) obj;
if (other.getAWSAccountId() == null ^ this.getAWSAccountId() == null)
return false;
if (other.getAWSAccountId() != null && other.getAWSAccountId().equals(this.getAWSAccountId()) == false)
return false;
if (other.getKeyId() == null ^ this.getKeyId() == null)
return false;
if (other.getKeyId() != null && other.getKeyId().equals(this.getKeyId()) == false)
return false;
if (other.getArn() == null ^ this.getArn() == null)
return false;
if (other.getArn() != null && other.getArn().equals(this.getArn()) == false)
return false;
if (other.getCreationDate() == null ^ this.getCreationDate() == null)
return false;
if (other.getCreationDate() != null && other.getCreationDate().equals(this.getCreationDate()) == false)
return false;
if (other.getEnabled() == null ^ this.getEnabled() == null)
return false;
if (other.getEnabled() != null && other.getEnabled().equals(this.getEnabled()) == false)
return false;
if (other.getDescription() == null ^ this.getDescription() == null)
return false;
if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
return false;
if (other.getKeyUsage() == null ^ this.getKeyUsage() == null)
return false;
if (other.getKeyUsage() != null && other.getKeyUsage().equals(this.getKeyUsage()) == false)
return false;
if (other.getKeyState() == null ^ this.getKeyState() == null)
return false;
if (other.getKeyState() != null && other.getKeyState().equals(this.getKeyState()) == false)
return false;
if (other.getDeletionDate() == null ^ this.getDeletionDate() == null)
return false;
if (other.getDeletionDate() != null && other.getDeletionDate().equals(this.getDeletionDate()) == false)
return false;
if (other.getValidTo() == null ^ this.getValidTo() == null)
return false;
if (other.getValidTo() != null && other.getValidTo().equals(this.getValidTo()) == false)
return false;
if (other.getOrigin() == null ^ this.getOrigin() == null)
return false;
if (other.getOrigin() != null && other.getOrigin().equals(this.getOrigin()) == 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.getCloudHsmClusterId() == null ^ this.getCloudHsmClusterId() == null)
return false;
if (other.getCloudHsmClusterId() != null && other.getCloudHsmClusterId().equals(this.getCloudHsmClusterId()) == false)
return false;
if (other.getExpirationModel() == null ^ this.getExpirationModel() == null)
return false;
if (other.getExpirationModel() != null && other.getExpirationModel().equals(this.getExpirationModel()) == false)
return false;
if (other.getKeyManager() == null ^ this.getKeyManager() == null)
return false;
if (other.getKeyManager() != null && other.getKeyManager().equals(this.getKeyManager()) == false)
return false;
if (other.getCustomerMasterKeySpec() == null ^ this.getCustomerMasterKeySpec() == null)
return false;
if (other.getCustomerMasterKeySpec() != null && other.getCustomerMasterKeySpec().equals(this.getCustomerMasterKeySpec()) == false)
return false;
if (other.getKeySpec() == null ^ this.getKeySpec() == null)
return false;
if (other.getKeySpec() != null && other.getKeySpec().equals(this.getKeySpec()) == false)
return false;
if (other.getEncryptionAlgorithms() == null ^ this.getEncryptionAlgorithms() == null)
return false;
if (other.getEncryptionAlgorithms() != null && other.getEncryptionAlgorithms().equals(this.getEncryptionAlgorithms()) == false)
return false;
if (other.getSigningAlgorithms() == null ^ this.getSigningAlgorithms() == null)
return false;
if (other.getSigningAlgorithms() != null && other.getSigningAlgorithms().equals(this.getSigningAlgorithms()) == false)
return false;
if (other.getKeyAgreementAlgorithms() == null ^ this.getKeyAgreementAlgorithms() == null)
return false;
if (other.getKeyAgreementAlgorithms() != null && other.getKeyAgreementAlgorithms().equals(this.getKeyAgreementAlgorithms()) == false)
return false;
if (other.getMultiRegion() == null ^ this.getMultiRegion() == null)
return false;
if (other.getMultiRegion() != null && other.getMultiRegion().equals(this.getMultiRegion()) == false)
return false;
if (other.getMultiRegionConfiguration() == null ^ this.getMultiRegionConfiguration() == null)
return false;
if (other.getMultiRegionConfiguration() != null && other.getMultiRegionConfiguration().equals(this.getMultiRegionConfiguration()) == false)
return false;
if (other.getPendingDeletionWindowInDays() == null ^ this.getPendingDeletionWindowInDays() == null)
return false;
if (other.getPendingDeletionWindowInDays() != null && other.getPendingDeletionWindowInDays().equals(this.getPendingDeletionWindowInDays()) == false)
return false;
if (other.getMacAlgorithms() == null ^ this.getMacAlgorithms() == null)
return false;
if (other.getMacAlgorithms() != null && other.getMacAlgorithms().equals(this.getMacAlgorithms()) == false)
return false;
if (other.getXksKeyConfiguration() == null ^ this.getXksKeyConfiguration() == null)
return false;
if (other.getXksKeyConfiguration() != null && other.getXksKeyConfiguration().equals(this.getXksKeyConfiguration()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAWSAccountId() == null) ? 0 : getAWSAccountId().hashCode());
hashCode = prime * hashCode + ((getKeyId() == null) ? 0 : getKeyId().hashCode());
hashCode = prime * hashCode + ((getArn() == null) ? 0 : getArn().hashCode());
hashCode = prime * hashCode + ((getCreationDate() == null) ? 0 : getCreationDate().hashCode());
hashCode = prime * hashCode + ((getEnabled() == null) ? 0 : getEnabled().hashCode());
hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
hashCode = prime * hashCode + ((getKeyUsage() == null) ? 0 : getKeyUsage().hashCode());
hashCode = prime * hashCode + ((getKeyState() == null) ? 0 : getKeyState().hashCode());
hashCode = prime * hashCode + ((getDeletionDate() == null) ? 0 : getDeletionDate().hashCode());
hashCode = prime * hashCode + ((getValidTo() == null) ? 0 : getValidTo().hashCode());
hashCode = prime * hashCode + ((getOrigin() == null) ? 0 : getOrigin().hashCode());
hashCode = prime * hashCode + ((getCustomKeyStoreId() == null) ? 0 : getCustomKeyStoreId().hashCode());
hashCode = prime * hashCode + ((getCloudHsmClusterId() == null) ? 0 : getCloudHsmClusterId().hashCode());
hashCode = prime * hashCode + ((getExpirationModel() == null) ? 0 : getExpirationModel().hashCode());
hashCode = prime * hashCode + ((getKeyManager() == null) ? 0 : getKeyManager().hashCode());
hashCode = prime * hashCode + ((getCustomerMasterKeySpec() == null) ? 0 : getCustomerMasterKeySpec().hashCode());
hashCode = prime * hashCode + ((getKeySpec() == null) ? 0 : getKeySpec().hashCode());
hashCode = prime * hashCode + ((getEncryptionAlgorithms() == null) ? 0 : getEncryptionAlgorithms().hashCode());
hashCode = prime * hashCode + ((getSigningAlgorithms() == null) ? 0 : getSigningAlgorithms().hashCode());
hashCode = prime * hashCode + ((getKeyAgreementAlgorithms() == null) ? 0 : getKeyAgreementAlgorithms().hashCode());
hashCode = prime * hashCode + ((getMultiRegion() == null) ? 0 : getMultiRegion().hashCode());
hashCode = prime * hashCode + ((getMultiRegionConfiguration() == null) ? 0 : getMultiRegionConfiguration().hashCode());
hashCode = prime * hashCode + ((getPendingDeletionWindowInDays() == null) ? 0 : getPendingDeletionWindowInDays().hashCode());
hashCode = prime * hashCode + ((getMacAlgorithms() == null) ? 0 : getMacAlgorithms().hashCode());
hashCode = prime * hashCode + ((getXksKeyConfiguration() == null) ? 0 : getXksKeyConfiguration().hashCode());
return hashCode;
}
@Override
public KeyMetadata clone() {
try {
return (KeyMetadata) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.kms.model.transform.KeyMetadataMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}