/* * 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.connect.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *
* Creates a new routing profile. *
*/ public class CreateRoutingProfileRequest extends AmazonWebServiceRequest implements Serializable { /** ** The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *
*
* Constraints:
* Length: 1 - 100
*/
private String instanceId;
/**
*
* The name of the routing profile. Must not be more than 127 characters. *
*
* Constraints:
* Length: 1 - 127
*/
private String name;
/**
*
* Description of the routing profile. Must not be more than 250 characters. *
*
* Constraints:
* Length: 1 - 250
*/
private String description;
/**
*
* The default outbound queue for the routing profile. *
*/ private String defaultOutboundQueueId; /** ** The inbound queues associated with the routing profile. If no queue is * added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be passed during
* a CreateRoutingProfile API request. It is different from the quota of 50
* queues per routing profile per instance that is listed in Amazon Connect service quotas.
*
* The channels that agents can handle in the Contact Control Panel (CCP) * for this routing profile. *
*/ private java.util.List* The tags used to organize, track, or control access for this resource. * For example, { "tags": {"key1":"value1", "key2":"value2"} }. *
*/ private java.util.Map* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *
*
* Constraints:
* Length: 1 - 100
*
* @return
* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of * the instance. *
*/ public String getInstanceId() { return instanceId; } /** ** The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *
*
* Constraints:
* Length: 1 - 100
*
* @param instanceId
* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of * the instance. *
*/ public void setInstanceId(String instanceId) { this.instanceId = instanceId; } /** ** The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *
** Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Length: 1 - 100
*
* @param instanceId
* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of * the instance. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withInstanceId(String instanceId) { this.instanceId = instanceId; return this; } /** ** The name of the routing profile. Must not be more than 127 characters. *
*
* Constraints:
* Length: 1 - 127
*
* @return
* The name of the routing profile. Must not be more than 127 * characters. *
*/ public String getName() { return name; } /** ** The name of the routing profile. Must not be more than 127 characters. *
*
* Constraints:
* Length: 1 - 127
*
* @param name
* The name of the routing profile. Must not be more than 127 * characters. *
*/ public void setName(String name) { this.name = name; } /** ** The name of the routing profile. Must not be more than 127 characters. *
** Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Length: 1 - 127
*
* @param name
* The name of the routing profile. Must not be more than 127 * characters. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withName(String name) { this.name = name; return this; } /** ** Description of the routing profile. Must not be more than 250 characters. *
*
* Constraints:
* Length: 1 - 250
*
* @return
* Description of the routing profile. Must not be more than 250 * characters. *
*/ public String getDescription() { return description; } /** ** Description of the routing profile. Must not be more than 250 characters. *
*
* Constraints:
* Length: 1 - 250
*
* @param description
* Description of the routing profile. Must not be more than 250 * characters. *
*/ public void setDescription(String description) { this.description = description; } /** ** Description of the routing profile. Must not be more than 250 characters. *
** Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Length: 1 - 250
*
* @param description
* Description of the routing profile. Must not be more than 250 * characters. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withDescription(String description) { this.description = description; return this; } /** ** The default outbound queue for the routing profile. *
* * @return* The default outbound queue for the routing profile. *
*/ public String getDefaultOutboundQueueId() { return defaultOutboundQueueId; } /** ** The default outbound queue for the routing profile. *
* * @param defaultOutboundQueueId* The default outbound queue for the routing profile. *
*/ public void setDefaultOutboundQueueId(String defaultOutboundQueueId) { this.defaultOutboundQueueId = defaultOutboundQueueId; } /** ** The default outbound queue for the routing profile. *
** Returns a reference to this object so that method calls can be chained * together. * * @param defaultOutboundQueueId
* The default outbound queue for the routing profile. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withDefaultOutboundQueueId(String defaultOutboundQueueId) { this.defaultOutboundQueueId = defaultOutboundQueueId; return this; } /** ** The inbound queues associated with the routing profile. If no queue is * added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be passed during
* a CreateRoutingProfile API request. It is different from the quota of 50
* queues per routing profile per instance that is listed in Amazon Connect service quotas.
*
* The inbound queues associated with the routing profile. If no * queue is added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be passed
* during a CreateRoutingProfile API request. It is different from
* the quota of 50 queues per routing profile per instance that is
* listed in Amazon Connect service quotas.
*
* The inbound queues associated with the routing profile. If no queue is * added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be passed during
* a CreateRoutingProfile API request. It is different from the quota of 50
* queues per routing profile per instance that is listed in Amazon Connect service quotas.
*
* The inbound queues associated with the routing profile. If no * queue is added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be
* passed during a CreateRoutingProfile API request. It is
* different from the quota of 50 queues per routing profile per
* instance that is listed in Amazon Connect service quotas.
*
* The inbound queues associated with the routing profile. If no queue is * added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be passed during
* a CreateRoutingProfile API request. It is different from the quota of 50
* queues per routing profile per instance that is listed in Amazon Connect service quotas.
*
* Returns a reference to this object so that method calls can be chained * together. * * @param queueConfigs
* The inbound queues associated with the routing profile. If no * queue is added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be
* passed during a CreateRoutingProfile API request. It is
* different from the quota of 50 queues per routing profile per
* instance that is listed in Amazon Connect service quotas.
*
* The inbound queues associated with the routing profile. If no queue is * added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be passed during
* a CreateRoutingProfile API request. It is different from the quota of 50
* queues per routing profile per instance that is listed in Amazon Connect service quotas.
*
* Returns a reference to this object so that method calls can be chained * together. * * @param queueConfigs
* The inbound queues associated with the routing profile. If no * queue is added, the agent can make only outbound calls. *
*
* The limit of 10 array members applies to the maximum number of
* RoutingProfileQueueConfig
objects that can be
* passed during a CreateRoutingProfile API request. It is
* different from the quota of 50 queues per routing profile per
* instance that is listed in Amazon Connect service quotas.
*
* The channels that agents can handle in the Contact Control Panel (CCP) * for this routing profile. *
* * @return* The channels that agents can handle in the Contact Control Panel * (CCP) for this routing profile. *
*/ public java.util.List* The channels that agents can handle in the Contact Control Panel (CCP) * for this routing profile. *
* * @param mediaConcurrencies* The channels that agents can handle in the Contact Control * Panel (CCP) for this routing profile. *
*/ public void setMediaConcurrencies(java.util.Collection* The channels that agents can handle in the Contact Control Panel (CCP) * for this routing profile. *
** Returns a reference to this object so that method calls can be chained * together. * * @param mediaConcurrencies
* The channels that agents can handle in the Contact Control * Panel (CCP) for this routing profile. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withMediaConcurrencies( MediaConcurrency... mediaConcurrencies) { if (getMediaConcurrencies() == null) { this.mediaConcurrencies = new java.util.ArrayList* The channels that agents can handle in the Contact Control Panel (CCP) * for this routing profile. *
** Returns a reference to this object so that method calls can be chained * together. * * @param mediaConcurrencies
* The channels that agents can handle in the Contact Control * Panel (CCP) for this routing profile. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withMediaConcurrencies( java.util.Collection* The tags used to organize, track, or control access for this resource. * For example, { "tags": {"key1":"value1", "key2":"value2"} }. *
* * @return* The tags used to organize, track, or control access for this * resource. For example, { "tags": {"key1":"value1", * "key2":"value2"} }. *
*/ public java.util.Map* The tags used to organize, track, or control access for this resource. * For example, { "tags": {"key1":"value1", "key2":"value2"} }. *
* * @param tags* The tags used to organize, track, or control access for this * resource. For example, { "tags": {"key1":"value1", * "key2":"value2"} }. *
*/ public void setTags(java.util.Map* The tags used to organize, track, or control access for this resource. * For example, { "tags": {"key1":"value1", "key2":"value2"} }. *
** Returns a reference to this object so that method calls can be chained * together. * * @param tags
* The tags used to organize, track, or control access for this * resource. For example, { "tags": {"key1":"value1", * "key2":"value2"} }. *
* @return A reference to this updated object so that method calls can be * chained together. */ public CreateRoutingProfileRequest withTags(java.util.Map* The tags used to organize, track, or control access for this resource. * For example, { "tags": {"key1":"value1", "key2":"value2"} }. *
*
* The method adds a new key-value pair into Tags parameter, and returns a
* reference to this object so that method calls can be chained together.
*
* @param key The key of the entry to be added into Tags.
* @param value The corresponding value of the entry to be added into Tags.
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public CreateRoutingProfileRequest addTagsEntry(String key, String value) {
if (null == this.tags) {
this.tags = new java.util.HashMap
* Returns a reference to this object so that method calls can be chained
* together.
*/
public CreateRoutingProfileRequest clearTagsEntries() {
this.tags = null;
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 (getInstanceId() != null)
sb.append("InstanceId: " + getInstanceId() + ",");
if (getName() != null)
sb.append("Name: " + getName() + ",");
if (getDescription() != null)
sb.append("Description: " + getDescription() + ",");
if (getDefaultOutboundQueueId() != null)
sb.append("DefaultOutboundQueueId: " + getDefaultOutboundQueueId() + ",");
if (getQueueConfigs() != null)
sb.append("QueueConfigs: " + getQueueConfigs() + ",");
if (getMediaConcurrencies() != null)
sb.append("MediaConcurrencies: " + getMediaConcurrencies() + ",");
if (getTags() != null)
sb.append("Tags: " + getTags());
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getInstanceId() == null) ? 0 : getInstanceId().hashCode());
hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
hashCode = prime * hashCode
+ ((getDescription() == null) ? 0 : getDescription().hashCode());
hashCode = prime
* hashCode
+ ((getDefaultOutboundQueueId() == null) ? 0 : getDefaultOutboundQueueId()
.hashCode());
hashCode = prime * hashCode
+ ((getQueueConfigs() == null) ? 0 : getQueueConfigs().hashCode());
hashCode = prime * hashCode
+ ((getMediaConcurrencies() == null) ? 0 : getMediaConcurrencies().hashCode());
hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof CreateRoutingProfileRequest == false)
return false;
CreateRoutingProfileRequest other = (CreateRoutingProfileRequest) obj;
if (other.getInstanceId() == null ^ this.getInstanceId() == null)
return false;
if (other.getInstanceId() != null
&& other.getInstanceId().equals(this.getInstanceId()) == false)
return false;
if (other.getName() == null ^ this.getName() == null)
return false;
if (other.getName() != null && other.getName().equals(this.getName()) == 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.getDefaultOutboundQueueId() == null ^ this.getDefaultOutboundQueueId() == null)
return false;
if (other.getDefaultOutboundQueueId() != null
&& other.getDefaultOutboundQueueId().equals(this.getDefaultOutboundQueueId()) == false)
return false;
if (other.getQueueConfigs() == null ^ this.getQueueConfigs() == null)
return false;
if (other.getQueueConfigs() != null
&& other.getQueueConfigs().equals(this.getQueueConfigs()) == false)
return false;
if (other.getMediaConcurrencies() == null ^ this.getMediaConcurrencies() == null)
return false;
if (other.getMediaConcurrencies() != null
&& other.getMediaConcurrencies().equals(this.getMediaConcurrencies()) == 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;
}
}