/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Connect { namespace Model { /** */ class CreateUserRequest : public ConnectRequest { public: AWS_CONNECT_API CreateUserRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateUser"; } AWS_CONNECT_API Aws::String SerializePayload() const override; /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline const Aws::String& GetUsername() const{ return m_username; } /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline bool UsernameHasBeenSet() const { return m_usernameHasBeenSet; } /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline void SetUsername(const Aws::String& value) { m_usernameHasBeenSet = true; m_username = value; } /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline void SetUsername(Aws::String&& value) { m_usernameHasBeenSet = true; m_username = std::move(value); } /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline void SetUsername(const char* value) { m_usernameHasBeenSet = true; m_username.assign(value); } /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline CreateUserRequest& WithUsername(const Aws::String& value) { SetUsername(value); return *this;} /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline CreateUserRequest& WithUsername(Aws::String&& value) { SetUsername(std::move(value)); return *this;} /** *

The user name for the account. For instances not using SAML for identity * management, the user name can include up to 20 characters. If you are using SAML * for identity management, the user name can include up to 64 characters from * [a-zA-Z0-9_-.\@]+.

*/ inline CreateUserRequest& WithUsername(const char* value) { SetUsername(value); return *this;} /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline const Aws::String& GetPassword() const{ return m_password; } /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline bool PasswordHasBeenSet() const { return m_passwordHasBeenSet; } /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline void SetPassword(const Aws::String& value) { m_passwordHasBeenSet = true; m_password = value; } /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline void SetPassword(Aws::String&& value) { m_passwordHasBeenSet = true; m_password = std::move(value); } /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline void SetPassword(const char* value) { m_passwordHasBeenSet = true; m_password.assign(value); } /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline CreateUserRequest& WithPassword(const Aws::String& value) { SetPassword(value); return *this;} /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline CreateUserRequest& WithPassword(Aws::String&& value) { SetPassword(std::move(value)); return *this;} /** *

The password for the user account. A password is required if you are using * Amazon Connect for identity management. Otherwise, it is an error to include a * password.

*/ inline CreateUserRequest& WithPassword(const char* value) { SetPassword(value); return *this;} /** *

The information about the identity of the user.

*/ inline const UserIdentityInfo& GetIdentityInfo() const{ return m_identityInfo; } /** *

The information about the identity of the user.

*/ inline bool IdentityInfoHasBeenSet() const { return m_identityInfoHasBeenSet; } /** *

The information about the identity of the user.

*/ inline void SetIdentityInfo(const UserIdentityInfo& value) { m_identityInfoHasBeenSet = true; m_identityInfo = value; } /** *

The information about the identity of the user.

*/ inline void SetIdentityInfo(UserIdentityInfo&& value) { m_identityInfoHasBeenSet = true; m_identityInfo = std::move(value); } /** *

The information about the identity of the user.

*/ inline CreateUserRequest& WithIdentityInfo(const UserIdentityInfo& value) { SetIdentityInfo(value); return *this;} /** *

The information about the identity of the user.

*/ inline CreateUserRequest& WithIdentityInfo(UserIdentityInfo&& value) { SetIdentityInfo(std::move(value)); return *this;} /** *

The phone settings for the user.

*/ inline const UserPhoneConfig& GetPhoneConfig() const{ return m_phoneConfig; } /** *

The phone settings for the user.

*/ inline bool PhoneConfigHasBeenSet() const { return m_phoneConfigHasBeenSet; } /** *

The phone settings for the user.

*/ inline void SetPhoneConfig(const UserPhoneConfig& value) { m_phoneConfigHasBeenSet = true; m_phoneConfig = value; } /** *

The phone settings for the user.

*/ inline void SetPhoneConfig(UserPhoneConfig&& value) { m_phoneConfigHasBeenSet = true; m_phoneConfig = std::move(value); } /** *

The phone settings for the user.

*/ inline CreateUserRequest& WithPhoneConfig(const UserPhoneConfig& value) { SetPhoneConfig(value); return *this;} /** *

The phone settings for the user.

*/ inline CreateUserRequest& WithPhoneConfig(UserPhoneConfig&& value) { SetPhoneConfig(std::move(value)); return *this;} /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline const Aws::String& GetDirectoryUserId() const{ return m_directoryUserId; } /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline bool DirectoryUserIdHasBeenSet() const { return m_directoryUserIdHasBeenSet; } /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline void SetDirectoryUserId(const Aws::String& value) { m_directoryUserIdHasBeenSet = true; m_directoryUserId = value; } /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline void SetDirectoryUserId(Aws::String&& value) { m_directoryUserIdHasBeenSet = true; m_directoryUserId = std::move(value); } /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline void SetDirectoryUserId(const char* value) { m_directoryUserIdHasBeenSet = true; m_directoryUserId.assign(value); } /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline CreateUserRequest& WithDirectoryUserId(const Aws::String& value) { SetDirectoryUserId(value); return *this;} /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline CreateUserRequest& WithDirectoryUserId(Aws::String&& value) { SetDirectoryUserId(std::move(value)); return *this;} /** *

The identifier of the user account in the directory used for identity * management. If Amazon Connect cannot access the directory, you can specify this * identifier to authenticate users. If you include the identifier, we assume that * Amazon Connect cannot access the directory. Otherwise, the identity information * is used to authenticate users from your directory.

This parameter is * required if you are using an existing directory for identity management in * Amazon Connect when Amazon Connect cannot access your directory to authenticate * users. If you are using SAML for identity management and include this parameter, * an error is returned.

*/ inline CreateUserRequest& WithDirectoryUserId(const char* value) { SetDirectoryUserId(value); return *this;} /** *

The identifier of the security profile for the user.

*/ inline const Aws::Vector& GetSecurityProfileIds() const{ return m_securityProfileIds; } /** *

The identifier of the security profile for the user.

*/ inline bool SecurityProfileIdsHasBeenSet() const { return m_securityProfileIdsHasBeenSet; } /** *

The identifier of the security profile for the user.

*/ inline void SetSecurityProfileIds(const Aws::Vector& value) { m_securityProfileIdsHasBeenSet = true; m_securityProfileIds = value; } /** *

The identifier of the security profile for the user.

*/ inline void SetSecurityProfileIds(Aws::Vector&& value) { m_securityProfileIdsHasBeenSet = true; m_securityProfileIds = std::move(value); } /** *

The identifier of the security profile for the user.

*/ inline CreateUserRequest& WithSecurityProfileIds(const Aws::Vector& value) { SetSecurityProfileIds(value); return *this;} /** *

The identifier of the security profile for the user.

*/ inline CreateUserRequest& WithSecurityProfileIds(Aws::Vector&& value) { SetSecurityProfileIds(std::move(value)); return *this;} /** *

The identifier of the security profile for the user.

*/ inline CreateUserRequest& AddSecurityProfileIds(const Aws::String& value) { m_securityProfileIdsHasBeenSet = true; m_securityProfileIds.push_back(value); return *this; } /** *

The identifier of the security profile for the user.

*/ inline CreateUserRequest& AddSecurityProfileIds(Aws::String&& value) { m_securityProfileIdsHasBeenSet = true; m_securityProfileIds.push_back(std::move(value)); return *this; } /** *

The identifier of the security profile for the user.

*/ inline CreateUserRequest& AddSecurityProfileIds(const char* value) { m_securityProfileIdsHasBeenSet = true; m_securityProfileIds.push_back(value); return *this; } /** *

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the routing profile for the user.

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

The identifier of the hierarchy group for the user.

*/ inline const Aws::String& GetHierarchyGroupId() const{ return m_hierarchyGroupId; } /** *

The identifier of the hierarchy group for the user.

*/ inline bool HierarchyGroupIdHasBeenSet() const { return m_hierarchyGroupIdHasBeenSet; } /** *

The identifier of the hierarchy group for the user.

*/ inline void SetHierarchyGroupId(const Aws::String& value) { m_hierarchyGroupIdHasBeenSet = true; m_hierarchyGroupId = value; } /** *

The identifier of the hierarchy group for the user.

*/ inline void SetHierarchyGroupId(Aws::String&& value) { m_hierarchyGroupIdHasBeenSet = true; m_hierarchyGroupId = std::move(value); } /** *

The identifier of the hierarchy group for the user.

*/ inline void SetHierarchyGroupId(const char* value) { m_hierarchyGroupIdHasBeenSet = true; m_hierarchyGroupId.assign(value); } /** *

The identifier of the hierarchy group for the user.

*/ inline CreateUserRequest& WithHierarchyGroupId(const Aws::String& value) { SetHierarchyGroupId(value); return *this;} /** *

The identifier of the hierarchy group for the user.

*/ inline CreateUserRequest& WithHierarchyGroupId(Aws::String&& value) { SetHierarchyGroupId(std::move(value)); return *this;} /** *

The identifier of the hierarchy group for the user.

*/ inline CreateUserRequest& WithHierarchyGroupId(const char* value) { SetHierarchyGroupId(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 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& WithInstanceId(const char* value) { SetInstanceId(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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& 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 CreateUserRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_username; bool m_usernameHasBeenSet = false; Aws::String m_password; bool m_passwordHasBeenSet = false; UserIdentityInfo m_identityInfo; bool m_identityInfoHasBeenSet = false; UserPhoneConfig m_phoneConfig; bool m_phoneConfigHasBeenSet = false; Aws::String m_directoryUserId; bool m_directoryUserIdHasBeenSet = false; Aws::Vector m_securityProfileIds; bool m_securityProfileIdsHasBeenSet = false; Aws::String m_routingProfileId; bool m_routingProfileIdHasBeenSet = false; Aws::String m_hierarchyGroupId; bool m_hierarchyGroupIdHasBeenSet = false; Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws