/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.customerprofiles.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateDomainRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The unique name of the domain. *

*/ private String domainName; /** *

* The default number of days until the data within the domain expires. *

*/ private Integer defaultExpirationDays; /** *

* The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is * specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. *

*/ private String defaultEncryptionKey; /** *

* The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from * third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable * Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. *

*/ private String deadLetterQueueUrl; /** *

* The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer * Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for * Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in * your domains. *

*

* After the Identity Resolution Job completes, use the GetMatches API to * return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. *

*/ private MatchingRequest matching; /** *

* The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = * true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your * configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and * GetSimilarProfiles API to return and review the results. Also, if you have configured * ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3. *

*/ private RuleBasedMatchingRequest ruleBasedMatching; /** *

* The tags used to organize, track, or control access for this resource. *

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

* The unique name of the domain. *

* * @param domainName * The unique name of the domain. */ public void setDomainName(String domainName) { this.domainName = domainName; } /** *

* The unique name of the domain. *

* * @return The unique name of the domain. */ public String getDomainName() { return this.domainName; } /** *

* The unique name of the domain. *

* * @param domainName * The unique name of the domain. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withDomainName(String domainName) { setDomainName(domainName); return this; } /** *

* The default number of days until the data within the domain expires. *

* * @param defaultExpirationDays * The default number of days until the data within the domain expires. */ public void setDefaultExpirationDays(Integer defaultExpirationDays) { this.defaultExpirationDays = defaultExpirationDays; } /** *

* The default number of days until the data within the domain expires. *

* * @return The default number of days until the data within the domain expires. */ public Integer getDefaultExpirationDays() { return this.defaultExpirationDays; } /** *

* The default number of days until the data within the domain expires. *

* * @param defaultExpirationDays * The default number of days until the data within the domain expires. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withDefaultExpirationDays(Integer defaultExpirationDays) { setDefaultExpirationDays(defaultExpirationDays); return this; } /** *

* The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is * specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. *

* * @param defaultEncryptionKey * The default encryption key, which is an AWS managed key, is used when no specific type of encryption key * is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. */ public void setDefaultEncryptionKey(String defaultEncryptionKey) { this.defaultEncryptionKey = defaultEncryptionKey; } /** *

* The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is * specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. *

* * @return The default encryption key, which is an AWS managed key, is used when no specific type of encryption key * is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. */ public String getDefaultEncryptionKey() { return this.defaultEncryptionKey; } /** *

* The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is * specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. *

* * @param defaultEncryptionKey * The default encryption key, which is an AWS managed key, is used when no specific type of encryption key * is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withDefaultEncryptionKey(String defaultEncryptionKey) { setDefaultEncryptionKey(defaultEncryptionKey); return this; } /** *

* The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from * third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable * Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. *

* * @param deadLetterQueueUrl * The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data * from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage * operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. */ public void setDeadLetterQueueUrl(String deadLetterQueueUrl) { this.deadLetterQueueUrl = deadLetterQueueUrl; } /** *

* The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from * third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable * Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. *

* * @return The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data * from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage * operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. */ public String getDeadLetterQueueUrl() { return this.deadLetterQueueUrl; } /** *

* The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from * third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable * Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. *

* * @param deadLetterQueueUrl * The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data * from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage * operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withDeadLetterQueueUrl(String deadLetterQueueUrl) { setDeadLetterQueueUrl(deadLetterQueueUrl); return this; } /** *

* The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer * Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for * Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in * your domains. *

*

* After the Identity Resolution Job completes, use the GetMatches API to * return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. *

* * @param matching * The process of matching duplicate profiles. If Matching = true, Amazon Connect * Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a * date and time for Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect * duplicate profiles in your domains.

*

* After the Identity Resolution Job completes, use the GetMatches * API to return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. */ public void setMatching(MatchingRequest matching) { this.matching = matching; } /** *

* The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer * Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for * Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in * your domains. *

*

* After the Identity Resolution Job completes, use the GetMatches API to * return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. *

* * @return The process of matching duplicate profiles. If Matching = true, Amazon Connect * Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a * date and time for Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect * duplicate profiles in your domains.

*

* After the Identity Resolution Job completes, use the GetMatches API to return and review the results. Or, if you have configured * ExportingConfig in the MatchingRequest, you can download the results from S3. */ public MatchingRequest getMatching() { return this.matching; } /** *

* The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer * Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for * Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in * your domains. *

*

* After the Identity Resolution Job completes, use the GetMatches API to * return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. *

* * @param matching * The process of matching duplicate profiles. If Matching = true, Amazon Connect * Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a * date and time for Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect * duplicate profiles in your domains.

*

* After the Identity Resolution Job completes, use the GetMatches * API to return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withMatching(MatchingRequest matching) { setMatching(matching); return this; } /** *

* The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = * true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your * configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and * GetSimilarProfiles API to return and review the results. Also, if you have configured * ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3. *

* * @param ruleBasedMatching * The process of matching duplicate profiles using the Rule-Based matching. If * RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your * profiles according to your configuration in the RuleBasedMatchingRequest. You can use the * ListRuleBasedMatches and GetSimilarProfiles API to return and review the * results. Also, if you have configured ExportingConfig in the * RuleBasedMatchingRequest, you can download the results from S3. */ public void setRuleBasedMatching(RuleBasedMatchingRequest ruleBasedMatching) { this.ruleBasedMatching = ruleBasedMatching; } /** *

* The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = * true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your * configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and * GetSimilarProfiles API to return and review the results. Also, if you have configured * ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3. *

* * @return The process of matching duplicate profiles using the Rule-Based matching. If * RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge * your profiles according to your configuration in the RuleBasedMatchingRequest. You can use * the ListRuleBasedMatches and GetSimilarProfiles API to return and review the * results. Also, if you have configured ExportingConfig in the * RuleBasedMatchingRequest, you can download the results from S3. */ public RuleBasedMatchingRequest getRuleBasedMatching() { return this.ruleBasedMatching; } /** *

* The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = * true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your * configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and * GetSimilarProfiles API to return and review the results. Also, if you have configured * ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3. *

* * @param ruleBasedMatching * The process of matching duplicate profiles using the Rule-Based matching. If * RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your * profiles according to your configuration in the RuleBasedMatchingRequest. You can use the * ListRuleBasedMatches and GetSimilarProfiles API to return and review the * results. Also, if you have configured ExportingConfig in the * RuleBasedMatchingRequest, you can download the results from S3. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withRuleBasedMatching(RuleBasedMatchingRequest ruleBasedMatching) { setRuleBasedMatching(ruleBasedMatching); return this; } /** *

* The tags used to organize, track, or control access for this resource. *

* * @return The tags used to organize, track, or control access for this resource. */ public java.util.Map getTags() { return tags; } /** *

* The tags used to organize, track, or control access for this resource. *

* * @param tags * The tags used to organize, track, or control access for this resource. */ public void setTags(java.util.Map tags) { this.tags = tags; } /** *

* The tags used to organize, track, or control access for this resource. *

* * @param tags * The tags used to organize, track, or control access for this resource. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest withTags(java.util.Map tags) { setTags(tags); return this; } /** * Add a single Tags entry * * @see CreateDomainRequest#withTags * @returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest addTagsEntry(String key, String value) { if (null == this.tags) { this.tags = new java.util.HashMap(); } if (this.tags.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.tags.put(key, value); return this; } /** * Removes all the entries added into Tags. * * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDomainRequest clearTagsEntries() { this.tags = null; 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 (getDomainName() != null) sb.append("DomainName: ").append(getDomainName()).append(","); if (getDefaultExpirationDays() != null) sb.append("DefaultExpirationDays: ").append(getDefaultExpirationDays()).append(","); if (getDefaultEncryptionKey() != null) sb.append("DefaultEncryptionKey: ").append(getDefaultEncryptionKey()).append(","); if (getDeadLetterQueueUrl() != null) sb.append("DeadLetterQueueUrl: ").append(getDeadLetterQueueUrl()).append(","); if (getMatching() != null) sb.append("Matching: ").append(getMatching()).append(","); if (getRuleBasedMatching() != null) sb.append("RuleBasedMatching: ").append(getRuleBasedMatching()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateDomainRequest == false) return false; CreateDomainRequest other = (CreateDomainRequest) obj; if (other.getDomainName() == null ^ this.getDomainName() == null) return false; if (other.getDomainName() != null && other.getDomainName().equals(this.getDomainName()) == false) return false; if (other.getDefaultExpirationDays() == null ^ this.getDefaultExpirationDays() == null) return false; if (other.getDefaultExpirationDays() != null && other.getDefaultExpirationDays().equals(this.getDefaultExpirationDays()) == false) return false; if (other.getDefaultEncryptionKey() == null ^ this.getDefaultEncryptionKey() == null) return false; if (other.getDefaultEncryptionKey() != null && other.getDefaultEncryptionKey().equals(this.getDefaultEncryptionKey()) == false) return false; if (other.getDeadLetterQueueUrl() == null ^ this.getDeadLetterQueueUrl() == null) return false; if (other.getDeadLetterQueueUrl() != null && other.getDeadLetterQueueUrl().equals(this.getDeadLetterQueueUrl()) == false) return false; if (other.getMatching() == null ^ this.getMatching() == null) return false; if (other.getMatching() != null && other.getMatching().equals(this.getMatching()) == false) return false; if (other.getRuleBasedMatching() == null ^ this.getRuleBasedMatching() == null) return false; if (other.getRuleBasedMatching() != null && other.getRuleBasedMatching().equals(this.getRuleBasedMatching()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getDomainName() == null) ? 0 : getDomainName().hashCode()); hashCode = prime * hashCode + ((getDefaultExpirationDays() == null) ? 0 : getDefaultExpirationDays().hashCode()); hashCode = prime * hashCode + ((getDefaultEncryptionKey() == null) ? 0 : getDefaultEncryptionKey().hashCode()); hashCode = prime * hashCode + ((getDeadLetterQueueUrl() == null) ? 0 : getDeadLetterQueueUrl().hashCode()); hashCode = prime * hashCode + ((getMatching() == null) ? 0 : getMatching().hashCode()); hashCode = prime * hashCode + ((getRuleBasedMatching() == null) ? 0 : getRuleBasedMatching().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); return hashCode; } @Override public CreateDomainRequest clone() { return (CreateDomainRequest) super.clone(); } }