/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Connect { namespace Model { /** */ class CreateInstanceRequest : public ConnectRequest { public: AWS_CONNECT_API CreateInstanceRequest(); // 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 "CreateInstance"; } AWS_CONNECT_API Aws::String SerializePayload() const override; /** *

The idempotency token.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

The idempotency token.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

The idempotency token.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

The idempotency token.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

The idempotency token.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

The idempotency token.

*/ inline CreateInstanceRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

The idempotency token.

*/ inline CreateInstanceRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

The idempotency token.

*/ inline CreateInstanceRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The type of identity management for your Amazon Connect users.

*/ inline const DirectoryType& GetIdentityManagementType() const{ return m_identityManagementType; } /** *

The type of identity management for your Amazon Connect users.

*/ inline bool IdentityManagementTypeHasBeenSet() const { return m_identityManagementTypeHasBeenSet; } /** *

The type of identity management for your Amazon Connect users.

*/ inline void SetIdentityManagementType(const DirectoryType& value) { m_identityManagementTypeHasBeenSet = true; m_identityManagementType = value; } /** *

The type of identity management for your Amazon Connect users.

*/ inline void SetIdentityManagementType(DirectoryType&& value) { m_identityManagementTypeHasBeenSet = true; m_identityManagementType = std::move(value); } /** *

The type of identity management for your Amazon Connect users.

*/ inline CreateInstanceRequest& WithIdentityManagementType(const DirectoryType& value) { SetIdentityManagementType(value); return *this;} /** *

The type of identity management for your Amazon Connect users.

*/ inline CreateInstanceRequest& WithIdentityManagementType(DirectoryType&& value) { SetIdentityManagementType(std::move(value)); return *this;} /** *

The name for your instance.

*/ inline const Aws::String& GetInstanceAlias() const{ return m_instanceAlias; } /** *

The name for your instance.

*/ inline bool InstanceAliasHasBeenSet() const { return m_instanceAliasHasBeenSet; } /** *

The name for your instance.

*/ inline void SetInstanceAlias(const Aws::String& value) { m_instanceAliasHasBeenSet = true; m_instanceAlias = value; } /** *

The name for your instance.

*/ inline void SetInstanceAlias(Aws::String&& value) { m_instanceAliasHasBeenSet = true; m_instanceAlias = std::move(value); } /** *

The name for your instance.

*/ inline void SetInstanceAlias(const char* value) { m_instanceAliasHasBeenSet = true; m_instanceAlias.assign(value); } /** *

The name for your instance.

*/ inline CreateInstanceRequest& WithInstanceAlias(const Aws::String& value) { SetInstanceAlias(value); return *this;} /** *

The name for your instance.

*/ inline CreateInstanceRequest& WithInstanceAlias(Aws::String&& value) { SetInstanceAlias(std::move(value)); return *this;} /** *

The name for your instance.

*/ inline CreateInstanceRequest& WithInstanceAlias(const char* value) { SetInstanceAlias(value); return *this;} /** *

The identifier for the directory.

*/ inline const Aws::String& GetDirectoryId() const{ return m_directoryId; } /** *

The identifier for the directory.

*/ inline bool DirectoryIdHasBeenSet() const { return m_directoryIdHasBeenSet; } /** *

The identifier for the directory.

*/ inline void SetDirectoryId(const Aws::String& value) { m_directoryIdHasBeenSet = true; m_directoryId = value; } /** *

The identifier for the directory.

*/ inline void SetDirectoryId(Aws::String&& value) { m_directoryIdHasBeenSet = true; m_directoryId = std::move(value); } /** *

The identifier for the directory.

*/ inline void SetDirectoryId(const char* value) { m_directoryIdHasBeenSet = true; m_directoryId.assign(value); } /** *

The identifier for the directory.

*/ inline CreateInstanceRequest& WithDirectoryId(const Aws::String& value) { SetDirectoryId(value); return *this;} /** *

The identifier for the directory.

*/ inline CreateInstanceRequest& WithDirectoryId(Aws::String&& value) { SetDirectoryId(std::move(value)); return *this;} /** *

The identifier for the directory.

*/ inline CreateInstanceRequest& WithDirectoryId(const char* value) { SetDirectoryId(value); return *this;} /** *

Your contact center handles incoming contacts.

*/ inline bool GetInboundCallsEnabled() const{ return m_inboundCallsEnabled; } /** *

Your contact center handles incoming contacts.

*/ inline bool InboundCallsEnabledHasBeenSet() const { return m_inboundCallsEnabledHasBeenSet; } /** *

Your contact center handles incoming contacts.

*/ inline void SetInboundCallsEnabled(bool value) { m_inboundCallsEnabledHasBeenSet = true; m_inboundCallsEnabled = value; } /** *

Your contact center handles incoming contacts.

*/ inline CreateInstanceRequest& WithInboundCallsEnabled(bool value) { SetInboundCallsEnabled(value); return *this;} /** *

Your contact center allows outbound calls.

*/ inline bool GetOutboundCallsEnabled() const{ return m_outboundCallsEnabled; } /** *

Your contact center allows outbound calls.

*/ inline bool OutboundCallsEnabledHasBeenSet() const { return m_outboundCallsEnabledHasBeenSet; } /** *

Your contact center allows outbound calls.

*/ inline void SetOutboundCallsEnabled(bool value) { m_outboundCallsEnabledHasBeenSet = true; m_outboundCallsEnabled = value; } /** *

Your contact center allows outbound calls.

*/ inline CreateInstanceRequest& WithOutboundCallsEnabled(bool value) { SetOutboundCallsEnabled(value); return *this;} private: Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; DirectoryType m_identityManagementType; bool m_identityManagementTypeHasBeenSet = false; Aws::String m_instanceAlias; bool m_instanceAliasHasBeenSet = false; Aws::String m_directoryId; bool m_directoryIdHasBeenSet = false; bool m_inboundCallsEnabled; bool m_inboundCallsEnabledHasBeenSet = false; bool m_outboundCallsEnabled; bool m_outboundCallsEnabledHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws