/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Connect { namespace Model { /** *

Contains information about a routing profile.

See Also:

AWS * API Reference

*/ class RoutingProfile { public: AWS_CONNECT_API RoutingProfile(); AWS_CONNECT_API RoutingProfile(Aws::Utils::Json::JsonView jsonValue); AWS_CONNECT_API RoutingProfile& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CONNECT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline RoutingProfile& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline RoutingProfile& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline RoutingProfile& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

The name of the routing profile.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the routing profile.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the routing profile.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the routing profile.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the routing profile.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the routing profile.

*/ inline RoutingProfile& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the routing profile.

*/ inline RoutingProfile& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the routing profile.

*/ inline RoutingProfile& WithName(const char* value) { SetName(value); return *this;} /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline const Aws::String& GetRoutingProfileArn() const{ return m_routingProfileArn; } /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline bool RoutingProfileArnHasBeenSet() const { return m_routingProfileArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline void SetRoutingProfileArn(const Aws::String& value) { m_routingProfileArnHasBeenSet = true; m_routingProfileArn = value; } /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline void SetRoutingProfileArn(Aws::String&& value) { m_routingProfileArnHasBeenSet = true; m_routingProfileArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline void SetRoutingProfileArn(const char* value) { m_routingProfileArnHasBeenSet = true; m_routingProfileArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline RoutingProfile& WithRoutingProfileArn(const Aws::String& value) { SetRoutingProfileArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline RoutingProfile& WithRoutingProfileArn(Aws::String&& value) { SetRoutingProfileArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the routing profile.

*/ inline RoutingProfile& WithRoutingProfileArn(const char* value) { SetRoutingProfileArn(value); return *this;} /** *

The identifier of the routing profile.

*/ inline const Aws::String& GetRoutingProfileId() const{ return m_routingProfileId; } /** *

The identifier of the routing profile.

*/ inline bool RoutingProfileIdHasBeenSet() const { return m_routingProfileIdHasBeenSet; } /** *

The identifier of the routing profile.

*/ inline void SetRoutingProfileId(const Aws::String& value) { m_routingProfileIdHasBeenSet = true; m_routingProfileId = value; } /** *

The identifier of the routing profile.

*/ inline void SetRoutingProfileId(Aws::String&& value) { m_routingProfileIdHasBeenSet = true; m_routingProfileId = std::move(value); } /** *

The identifier of the routing profile.

*/ inline void SetRoutingProfileId(const char* value) { m_routingProfileIdHasBeenSet = true; m_routingProfileId.assign(value); } /** *

The identifier of the routing profile.

*/ inline RoutingProfile& WithRoutingProfileId(const Aws::String& value) { SetRoutingProfileId(value); return *this;} /** *

The identifier of the routing profile.

*/ inline RoutingProfile& WithRoutingProfileId(Aws::String&& value) { SetRoutingProfileId(std::move(value)); return *this;} /** *

The identifier of the routing profile.

*/ inline RoutingProfile& WithRoutingProfileId(const char* value) { SetRoutingProfileId(value); return *this;} /** *

The description of the routing profile.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the routing profile.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the routing profile.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the routing profile.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the routing profile.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the routing profile.

*/ inline RoutingProfile& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the routing profile.

*/ inline RoutingProfile& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the routing profile.

*/ inline RoutingProfile& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline const Aws::Vector& GetMediaConcurrencies() const{ return m_mediaConcurrencies; } /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline bool MediaConcurrenciesHasBeenSet() const { return m_mediaConcurrenciesHasBeenSet; } /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline void SetMediaConcurrencies(const Aws::Vector& value) { m_mediaConcurrenciesHasBeenSet = true; m_mediaConcurrencies = value; } /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline void SetMediaConcurrencies(Aws::Vector&& value) { m_mediaConcurrenciesHasBeenSet = true; m_mediaConcurrencies = std::move(value); } /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline RoutingProfile& WithMediaConcurrencies(const Aws::Vector& value) { SetMediaConcurrencies(value); return *this;} /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline RoutingProfile& WithMediaConcurrencies(Aws::Vector&& value) { SetMediaConcurrencies(std::move(value)); return *this;} /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline RoutingProfile& AddMediaConcurrencies(const MediaConcurrency& value) { m_mediaConcurrenciesHasBeenSet = true; m_mediaConcurrencies.push_back(value); return *this; } /** *

The channels agents can handle in the Contact Control Panel (CCP) for this * routing profile.

*/ inline RoutingProfile& AddMediaConcurrencies(MediaConcurrency&& value) { m_mediaConcurrenciesHasBeenSet = true; m_mediaConcurrencies.push_back(std::move(value)); return *this; } /** *

The identifier of the default outbound queue for this routing profile.

*/ inline const Aws::String& GetDefaultOutboundQueueId() const{ return m_defaultOutboundQueueId; } /** *

The identifier of the default outbound queue for this routing profile.

*/ inline bool DefaultOutboundQueueIdHasBeenSet() const { return m_defaultOutboundQueueIdHasBeenSet; } /** *

The identifier of the default outbound queue for this routing profile.

*/ inline void SetDefaultOutboundQueueId(const Aws::String& value) { m_defaultOutboundQueueIdHasBeenSet = true; m_defaultOutboundQueueId = value; } /** *

The identifier of the default outbound queue for this routing profile.

*/ inline void SetDefaultOutboundQueueId(Aws::String&& value) { m_defaultOutboundQueueIdHasBeenSet = true; m_defaultOutboundQueueId = std::move(value); } /** *

The identifier of the default outbound queue for this routing profile.

*/ inline void SetDefaultOutboundQueueId(const char* value) { m_defaultOutboundQueueIdHasBeenSet = true; m_defaultOutboundQueueId.assign(value); } /** *

The identifier of the default outbound queue for this routing profile.

*/ inline RoutingProfile& WithDefaultOutboundQueueId(const Aws::String& value) { SetDefaultOutboundQueueId(value); return *this;} /** *

The identifier of the default outbound queue for this routing profile.

*/ inline RoutingProfile& WithDefaultOutboundQueueId(Aws::String&& value) { SetDefaultOutboundQueueId(std::move(value)); return *this;} /** *

The identifier of the default outbound queue for this routing profile.

*/ inline RoutingProfile& WithDefaultOutboundQueueId(const char* value) { SetDefaultOutboundQueueId(value); return *this;} /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags used to organize, track, or control access for this resource. For * example, { "tags": {"key1":"value1", "key2":"value2"} }.

*/ inline RoutingProfile& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The number of associated queues in routing profile.

*/ inline long long GetNumberOfAssociatedQueues() const{ return m_numberOfAssociatedQueues; } /** *

The number of associated queues in routing profile.

*/ inline bool NumberOfAssociatedQueuesHasBeenSet() const { return m_numberOfAssociatedQueuesHasBeenSet; } /** *

The number of associated queues in routing profile.

*/ inline void SetNumberOfAssociatedQueues(long long value) { m_numberOfAssociatedQueuesHasBeenSet = true; m_numberOfAssociatedQueues = value; } /** *

The number of associated queues in routing profile.

*/ inline RoutingProfile& WithNumberOfAssociatedQueues(long long value) { SetNumberOfAssociatedQueues(value); return *this;} /** *

The number of associated users in routing profile.

*/ inline long long GetNumberOfAssociatedUsers() const{ return m_numberOfAssociatedUsers; } /** *

The number of associated users in routing profile.

*/ inline bool NumberOfAssociatedUsersHasBeenSet() const { return m_numberOfAssociatedUsersHasBeenSet; } /** *

The number of associated users in routing profile.

*/ inline void SetNumberOfAssociatedUsers(long long value) { m_numberOfAssociatedUsersHasBeenSet = true; m_numberOfAssociatedUsers = value; } /** *

The number of associated users in routing profile.

*/ inline RoutingProfile& WithNumberOfAssociatedUsers(long long value) { SetNumberOfAssociatedUsers(value); return *this;} private: Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_routingProfileArn; bool m_routingProfileArnHasBeenSet = false; Aws::String m_routingProfileId; bool m_routingProfileIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_mediaConcurrencies; bool m_mediaConcurrenciesHasBeenSet = false; Aws::String m_defaultOutboundQueueId; bool m_defaultOutboundQueueIdHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; long long m_numberOfAssociatedQueues; bool m_numberOfAssociatedQueuesHasBeenSet = false; long long m_numberOfAssociatedUsers; bool m_numberOfAssociatedUsersHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws