/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Contains details about a product.

See Also:

AWS * API Reference

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

The ARN assigned to the product.

*/ inline const Aws::String& GetProductArn() const{ return m_productArn; } /** *

The ARN assigned to the product.

*/ inline bool ProductArnHasBeenSet() const { return m_productArnHasBeenSet; } /** *

The ARN assigned to the product.

*/ inline void SetProductArn(const Aws::String& value) { m_productArnHasBeenSet = true; m_productArn = value; } /** *

The ARN assigned to the product.

*/ inline void SetProductArn(Aws::String&& value) { m_productArnHasBeenSet = true; m_productArn = std::move(value); } /** *

The ARN assigned to the product.

*/ inline void SetProductArn(const char* value) { m_productArnHasBeenSet = true; m_productArn.assign(value); } /** *

The ARN assigned to the product.

*/ inline Product& WithProductArn(const Aws::String& value) { SetProductArn(value); return *this;} /** *

The ARN assigned to the product.

*/ inline Product& WithProductArn(Aws::String&& value) { SetProductArn(std::move(value)); return *this;} /** *

The ARN assigned to the product.

*/ inline Product& WithProductArn(const char* value) { SetProductArn(value); return *this;} /** *

The name of the product.

*/ inline const Aws::String& GetProductName() const{ return m_productName; } /** *

The name of the product.

*/ inline bool ProductNameHasBeenSet() const { return m_productNameHasBeenSet; } /** *

The name of the product.

*/ inline void SetProductName(const Aws::String& value) { m_productNameHasBeenSet = true; m_productName = value; } /** *

The name of the product.

*/ inline void SetProductName(Aws::String&& value) { m_productNameHasBeenSet = true; m_productName = std::move(value); } /** *

The name of the product.

*/ inline void SetProductName(const char* value) { m_productNameHasBeenSet = true; m_productName.assign(value); } /** *

The name of the product.

*/ inline Product& WithProductName(const Aws::String& value) { SetProductName(value); return *this;} /** *

The name of the product.

*/ inline Product& WithProductName(Aws::String&& value) { SetProductName(std::move(value)); return *this;} /** *

The name of the product.

*/ inline Product& WithProductName(const char* value) { SetProductName(value); return *this;} /** *

The name of the company that provides the product.

*/ inline const Aws::String& GetCompanyName() const{ return m_companyName; } /** *

The name of the company that provides the product.

*/ inline bool CompanyNameHasBeenSet() const { return m_companyNameHasBeenSet; } /** *

The name of the company that provides the product.

*/ inline void SetCompanyName(const Aws::String& value) { m_companyNameHasBeenSet = true; m_companyName = value; } /** *

The name of the company that provides the product.

*/ inline void SetCompanyName(Aws::String&& value) { m_companyNameHasBeenSet = true; m_companyName = std::move(value); } /** *

The name of the company that provides the product.

*/ inline void SetCompanyName(const char* value) { m_companyNameHasBeenSet = true; m_companyName.assign(value); } /** *

The name of the company that provides the product.

*/ inline Product& WithCompanyName(const Aws::String& value) { SetCompanyName(value); return *this;} /** *

The name of the company that provides the product.

*/ inline Product& WithCompanyName(Aws::String&& value) { SetCompanyName(std::move(value)); return *this;} /** *

The name of the company that provides the product.

*/ inline Product& WithCompanyName(const char* value) { SetCompanyName(value); return *this;} /** *

A description of the product.

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

A description of the product.

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

A description of the product.

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

A description of the product.

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

A description of the product.

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

A description of the product.

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

A description of the product.

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

A description of the product.

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

The categories assigned to the product.

*/ inline const Aws::Vector& GetCategories() const{ return m_categories; } /** *

The categories assigned to the product.

*/ inline bool CategoriesHasBeenSet() const { return m_categoriesHasBeenSet; } /** *

The categories assigned to the product.

*/ inline void SetCategories(const Aws::Vector& value) { m_categoriesHasBeenSet = true; m_categories = value; } /** *

The categories assigned to the product.

*/ inline void SetCategories(Aws::Vector&& value) { m_categoriesHasBeenSet = true; m_categories = std::move(value); } /** *

The categories assigned to the product.

*/ inline Product& WithCategories(const Aws::Vector& value) { SetCategories(value); return *this;} /** *

The categories assigned to the product.

*/ inline Product& WithCategories(Aws::Vector&& value) { SetCategories(std::move(value)); return *this;} /** *

The categories assigned to the product.

*/ inline Product& AddCategories(const Aws::String& value) { m_categoriesHasBeenSet = true; m_categories.push_back(value); return *this; } /** *

The categories assigned to the product.

*/ inline Product& AddCategories(Aws::String&& value) { m_categoriesHasBeenSet = true; m_categories.push_back(std::move(value)); return *this; } /** *

The categories assigned to the product.

*/ inline Product& AddCategories(const char* value) { m_categoriesHasBeenSet = true; m_categories.push_back(value); return *this; } /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline const Aws::Vector& GetIntegrationTypes() const{ return m_integrationTypes; } /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline bool IntegrationTypesHasBeenSet() const { return m_integrationTypesHasBeenSet; } /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline void SetIntegrationTypes(const Aws::Vector& value) { m_integrationTypesHasBeenSet = true; m_integrationTypes = value; } /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline void SetIntegrationTypes(Aws::Vector&& value) { m_integrationTypesHasBeenSet = true; m_integrationTypes = std::move(value); } /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline Product& WithIntegrationTypes(const Aws::Vector& value) { SetIntegrationTypes(value); return *this;} /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline Product& WithIntegrationTypes(Aws::Vector&& value) { SetIntegrationTypes(std::move(value)); return *this;} /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline Product& AddIntegrationTypes(const IntegrationType& value) { m_integrationTypesHasBeenSet = true; m_integrationTypes.push_back(value); return *this; } /** *

The types of integration that the product supports. Available values are the * following.

  • SEND_FINDINGS_TO_SECURITY_HUB - The * integration sends findings to Security Hub.

  • * RECEIVE_FINDINGS_FROM_SECURITY_HUB - The integration receives * findings from Security Hub.

  • * UPDATE_FINDINGS_IN_SECURITY_HUB - The integration does not send new * findings to Security Hub, but does make updates to the findings that it receives * from Security Hub.

*/ inline Product& AddIntegrationTypes(IntegrationType&& value) { m_integrationTypesHasBeenSet = true; m_integrationTypes.push_back(std::move(value)); return *this; } /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline const Aws::String& GetMarketplaceUrl() const{ return m_marketplaceUrl; } /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline bool MarketplaceUrlHasBeenSet() const { return m_marketplaceUrlHasBeenSet; } /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline void SetMarketplaceUrl(const Aws::String& value) { m_marketplaceUrlHasBeenSet = true; m_marketplaceUrl = value; } /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline void SetMarketplaceUrl(Aws::String&& value) { m_marketplaceUrlHasBeenSet = true; m_marketplaceUrl = std::move(value); } /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline void SetMarketplaceUrl(const char* value) { m_marketplaceUrlHasBeenSet = true; m_marketplaceUrl.assign(value); } /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline Product& WithMarketplaceUrl(const Aws::String& value) { SetMarketplaceUrl(value); return *this;} /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline Product& WithMarketplaceUrl(Aws::String&& value) { SetMarketplaceUrl(std::move(value)); return *this;} /** *

For integrations with Amazon Web Services services, the Amazon Web Services * Console URL from which to activate the service.

For integrations with * third-party products, the Amazon Web Services Marketplace URL from which to * subscribe to or purchase the product.

*/ inline Product& WithMarketplaceUrl(const char* value) { SetMarketplaceUrl(value); return *this;} /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline const Aws::String& GetActivationUrl() const{ return m_activationUrl; } /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline bool ActivationUrlHasBeenSet() const { return m_activationUrlHasBeenSet; } /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline void SetActivationUrl(const Aws::String& value) { m_activationUrlHasBeenSet = true; m_activationUrl = value; } /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline void SetActivationUrl(Aws::String&& value) { m_activationUrlHasBeenSet = true; m_activationUrl = std::move(value); } /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline void SetActivationUrl(const char* value) { m_activationUrlHasBeenSet = true; m_activationUrl.assign(value); } /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline Product& WithActivationUrl(const Aws::String& value) { SetActivationUrl(value); return *this;} /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline Product& WithActivationUrl(Aws::String&& value) { SetActivationUrl(std::move(value)); return *this;} /** *

The URL to the service or product documentation about the integration with * Security Hub, including how to activate the integration.

*/ inline Product& WithActivationUrl(const char* value) { SetActivationUrl(value); return *this;} /** *

The resource policy associated with the product.

*/ inline const Aws::String& GetProductSubscriptionResourcePolicy() const{ return m_productSubscriptionResourcePolicy; } /** *

The resource policy associated with the product.

*/ inline bool ProductSubscriptionResourcePolicyHasBeenSet() const { return m_productSubscriptionResourcePolicyHasBeenSet; } /** *

The resource policy associated with the product.

*/ inline void SetProductSubscriptionResourcePolicy(const Aws::String& value) { m_productSubscriptionResourcePolicyHasBeenSet = true; m_productSubscriptionResourcePolicy = value; } /** *

The resource policy associated with the product.

*/ inline void SetProductSubscriptionResourcePolicy(Aws::String&& value) { m_productSubscriptionResourcePolicyHasBeenSet = true; m_productSubscriptionResourcePolicy = std::move(value); } /** *

The resource policy associated with the product.

*/ inline void SetProductSubscriptionResourcePolicy(const char* value) { m_productSubscriptionResourcePolicyHasBeenSet = true; m_productSubscriptionResourcePolicy.assign(value); } /** *

The resource policy associated with the product.

*/ inline Product& WithProductSubscriptionResourcePolicy(const Aws::String& value) { SetProductSubscriptionResourcePolicy(value); return *this;} /** *

The resource policy associated with the product.

*/ inline Product& WithProductSubscriptionResourcePolicy(Aws::String&& value) { SetProductSubscriptionResourcePolicy(std::move(value)); return *this;} /** *

The resource policy associated with the product.

*/ inline Product& WithProductSubscriptionResourcePolicy(const char* value) { SetProductSubscriptionResourcePolicy(value); return *this;} private: Aws::String m_productArn; bool m_productArnHasBeenSet = false; Aws::String m_productName; bool m_productNameHasBeenSet = false; Aws::String m_companyName; bool m_companyNameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_categories; bool m_categoriesHasBeenSet = false; Aws::Vector m_integrationTypes; bool m_integrationTypesHasBeenSet = false; Aws::String m_marketplaceUrl; bool m_marketplaceUrlHasBeenSet = false; Aws::String m_activationUrl; bool m_activationUrlHasBeenSet = false; Aws::String m_productSubscriptionResourcePolicy; bool m_productSubscriptionResourcePolicyHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws