/* * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.iot.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *

* Creates a provisioning template. *

*

* Requires permission to access the CreateProvisioningTemplate action. *

*/ public class CreateProvisioningTemplateRequest extends AmazonWebServiceRequest implements Serializable { /** *

* The name of the provisioning template. *

*

* Constraints:
* Length: 1 - 36
* Pattern: ^[0-9A-Za-z_-]+$
*/ private String templateName; /** *

* The description of the provisioning template. *

*

* Constraints:
* Length: 0 - 500
* Pattern: [^\p{C}]*
*/ private String description; /** *

* The JSON formatted contents of the provisioning template. *

*

* Constraints:
* Length: 0 - 10240
* Pattern: [\s\S]*
*/ private String templateBody; /** *

* True to enable the provisioning template, otherwise false. *

*/ private Boolean enabled; /** *

* The role ARN for the role associated with the provisioning template. This * IoT role grants permission to provision a device. *

*

* Constraints:
* Length: 20 - 2048
*/ private String provisioningRoleArn; /** *

* Creates a pre-provisioning hook template. Only supports template of type * FLEET_PROVISIONING. For more information about provisioning * template types, see type. *

*/ private ProvisioningHook preProvisioningHook; /** *

* Metadata which can be used to manage the provisioning template. *

* *

* For URI Request parameters use format: ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
*/ private java.util.List tags; /** *

* The type you define in a provisioning template. You can create a template * with only one type. You can't change the template type after its * creation. The default value is FLEET_PROVISIONING. For more * information about provisioning template, see: Provisioning template. *

*

* Constraints:
* Allowed Values: FLEET_PROVISIONING, JITP */ private String type; /** *

* The name of the provisioning template. *

*

* Constraints:
* Length: 1 - 36
* Pattern: ^[0-9A-Za-z_-]+$
* * @return

* The name of the provisioning template. *

*/ public String getTemplateName() { return templateName; } /** *

* The name of the provisioning template. *

*

* Constraints:
* Length: 1 - 36
* Pattern: ^[0-9A-Za-z_-]+$
* * @param templateName

* The name of the provisioning template. *

*/ public void setTemplateName(String templateName) { this.templateName = templateName; } /** *

* The name of the provisioning template. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 36
* Pattern: ^[0-9A-Za-z_-]+$
* * @param templateName

* The name of the provisioning template. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withTemplateName(String templateName) { this.templateName = templateName; return this; } /** *

* The description of the provisioning template. *

*

* Constraints:
* Length: 0 - 500
* Pattern: [^\p{C}]*
* * @return

* The description of the provisioning template. *

*/ public String getDescription() { return description; } /** *

* The description of the provisioning template. *

*

* Constraints:
* Length: 0 - 500
* Pattern: [^\p{C}]*
* * @param description

* The description of the provisioning template. *

*/ public void setDescription(String description) { this.description = description; } /** *

* The description of the provisioning template. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 0 - 500
* Pattern: [^\p{C}]*
* * @param description

* The description of the provisioning template. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withDescription(String description) { this.description = description; return this; } /** *

* The JSON formatted contents of the provisioning template. *

*

* Constraints:
* Length: 0 - 10240
* Pattern: [\s\S]*
* * @return

* The JSON formatted contents of the provisioning template. *

*/ public String getTemplateBody() { return templateBody; } /** *

* The JSON formatted contents of the provisioning template. *

*

* Constraints:
* Length: 0 - 10240
* Pattern: [\s\S]*
* * @param templateBody

* The JSON formatted contents of the provisioning template. *

*/ public void setTemplateBody(String templateBody) { this.templateBody = templateBody; } /** *

* The JSON formatted contents of the provisioning template. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 0 - 10240
* Pattern: [\s\S]*
* * @param templateBody

* The JSON formatted contents of the provisioning template. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withTemplateBody(String templateBody) { this.templateBody = templateBody; return this; } /** *

* True to enable the provisioning template, otherwise false. *

* * @return

* True to enable the provisioning template, otherwise false. *

*/ public Boolean isEnabled() { return enabled; } /** *

* True to enable the provisioning template, otherwise false. *

* * @return

* True to enable the provisioning template, otherwise false. *

*/ public Boolean getEnabled() { return enabled; } /** *

* True to enable the provisioning template, otherwise false. *

* * @param enabled

* True to enable the provisioning template, otherwise false. *

*/ public void setEnabled(Boolean enabled) { this.enabled = enabled; } /** *

* True to enable the provisioning template, otherwise false. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param enabled

* True to enable the provisioning template, otherwise false. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withEnabled(Boolean enabled) { this.enabled = enabled; return this; } /** *

* The role ARN for the role associated with the provisioning template. This * IoT role grants permission to provision a device. *

*

* Constraints:
* Length: 20 - 2048
* * @return

* The role ARN for the role associated with the provisioning * template. This IoT role grants permission to provision a device. *

*/ public String getProvisioningRoleArn() { return provisioningRoleArn; } /** *

* The role ARN for the role associated with the provisioning template. This * IoT role grants permission to provision a device. *

*

* Constraints:
* Length: 20 - 2048
* * @param provisioningRoleArn

* The role ARN for the role associated with the provisioning * template. This IoT role grants permission to provision a * device. *

*/ public void setProvisioningRoleArn(String provisioningRoleArn) { this.provisioningRoleArn = provisioningRoleArn; } /** *

* The role ARN for the role associated with the provisioning template. This * IoT role grants permission to provision a device. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 20 - 2048
* * @param provisioningRoleArn

* The role ARN for the role associated with the provisioning * template. This IoT role grants permission to provision a * device. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withProvisioningRoleArn(String provisioningRoleArn) { this.provisioningRoleArn = provisioningRoleArn; return this; } /** *

* Creates a pre-provisioning hook template. Only supports template of type * FLEET_PROVISIONING. For more information about provisioning * template types, see type. *

* * @return

* Creates a pre-provisioning hook template. Only supports template * of type FLEET_PROVISIONING. For more information * about provisioning template types, see type. *

*/ public ProvisioningHook getPreProvisioningHook() { return preProvisioningHook; } /** *

* Creates a pre-provisioning hook template. Only supports template of type * FLEET_PROVISIONING. For more information about provisioning * template types, see type. *

* * @param preProvisioningHook

* Creates a pre-provisioning hook template. Only supports * template of type FLEET_PROVISIONING. For more * information about provisioning template types, see type. *

*/ public void setPreProvisioningHook(ProvisioningHook preProvisioningHook) { this.preProvisioningHook = preProvisioningHook; } /** *

* Creates a pre-provisioning hook template. Only supports template of type * FLEET_PROVISIONING. For more information about provisioning * template types, see type. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param preProvisioningHook

* Creates a pre-provisioning hook template. Only supports * template of type FLEET_PROVISIONING. For more * information about provisioning template types, see type. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withPreProvisioningHook( ProvisioningHook preProvisioningHook) { this.preProvisioningHook = preProvisioningHook; return this; } /** *

* Metadata which can be used to manage the provisioning template. *

* *

* For URI Request parameters use format: ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
* * @return

* Metadata which can be used to manage the provisioning template. *

* *

* For URI Request parameters use format: * ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
*/ public java.util.List getTags() { return tags; } /** *

* Metadata which can be used to manage the provisioning template. *

* *

* For URI Request parameters use format: ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
* * @param tags

* Metadata which can be used to manage the provisioning * template. *

* *

* For URI Request parameters use format: * ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
*/ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(tags); } /** *

* Metadata which can be used to manage the provisioning template. *

* *

* For URI Request parameters use format: ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param tags

* Metadata which can be used to manage the provisioning * template. *

* *

* For URI Request parameters use format: * ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withTags(Tag... tags) { if (getTags() == null) { this.tags = new java.util.ArrayList(tags.length); } for (Tag value : tags) { this.tags.add(value); } return this; } /** *

* Metadata which can be used to manage the provisioning template. *

* *

* For URI Request parameters use format: ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param tags

* Metadata which can be used to manage the provisioning * template. *

* *

* For URI Request parameters use format: * ...key1=value1&key2=value2... *

*

* For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..." *

*

* For the cli-input-json file use format: "tags": * "key1=value1&key2=value2..." *

*
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateProvisioningTemplateRequest withTags(java.util.Collection tags) { setTags(tags); return this; } /** *

* The type you define in a provisioning template. You can create a template * with only one type. You can't change the template type after its * creation. The default value is FLEET_PROVISIONING. For more * information about provisioning template, see: Provisioning template. *

*

* Constraints:
* Allowed Values: FLEET_PROVISIONING, JITP * * @return

* The type you define in a provisioning template. You can create a * template with only one type. You can't change the template type * after its creation. The default value is * FLEET_PROVISIONING. For more information about * provisioning template, see: Provisioning template. *

* @see TemplateType */ public String getType() { return type; } /** *

* The type you define in a provisioning template. You can create a template * with only one type. You can't change the template type after its * creation. The default value is FLEET_PROVISIONING. For more * information about provisioning template, see: Provisioning template. *

*

* Constraints:
* Allowed Values: FLEET_PROVISIONING, JITP * * @param type

* The type you define in a provisioning template. You can create * a template with only one type. You can't change the template * type after its creation. The default value is * FLEET_PROVISIONING. For more information about * provisioning template, see: Provisioning template. *

* @see TemplateType */ public void setType(String type) { this.type = type; } /** *

* The type you define in a provisioning template. You can create a template * with only one type. You can't change the template type after its * creation. The default value is FLEET_PROVISIONING. For more * information about provisioning template, see: Provisioning template. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: FLEET_PROVISIONING, JITP * * @param type

* The type you define in a provisioning template. You can create * a template with only one type. You can't change the template * type after its creation. The default value is * FLEET_PROVISIONING. For more information about * provisioning template, see: Provisioning template. *

* @return A reference to this updated object so that method calls can be * chained together. * @see TemplateType */ public CreateProvisioningTemplateRequest withType(String type) { this.type = type; return this; } /** *

* The type you define in a provisioning template. You can create a template * with only one type. You can't change the template type after its * creation. The default value is FLEET_PROVISIONING. For more * information about provisioning template, see: Provisioning template. *

*

* Constraints:
* Allowed Values: FLEET_PROVISIONING, JITP * * @param type

* The type you define in a provisioning template. You can create * a template with only one type. You can't change the template * type after its creation. The default value is * FLEET_PROVISIONING. For more information about * provisioning template, see: Provisioning template. *

* @see TemplateType */ public void setType(TemplateType type) { this.type = type.toString(); } /** *

* The type you define in a provisioning template. You can create a template * with only one type. You can't change the template type after its * creation. The default value is FLEET_PROVISIONING. For more * information about provisioning template, see: Provisioning template. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: FLEET_PROVISIONING, JITP * * @param type

* The type you define in a provisioning template. You can create * a template with only one type. You can't change the template * type after its creation. The default value is * FLEET_PROVISIONING. For more information about * provisioning template, see: Provisioning template. *

* @return A reference to this updated object so that method calls can be * chained together. * @see TemplateType */ public CreateProvisioningTemplateRequest withType(TemplateType type) { this.type = type.toString(); return this; } /** * 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 (getTemplateName() != null) sb.append("templateName: " + getTemplateName() + ","); if (getDescription() != null) sb.append("description: " + getDescription() + ","); if (getTemplateBody() != null) sb.append("templateBody: " + getTemplateBody() + ","); if (getEnabled() != null) sb.append("enabled: " + getEnabled() + ","); if (getProvisioningRoleArn() != null) sb.append("provisioningRoleArn: " + getProvisioningRoleArn() + ","); if (getPreProvisioningHook() != null) sb.append("preProvisioningHook: " + getPreProvisioningHook() + ","); if (getTags() != null) sb.append("tags: " + getTags() + ","); if (getType() != null) sb.append("type: " + getType()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getTemplateName() == null) ? 0 : getTemplateName().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getTemplateBody() == null) ? 0 : getTemplateBody().hashCode()); hashCode = prime * hashCode + ((getEnabled() == null) ? 0 : getEnabled().hashCode()); hashCode = prime * hashCode + ((getProvisioningRoleArn() == null) ? 0 : getProvisioningRoleArn().hashCode()); hashCode = prime * hashCode + ((getPreProvisioningHook() == null) ? 0 : getPreProvisioningHook().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateProvisioningTemplateRequest == false) return false; CreateProvisioningTemplateRequest other = (CreateProvisioningTemplateRequest) obj; if (other.getTemplateName() == null ^ this.getTemplateName() == null) return false; if (other.getTemplateName() != null && other.getTemplateName().equals(this.getTemplateName()) == 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.getTemplateBody() == null ^ this.getTemplateBody() == null) return false; if (other.getTemplateBody() != null && other.getTemplateBody().equals(this.getTemplateBody()) == 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.getProvisioningRoleArn() == null ^ this.getProvisioningRoleArn() == null) return false; if (other.getProvisioningRoleArn() != null && other.getProvisioningRoleArn().equals(this.getProvisioningRoleArn()) == false) return false; if (other.getPreProvisioningHook() == null ^ this.getPreProvisioningHook() == null) return false; if (other.getPreProvisioningHook() != null && other.getPreProvisioningHook().equals(this.getPreProvisioningHook()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getType() == null ^ this.getType() == null) return false; if (other.getType() != null && other.getType().equals(this.getType()) == false) return false; return true; } }