/** * 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 namespace Aws { namespace Connect { namespace Model { /** */ class CreateIntegrationAssociationRequest : public ConnectRequest { public: AWS_CONNECT_API CreateIntegrationAssociationRequest(); // 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 "CreateIntegrationAssociation"; } AWS_CONNECT_API Aws::String SerializePayload() const override; /** *

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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

The type of information to be ingested.

*/ inline const IntegrationType& GetIntegrationType() const{ return m_integrationType; } /** *

The type of information to be ingested.

*/ inline bool IntegrationTypeHasBeenSet() const { return m_integrationTypeHasBeenSet; } /** *

The type of information to be ingested.

*/ inline void SetIntegrationType(const IntegrationType& value) { m_integrationTypeHasBeenSet = true; m_integrationType = value; } /** *

The type of information to be ingested.

*/ inline void SetIntegrationType(IntegrationType&& value) { m_integrationTypeHasBeenSet = true; m_integrationType = std::move(value); } /** *

The type of information to be ingested.

*/ inline CreateIntegrationAssociationRequest& WithIntegrationType(const IntegrationType& value) { SetIntegrationType(value); return *this;} /** *

The type of information to be ingested.

*/ inline CreateIntegrationAssociationRequest& WithIntegrationType(IntegrationType&& value) { SetIntegrationType(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline const Aws::String& GetIntegrationArn() const{ return m_integrationArn; } /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline bool IntegrationArnHasBeenSet() const { return m_integrationArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline void SetIntegrationArn(const Aws::String& value) { m_integrationArnHasBeenSet = true; m_integrationArn = value; } /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline void SetIntegrationArn(Aws::String&& value) { m_integrationArnHasBeenSet = true; m_integrationArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline void SetIntegrationArn(const char* value) { m_integrationArnHasBeenSet = true; m_integrationArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline CreateIntegrationAssociationRequest& WithIntegrationArn(const Aws::String& value) { SetIntegrationArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline CreateIntegrationAssociationRequest& WithIntegrationArn(Aws::String&& value) { SetIntegrationArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the integration.

When * integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint * instances must be in the same account.

*/ inline CreateIntegrationAssociationRequest& WithIntegrationArn(const char* value) { SetIntegrationArn(value); return *this;} /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline const Aws::String& GetSourceApplicationUrl() const{ return m_sourceApplicationUrl; } /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline bool SourceApplicationUrlHasBeenSet() const { return m_sourceApplicationUrlHasBeenSet; } /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline void SetSourceApplicationUrl(const Aws::String& value) { m_sourceApplicationUrlHasBeenSet = true; m_sourceApplicationUrl = value; } /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline void SetSourceApplicationUrl(Aws::String&& value) { m_sourceApplicationUrlHasBeenSet = true; m_sourceApplicationUrl = std::move(value); } /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline void SetSourceApplicationUrl(const char* value) { m_sourceApplicationUrlHasBeenSet = true; m_sourceApplicationUrl.assign(value); } /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceApplicationUrl(const Aws::String& value) { SetSourceApplicationUrl(value); return *this;} /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceApplicationUrl(Aws::String&& value) { SetSourceApplicationUrl(std::move(value)); return *this;} /** *

The URL for the external application. This field is only required for the * EVENT integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceApplicationUrl(const char* value) { SetSourceApplicationUrl(value); return *this;} /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline const Aws::String& GetSourceApplicationName() const{ return m_sourceApplicationName; } /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline bool SourceApplicationNameHasBeenSet() const { return m_sourceApplicationNameHasBeenSet; } /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline void SetSourceApplicationName(const Aws::String& value) { m_sourceApplicationNameHasBeenSet = true; m_sourceApplicationName = value; } /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline void SetSourceApplicationName(Aws::String&& value) { m_sourceApplicationNameHasBeenSet = true; m_sourceApplicationName = std::move(value); } /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline void SetSourceApplicationName(const char* value) { m_sourceApplicationNameHasBeenSet = true; m_sourceApplicationName.assign(value); } /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceApplicationName(const Aws::String& value) { SetSourceApplicationName(value); return *this;} /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceApplicationName(Aws::String&& value) { SetSourceApplicationName(std::move(value)); return *this;} /** *

The name of the external application. This field is only required for the * EVENT integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceApplicationName(const char* value) { SetSourceApplicationName(value); return *this;} /** *

The type of the data source. This field is only required for the EVENT * integration type.

*/ inline const SourceType& GetSourceType() const{ return m_sourceType; } /** *

The type of the data source. This field is only required for the EVENT * integration type.

*/ inline bool SourceTypeHasBeenSet() const { return m_sourceTypeHasBeenSet; } /** *

The type of the data source. This field is only required for the EVENT * integration type.

*/ inline void SetSourceType(const SourceType& value) { m_sourceTypeHasBeenSet = true; m_sourceType = value; } /** *

The type of the data source. This field is only required for the EVENT * integration type.

*/ inline void SetSourceType(SourceType&& value) { m_sourceTypeHasBeenSet = true; m_sourceType = std::move(value); } /** *

The type of the data source. This field is only required for the EVENT * integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceType(const SourceType& value) { SetSourceType(value); return *this;} /** *

The type of the data source. This field is only required for the EVENT * integration type.

*/ inline CreateIntegrationAssociationRequest& WithSourceType(SourceType&& value) { SetSourceType(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 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& 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 CreateIntegrationAssociationRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; IntegrationType m_integrationType; bool m_integrationTypeHasBeenSet = false; Aws::String m_integrationArn; bool m_integrationArnHasBeenSet = false; Aws::String m_sourceApplicationUrl; bool m_sourceApplicationUrlHasBeenSet = false; Aws::String m_sourceApplicationName; bool m_sourceApplicationNameHasBeenSet = false; SourceType m_sourceType; bool m_sourceTypeHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws