All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.kms.model.CreateKeyRequest Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 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 com.amazonaws.AmazonWebServiceRequest;

/**
 * 
 */
public class CreateKeyRequest extends AmazonWebServiceRequest implements
        Serializable, Cloneable {

    /**
     * 

* The key policy to attach to the CMK. *

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey request to * make a subsequent PutKeyPolicy request on the CMK. This reduces * the likelihood that the CMK becomes unmanageable. For more information, * refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be visible to * AWS KMS. When you create a new AWS principal (for example, an IAM user or * role), you might need to enforce a delay before specifying the new * principal in a key policy because the new principal might not immediately * be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM * User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key policy to * the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer * Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). *

*/ private String policy; /** *

* A description of the CMK. *

*

* Use a description that helps you decide whether the CMK is appropriate * for a task. *

*/ private String description; /** *

* The intended use of the CMK. *

*

* You can use CMKs only for symmetric encryption and decryption. *

*/ private String keyUsage; /** *

* A flag to indicate whether to bypass the key policy lockout safety check. *

* *

* Setting this value to true increases the likelihood that the CMK becomes * unmanageable. Do not set this value to true indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request and you * intend to prevent the principal making the request from making a * subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. *

*/ private Boolean bypassPolicyLockoutSafetyCheck; /** *

* The key policy to attach to the CMK. *

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey request to * make a subsequent PutKeyPolicy request on the CMK. This reduces * the likelihood that the CMK becomes unmanageable. For more information, * refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be visible to * AWS KMS. When you create a new AWS principal (for example, an IAM user or * role), you might need to enforce a delay before specifying the new * principal in a key policy because the new principal might not immediately * be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM * User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key policy to * the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer * Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). *

* * @param policy * The key policy to attach to the CMK.

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey * request to make a subsequent PutKeyPolicy request on the * CMK. This reduces the likelihood that the CMK becomes * unmanageable. For more information, refer to the scenario in the * Default Key Policy section in the AWS Key Management * Service Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be * visible to AWS KMS. When you create a new AWS principal (for * example, an IAM user or role), you might need to enforce a delay * before specifying the new principal in a key policy because the * new principal might not immediately be visible to AWS KMS. For * more information, see Changes that I make are not always immediately visible in the * IAM User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key * policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service * Developer Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). */ public void setPolicy(String policy) { this.policy = policy; } /** *

* The key policy to attach to the CMK. *

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey request to * make a subsequent PutKeyPolicy request on the CMK. This reduces * the likelihood that the CMK becomes unmanageable. For more information, * refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be visible to * AWS KMS. When you create a new AWS principal (for example, an IAM user or * role), you might need to enforce a delay before specifying the new * principal in a key policy because the new principal might not immediately * be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM * User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key policy to * the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer * Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). *

* * @return The key policy to attach to the CMK.

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey * request to make a subsequent PutKeyPolicy request on the * CMK. This reduces the likelihood that the CMK becomes * unmanageable. For more information, refer to the scenario in the * Default Key Policy section in the AWS Key Management * Service Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be * visible to AWS KMS. When you create a new AWS principal (for * example, an IAM user or role), you might need to enforce a delay * before specifying the new principal in a key policy because the * new principal might not immediately be visible to AWS KMS. For * more information, see Changes that I make are not always immediately visible in * the IAM User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key * policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service * Developer Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). */ public String getPolicy() { return this.policy; } /** *

* The key policy to attach to the CMK. *

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey request to * make a subsequent PutKeyPolicy request on the CMK. This reduces * the likelihood that the CMK becomes unmanageable. For more information, * refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be visible to * AWS KMS. When you create a new AWS principal (for example, an IAM user or * role), you might need to enforce a delay before specifying the new * principal in a key policy because the new principal might not immediately * be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM * User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key policy to * the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer * Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). *

* * @param policy * The key policy to attach to the CMK.

*

* If you specify a key policy, it must meet the following criteria: *

*
    *
  • *

    * It must allow the principal making the CreateKey * request to make a subsequent PutKeyPolicy request on the * CMK. This reduces the likelihood that the CMK becomes * unmanageable. For more information, refer to the scenario in the * Default Key Policy section in the AWS Key Management * Service Developer Guide. *

    *
  • *
  • *

    * The principal(s) specified in the key policy must exist and be * visible to AWS KMS. When you create a new AWS principal (for * example, an IAM user or role), you might need to enforce a delay * before specifying the new principal in a key policy because the * new principal might not immediately be visible to AWS KMS. For * more information, see Changes that I make are not always immediately visible in the * IAM User Guide. *

    *
  • *
*

* If you do not specify a policy, AWS KMS attaches a default key * policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service * Developer Guide. *

*

* The policy size limit is 32 KiB (32768 bytes). * @return Returns a reference to this object so that method calls can be * chained together. */ public CreateKeyRequest withPolicy(String policy) { setPolicy(policy); return this; } /** *

* A description of the CMK. *

*

* Use a description that helps you decide whether the CMK is appropriate * for a task. *

* * @param description * A description of the CMK.

*

* Use a description that helps you decide whether the CMK is * appropriate for a task. */ public void setDescription(String description) { this.description = description; } /** *

* A description of the CMK. *

*

* Use a description that helps you decide whether the CMK is appropriate * for a task. *

* * @return A description of the CMK.

*

* Use a description that helps you decide whether the CMK is * appropriate for a task. */ public String getDescription() { return this.description; } /** *

* A description of the CMK. *

*

* Use a description that helps you decide whether the CMK is appropriate * for a task. *

* * @param description * A description of the CMK.

*

* Use a description that helps you decide whether the CMK is * appropriate for a task. * @return Returns a reference to this object so that method calls can be * chained together. */ public CreateKeyRequest withDescription(String description) { setDescription(description); return this; } /** *

* The intended use of the CMK. *

*

* You can use CMKs only for symmetric encryption and decryption. *

* * @param keyUsage * The intended use of the CMK.

*

* You can use CMKs only for symmetric encryption and decryption. * @see KeyUsageType */ public void setKeyUsage(String keyUsage) { this.keyUsage = keyUsage; } /** *

* The intended use of the CMK. *

*

* You can use CMKs only for symmetric encryption and decryption. *

* * @return The intended use of the CMK.

*

* You can use CMKs only for symmetric encryption and decryption. * @see KeyUsageType */ public String getKeyUsage() { return this.keyUsage; } /** *

* The intended use of the CMK. *

*

* You can use CMKs only for symmetric encryption and decryption. *

* * @param keyUsage * The intended use of the CMK.

*

* You can use CMKs only for symmetric encryption and decryption. * @return Returns a reference to this object so that method calls can be * chained together. * @see KeyUsageType */ public CreateKeyRequest withKeyUsage(String keyUsage) { setKeyUsage(keyUsage); return this; } /** *

* The intended use of the CMK. *

*

* You can use CMKs only for symmetric encryption and decryption. *

* * @param keyUsage * The intended use of the CMK.

*

* You can use CMKs only for symmetric encryption and decryption. * @see KeyUsageType */ public void setKeyUsage(KeyUsageType keyUsage) { this.keyUsage = keyUsage.toString(); } /** *

* The intended use of the CMK. *

*

* You can use CMKs only for symmetric encryption and decryption. *

* * @param keyUsage * The intended use of the CMK.

*

* You can use CMKs only for symmetric encryption and decryption. * @return Returns a reference to this object so that method calls can be * chained together. * @see KeyUsageType */ public CreateKeyRequest withKeyUsage(KeyUsageType keyUsage) { setKeyUsage(keyUsage); return this; } /** *

* A flag to indicate whether to bypass the key policy lockout safety check. *

* *

* Setting this value to true increases the likelihood that the CMK becomes * unmanageable. Do not set this value to true indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request and you * intend to prevent the principal making the request from making a * subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. *

* * @param bypassPolicyLockoutSafetyCheck * A flag to indicate whether to bypass the key policy lockout safety * check.

*

* Setting this value to true increases the likelihood that the CMK * becomes unmanageable. Do not set this value to true * indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management * Service Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request * and you intend to prevent the principal making the request from * making a subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. */ public void setBypassPolicyLockoutSafetyCheck( Boolean bypassPolicyLockoutSafetyCheck) { this.bypassPolicyLockoutSafetyCheck = bypassPolicyLockoutSafetyCheck; } /** *

* A flag to indicate whether to bypass the key policy lockout safety check. *

* *

* Setting this value to true increases the likelihood that the CMK becomes * unmanageable. Do not set this value to true indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request and you * intend to prevent the principal making the request from making a * subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. *

* * @return A flag to indicate whether to bypass the key policy lockout * safety check.

*

* Setting this value to true increases the likelihood that the CMK * becomes unmanageable. Do not set this value to true * indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management * Service Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request * and you intend to prevent the principal making the request from * making a subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. */ public Boolean getBypassPolicyLockoutSafetyCheck() { return this.bypassPolicyLockoutSafetyCheck; } /** *

* A flag to indicate whether to bypass the key policy lockout safety check. *

* *

* Setting this value to true increases the likelihood that the CMK becomes * unmanageable. Do not set this value to true indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request and you * intend to prevent the principal making the request from making a * subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. *

* * @param bypassPolicyLockoutSafetyCheck * A flag to indicate whether to bypass the key policy lockout safety * check.

*

* Setting this value to true increases the likelihood that the CMK * becomes unmanageable. Do not set this value to true * indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management * Service Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request * and you intend to prevent the principal making the request from * making a subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. * @return Returns a reference to this object so that method calls can be * chained together. */ public CreateKeyRequest withBypassPolicyLockoutSafetyCheck( Boolean bypassPolicyLockoutSafetyCheck) { setBypassPolicyLockoutSafetyCheck(bypassPolicyLockoutSafetyCheck); return this; } /** *

* A flag to indicate whether to bypass the key policy lockout safety check. *

* *

* Setting this value to true increases the likelihood that the CMK becomes * unmanageable. Do not set this value to true indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service * Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request and you * intend to prevent the principal making the request from making a * subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. *

* * @return A flag to indicate whether to bypass the key policy lockout * safety check.

*

* Setting this value to true increases the likelihood that the CMK * becomes unmanageable. Do not set this value to true * indiscriminately. *

*

* For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management * Service Developer Guide. *

*
*

* Use this parameter only when you include a policy in the request * and you intend to prevent the principal making the request from * making a subsequent PutKeyPolicy request on the CMK. *

*

* The default value is false. */ public Boolean isBypassPolicyLockoutSafetyCheck() { return this.bypassPolicyLockoutSafetyCheck; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getPolicy() != null) sb.append("Policy: " + getPolicy() + ","); if (getDescription() != null) sb.append("Description: " + getDescription() + ","); if (getKeyUsage() != null) sb.append("KeyUsage: " + getKeyUsage() + ","); if (getBypassPolicyLockoutSafetyCheck() != null) sb.append("BypassPolicyLockoutSafetyCheck: " + getBypassPolicyLockoutSafetyCheck()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateKeyRequest == false) return false; CreateKeyRequest other = (CreateKeyRequest) obj; if (other.getPolicy() == null ^ this.getPolicy() == null) return false; if (other.getPolicy() != null && other.getPolicy().equals(this.getPolicy()) == 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.getBypassPolicyLockoutSafetyCheck() == null ^ this.getBypassPolicyLockoutSafetyCheck() == null) return false; if (other.getBypassPolicyLockoutSafetyCheck() != null && other.getBypassPolicyLockoutSafetyCheck().equals( this.getBypassPolicyLockoutSafetyCheck()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getPolicy() == null) ? 0 : getPolicy().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getKeyUsage() == null) ? 0 : getKeyUsage().hashCode()); hashCode = prime * hashCode + ((getBypassPolicyLockoutSafetyCheck() == null) ? 0 : getBypassPolicyLockoutSafetyCheck().hashCode()); return hashCode; } @Override public CreateKeyRequest clone() { return (CreateKeyRequest) super.clone(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy