/** * 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 ApplicationInsights { namespace Model { /** */ class CreateApplicationRequest : public ApplicationInsightsRequest { public: AWS_APPLICATIONINSIGHTS_API CreateApplicationRequest(); // 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 "CreateApplication"; } AWS_APPLICATIONINSIGHTS_API Aws::String SerializePayload() const override; AWS_APPLICATIONINSIGHTS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the resource group.

*/ inline const Aws::String& GetResourceGroupName() const{ return m_resourceGroupName; } /** *

The name of the resource group.

*/ inline bool ResourceGroupNameHasBeenSet() const { return m_resourceGroupNameHasBeenSet; } /** *

The name of the resource group.

*/ inline void SetResourceGroupName(const Aws::String& value) { m_resourceGroupNameHasBeenSet = true; m_resourceGroupName = value; } /** *

The name of the resource group.

*/ inline void SetResourceGroupName(Aws::String&& value) { m_resourceGroupNameHasBeenSet = true; m_resourceGroupName = std::move(value); } /** *

The name of the resource group.

*/ inline void SetResourceGroupName(const char* value) { m_resourceGroupNameHasBeenSet = true; m_resourceGroupName.assign(value); } /** *

The name of the resource group.

*/ inline CreateApplicationRequest& WithResourceGroupName(const Aws::String& value) { SetResourceGroupName(value); return *this;} /** *

The name of the resource group.

*/ inline CreateApplicationRequest& WithResourceGroupName(Aws::String&& value) { SetResourceGroupName(std::move(value)); return *this;} /** *

The name of the resource group.

*/ inline CreateApplicationRequest& WithResourceGroupName(const char* value) { SetResourceGroupName(value); return *this;} /** *

When set to true, creates opsItems for any problems detected on * an application.

*/ inline bool GetOpsCenterEnabled() const{ return m_opsCenterEnabled; } /** *

When set to true, creates opsItems for any problems detected on * an application.

*/ inline bool OpsCenterEnabledHasBeenSet() const { return m_opsCenterEnabledHasBeenSet; } /** *

When set to true, creates opsItems for any problems detected on * an application.

*/ inline void SetOpsCenterEnabled(bool value) { m_opsCenterEnabledHasBeenSet = true; m_opsCenterEnabled = value; } /** *

When set to true, creates opsItems for any problems detected on * an application.

*/ inline CreateApplicationRequest& WithOpsCenterEnabled(bool value) { SetOpsCenterEnabled(value); return *this;} /** *

Indicates whether Application Insights can listen to CloudWatch events for * the application resources, such as instance terminated, * failed deployment, and others.

*/ inline bool GetCWEMonitorEnabled() const{ return m_cWEMonitorEnabled; } /** *

Indicates whether Application Insights can listen to CloudWatch events for * the application resources, such as instance terminated, * failed deployment, and others.

*/ inline bool CWEMonitorEnabledHasBeenSet() const { return m_cWEMonitorEnabledHasBeenSet; } /** *

Indicates whether Application Insights can listen to CloudWatch events for * the application resources, such as instance terminated, * failed deployment, and others.

*/ inline void SetCWEMonitorEnabled(bool value) { m_cWEMonitorEnabledHasBeenSet = true; m_cWEMonitorEnabled = value; } /** *

Indicates whether Application Insights can listen to CloudWatch events for * the application resources, such as instance terminated, * failed deployment, and others.

*/ inline CreateApplicationRequest& WithCWEMonitorEnabled(bool value) { SetCWEMonitorEnabled(value); return *this;} /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline const Aws::String& GetOpsItemSNSTopicArn() const{ return m_opsItemSNSTopicArn; } /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline bool OpsItemSNSTopicArnHasBeenSet() const { return m_opsItemSNSTopicArnHasBeenSet; } /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline void SetOpsItemSNSTopicArn(const Aws::String& value) { m_opsItemSNSTopicArnHasBeenSet = true; m_opsItemSNSTopicArn = value; } /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline void SetOpsItemSNSTopicArn(Aws::String&& value) { m_opsItemSNSTopicArnHasBeenSet = true; m_opsItemSNSTopicArn = std::move(value); } /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline void SetOpsItemSNSTopicArn(const char* value) { m_opsItemSNSTopicArnHasBeenSet = true; m_opsItemSNSTopicArn.assign(value); } /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline CreateApplicationRequest& WithOpsItemSNSTopicArn(const Aws::String& value) { SetOpsItemSNSTopicArn(value); return *this;} /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline CreateApplicationRequest& WithOpsItemSNSTopicArn(Aws::String&& value) { SetOpsItemSNSTopicArn(std::move(value)); return *this;} /** *

The SNS topic provided to Application Insights that is associated to the * created opsItem. Allows you to receive notifications for updates to the opsItem. *

*/ inline CreateApplicationRequest& WithOpsItemSNSTopicArn(const char* value) { SetOpsItemSNSTopicArn(value); return *this;} /** *

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

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

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

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

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

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

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

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

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

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

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

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

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

*/ inline CreateApplicationRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

List of tags to add to the application. tag key (Key) and an * associated tag value (Value). The maximum length of a tag key is * 128 characters. The maximum length of a tag value is 256 characters.

*/ inline CreateApplicationRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

Indicates whether Application Insights automatically configures unmonitored * resources in the resource group.

*/ inline bool GetAutoConfigEnabled() const{ return m_autoConfigEnabled; } /** *

Indicates whether Application Insights automatically configures unmonitored * resources in the resource group.

*/ inline bool AutoConfigEnabledHasBeenSet() const { return m_autoConfigEnabledHasBeenSet; } /** *

Indicates whether Application Insights automatically configures unmonitored * resources in the resource group.

*/ inline void SetAutoConfigEnabled(bool value) { m_autoConfigEnabledHasBeenSet = true; m_autoConfigEnabled = value; } /** *

Indicates whether Application Insights automatically configures unmonitored * resources in the resource group.

*/ inline CreateApplicationRequest& WithAutoConfigEnabled(bool value) { SetAutoConfigEnabled(value); return *this;} /** *

Configures all of the resources in the resource group by applying the * recommended configurations.

*/ inline bool GetAutoCreate() const{ return m_autoCreate; } /** *

Configures all of the resources in the resource group by applying the * recommended configurations.

*/ inline bool AutoCreateHasBeenSet() const { return m_autoCreateHasBeenSet; } /** *

Configures all of the resources in the resource group by applying the * recommended configurations.

*/ inline void SetAutoCreate(bool value) { m_autoCreateHasBeenSet = true; m_autoCreate = value; } /** *

Configures all of the resources in the resource group by applying the * recommended configurations.

*/ inline CreateApplicationRequest& WithAutoCreate(bool value) { SetAutoCreate(value); return *this;} /** *

Application Insights can create applications based on a resource group or on * an account. To create an account-based application using all of the resources in * the account, set this parameter to ACCOUNT_BASED.

*/ inline const GroupingType& GetGroupingType() const{ return m_groupingType; } /** *

Application Insights can create applications based on a resource group or on * an account. To create an account-based application using all of the resources in * the account, set this parameter to ACCOUNT_BASED.

*/ inline bool GroupingTypeHasBeenSet() const { return m_groupingTypeHasBeenSet; } /** *

Application Insights can create applications based on a resource group or on * an account. To create an account-based application using all of the resources in * the account, set this parameter to ACCOUNT_BASED.

*/ inline void SetGroupingType(const GroupingType& value) { m_groupingTypeHasBeenSet = true; m_groupingType = value; } /** *

Application Insights can create applications based on a resource group or on * an account. To create an account-based application using all of the resources in * the account, set this parameter to ACCOUNT_BASED.

*/ inline void SetGroupingType(GroupingType&& value) { m_groupingTypeHasBeenSet = true; m_groupingType = std::move(value); } /** *

Application Insights can create applications based on a resource group or on * an account. To create an account-based application using all of the resources in * the account, set this parameter to ACCOUNT_BASED.

*/ inline CreateApplicationRequest& WithGroupingType(const GroupingType& value) { SetGroupingType(value); return *this;} /** *

Application Insights can create applications based on a resource group or on * an account. To create an account-based application using all of the resources in * the account, set this parameter to ACCOUNT_BASED.

*/ inline CreateApplicationRequest& WithGroupingType(GroupingType&& value) { SetGroupingType(std::move(value)); return *this;} private: Aws::String m_resourceGroupName; bool m_resourceGroupNameHasBeenSet = false; bool m_opsCenterEnabled; bool m_opsCenterEnabledHasBeenSet = false; bool m_cWEMonitorEnabled; bool m_cWEMonitorEnabledHasBeenSet = false; Aws::String m_opsItemSNSTopicArn; bool m_opsItemSNSTopicArnHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; bool m_autoConfigEnabled; bool m_autoConfigEnabledHasBeenSet = false; bool m_autoCreate; bool m_autoCreateHasBeenSet = false; GroupingType m_groupingType; bool m_groupingTypeHasBeenSet = false; }; } // namespace Model } // namespace ApplicationInsights } // namespace Aws