/* * 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 SearchProfilesRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The pagination token from the previous SearchProfiles API call. *
*/ private String nextToken; /** ** The maximum number of objects returned per page. *
** The default is 20 if this parameter is not included in the request. *
*/ private Integer maxResults; /** ** The unique name of the domain. *
*/ private String domainName; /** ** A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, * _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, * _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, _zendeskExternalId, * _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId, * _shopifyOrderId. *
*/ private String keyName; /** ** A list of key values. *
*/ private java.util.List
* A list of AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used in
* conjunction with the LogicalOperator
and the required KeyName
and Values
* parameters to search for profiles that satisfy the search criteria.
*
* Relationship between all specified search keys that will be used to search for profiles. This includes the
* required KeyName
and Values
parameters as well as any key-value(s) pairs specified in
* the AdditionalSearchKeys
list.
*
* This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
*
* The pagination token from the previous SearchProfiles API call. *
* * @param nextToken * The pagination token from the previous SearchProfiles API call. */ public void setNextToken(String nextToken) { this.nextToken = nextToken; } /** ** The pagination token from the previous SearchProfiles API call. *
* * @return The pagination token from the previous SearchProfiles API call. */ public String getNextToken() { return this.nextToken; } /** ** The pagination token from the previous SearchProfiles API call. *
* * @param nextToken * The pagination token from the previous SearchProfiles API call. * @return Returns a reference to this object so that method calls can be chained together. */ public SearchProfilesRequest withNextToken(String nextToken) { setNextToken(nextToken); return this; } /** ** The maximum number of objects returned per page. *
** The default is 20 if this parameter is not included in the request. *
* * @param maxResults * The maximum number of objects returned per page. ** The default is 20 if this parameter is not included in the request. */ public void setMaxResults(Integer maxResults) { this.maxResults = maxResults; } /** *
* The maximum number of objects returned per page. *
** The default is 20 if this parameter is not included in the request. *
* * @return The maximum number of objects returned per page. ** The default is 20 if this parameter is not included in the request. */ public Integer getMaxResults() { return this.maxResults; } /** *
* The maximum number of objects returned per page. *
** The default is 20 if this parameter is not included in the request. *
* * @param maxResults * The maximum number of objects returned per page. ** The default is 20 if this parameter is not included in the request. * @return Returns a reference to this object so that method calls can be chained together. */ public SearchProfilesRequest withMaxResults(Integer maxResults) { setMaxResults(maxResults); return this; } /** *
* 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 SearchProfilesRequest withDomainName(String domainName) { setDomainName(domainName); return this; } /** ** A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, * _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, * _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, _zendeskExternalId, * _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId, * _shopifyOrderId. *
* * @param keyName * A searchable identifier of a customer profile. The predefined keys you can use to search include: * _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, * _marketoLeadId, _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, * _zendeskExternalId, _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, * _shopifyCustomerId, _shopifyOrderId. */ public void setKeyName(String keyName) { this.keyName = keyName; } /** ** A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, * _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, * _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, _zendeskExternalId, * _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId, * _shopifyOrderId. *
* * @return A searchable identifier of a customer profile. The predefined keys you can use to search include: * _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, * _marketoLeadId, _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, * _zendeskExternalId, _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, * _shopifyCustomerId, _shopifyOrderId. */ public String getKeyName() { return this.keyName; } /** ** A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, * _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, * _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, _zendeskExternalId, * _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId, * _shopifyOrderId. *
* * @param keyName * A searchable identifier of a customer profile. The predefined keys you can use to search include: * _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, * _marketoLeadId, _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, * _zendeskExternalId, _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, * _shopifyCustomerId, _shopifyOrderId. * @return Returns a reference to this object so that method calls can be chained together. */ public SearchProfilesRequest withKeyName(String keyName) { setKeyName(keyName); return this; } /** ** A list of key values. *
* * @return A list of key values. */ public java.util.List* A list of key values. *
* * @param values * A list of key values. */ public void setValues(java.util.Collection* A list of key values. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setValues(java.util.Collection)} or {@link #withValues(java.util.Collection)} if you want to override the * existing values. *
* * @param values * A list of key values. * @return Returns a reference to this object so that method calls can be chained together. */ public SearchProfilesRequest withValues(String... values) { if (this.values == null) { setValues(new java.util.ArrayList* A list of key values. *
* * @param values * A list of key values. * @return Returns a reference to this object so that method calls can be chained together. */ public SearchProfilesRequest withValues(java.util.Collection
* A list of AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used in
* conjunction with the LogicalOperator
and the required KeyName
and Values
* parameters to search for profiles that satisfy the search criteria.
*
AdditionalSearchKey
objects that are each searchable identifiers of a profile.
* Each AdditionalSearchKey
object contains a KeyName
and a list of
* Values
associated with that specific key (i.e., a key-value(s) pair). These additional
* search keys will be used in conjunction with the LogicalOperator
and the required
* KeyName
and Values
parameters to search for profiles that satisfy the search
* criteria.
*/
public java.util.List
* A list of AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used in
* conjunction with the LogicalOperator
and the required KeyName
and Values
* parameters to search for profiles that satisfy the search criteria.
*
AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used
* in conjunction with the LogicalOperator
and the required KeyName
and
* Values
parameters to search for profiles that satisfy the search criteria.
*/
public void setAdditionalSearchKeys(java.util.Collection
* A list of AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used in
* conjunction with the LogicalOperator
and the required KeyName
and Values
* parameters to search for profiles that satisfy the search criteria.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAdditionalSearchKeys(java.util.Collection)} or {@link #withAdditionalSearchKeys(java.util.Collection)} * if you want to override the existing values. *
* * @param additionalSearchKeys * A list ofAdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used
* in conjunction with the LogicalOperator
and the required KeyName
and
* Values
parameters to search for profiles that satisfy the search criteria.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SearchProfilesRequest withAdditionalSearchKeys(AdditionalSearchKey... additionalSearchKeys) {
if (this.additionalSearchKeys == null) {
setAdditionalSearchKeys(new java.util.ArrayList
* A list of AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used in
* conjunction with the LogicalOperator
and the required KeyName
and Values
* parameters to search for profiles that satisfy the search criteria.
*
AdditionalSearchKey
objects that are each searchable identifiers of a profile. Each
* AdditionalSearchKey
object contains a KeyName
and a list of Values
* associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used
* in conjunction with the LogicalOperator
and the required KeyName
and
* Values
parameters to search for profiles that satisfy the search criteria.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SearchProfilesRequest withAdditionalSearchKeys(java.util.Collection
* Relationship between all specified search keys that will be used to search for profiles. This includes the
* required KeyName
and Values
parameters as well as any key-value(s) pairs specified in
* the AdditionalSearchKeys
list.
*
* This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
*
KeyName
and Values
parameters as well as any key-value(s) pairs
* specified in the AdditionalSearchKeys
list.
* * This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
* @see LogicalOperator
*/
public void setLogicalOperator(String logicalOperator) {
this.logicalOperator = logicalOperator;
}
/**
*
* Relationship between all specified search keys that will be used to search for profiles. This includes the
* required KeyName
and Values
parameters as well as any key-value(s) pairs specified in
* the AdditionalSearchKeys
list.
*
* This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
*
KeyName
and Values
parameters as well as any key-value(s) pairs
* specified in the AdditionalSearchKeys
list.
* * This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the
* request.
* @see LogicalOperator
*/
public String getLogicalOperator() {
return this.logicalOperator;
}
/**
*
* Relationship between all specified search keys that will be used to search for profiles. This includes the
* required KeyName
and Values
parameters as well as any key-value(s) pairs specified in
* the AdditionalSearchKeys
list.
*
* This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
*
KeyName
and Values
parameters as well as any key-value(s) pairs
* specified in the AdditionalSearchKeys
list.
* * This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
* @return Returns a reference to this object so that method calls can be chained together.
* @see LogicalOperator
*/
public SearchProfilesRequest withLogicalOperator(String logicalOperator) {
setLogicalOperator(logicalOperator);
return this;
}
/**
*
* Relationship between all specified search keys that will be used to search for profiles. This includes the
* required KeyName
and Values
parameters as well as any key-value(s) pairs specified in
* the AdditionalSearchKeys
list.
*
* This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
*
KeyName
and Values
parameters as well as any key-value(s) pairs
* specified in the AdditionalSearchKeys
list.
* * This parameter influences which profiles will be returned in the response in the following manner: *
*
* AND
- The response only includes profiles that match all of the search keys.
*
* OR
- The response includes profiles that match at least one of the search keys.
*
* The OR
relationship is the default behavior if this parameter is not included in the request.
* @return Returns a reference to this object so that method calls can be chained together.
* @see LogicalOperator
*/
public SearchProfilesRequest withLogicalOperator(LogicalOperator logicalOperator) {
this.logicalOperator = logicalOperator.toString();
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 (getNextToken() != null)
sb.append("NextToken: ").append(getNextToken()).append(",");
if (getMaxResults() != null)
sb.append("MaxResults: ").append(getMaxResults()).append(",");
if (getDomainName() != null)
sb.append("DomainName: ").append(getDomainName()).append(",");
if (getKeyName() != null)
sb.append("KeyName: ").append(getKeyName()).append(",");
if (getValues() != null)
sb.append("Values: ").append(getValues()).append(",");
if (getAdditionalSearchKeys() != null)
sb.append("AdditionalSearchKeys: ").append(getAdditionalSearchKeys()).append(",");
if (getLogicalOperator() != null)
sb.append("LogicalOperator: ").append(getLogicalOperator());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof SearchProfilesRequest == false)
return false;
SearchProfilesRequest other = (SearchProfilesRequest) obj;
if (other.getNextToken() == null ^ this.getNextToken() == null)
return false;
if (other.getNextToken() != null && other.getNextToken().equals(this.getNextToken()) == false)
return false;
if (other.getMaxResults() == null ^ this.getMaxResults() == null)
return false;
if (other.getMaxResults() != null && other.getMaxResults().equals(this.getMaxResults()) == false)
return false;
if (other.getDomainName() == null ^ this.getDomainName() == null)
return false;
if (other.getDomainName() != null && other.getDomainName().equals(this.getDomainName()) == false)
return false;
if (other.getKeyName() == null ^ this.getKeyName() == null)
return false;
if (other.getKeyName() != null && other.getKeyName().equals(this.getKeyName()) == false)
return false;
if (other.getValues() == null ^ this.getValues() == null)
return false;
if (other.getValues() != null && other.getValues().equals(this.getValues()) == false)
return false;
if (other.getAdditionalSearchKeys() == null ^ this.getAdditionalSearchKeys() == null)
return false;
if (other.getAdditionalSearchKeys() != null && other.getAdditionalSearchKeys().equals(this.getAdditionalSearchKeys()) == false)
return false;
if (other.getLogicalOperator() == null ^ this.getLogicalOperator() == null)
return false;
if (other.getLogicalOperator() != null && other.getLogicalOperator().equals(this.getLogicalOperator()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
hashCode = prime * hashCode + ((getMaxResults() == null) ? 0 : getMaxResults().hashCode());
hashCode = prime * hashCode + ((getDomainName() == null) ? 0 : getDomainName().hashCode());
hashCode = prime * hashCode + ((getKeyName() == null) ? 0 : getKeyName().hashCode());
hashCode = prime * hashCode + ((getValues() == null) ? 0 : getValues().hashCode());
hashCode = prime * hashCode + ((getAdditionalSearchKeys() == null) ? 0 : getAdditionalSearchKeys().hashCode());
hashCode = prime * hashCode + ((getLogicalOperator() == null) ? 0 : getLogicalOperator().hashCode());
return hashCode;
}
@Override
public SearchProfilesRequest clone() {
return (SearchProfilesRequest) super.clone();
}
}