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

Defines a physical resource. A physical resource is a resource that exists in * your account. It can be identified using an Amazon Resource Name (ARN) or an * Resilience Hub-native identifier.

See Also:

AWS * API Reference

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

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline const Aws::Map>& GetAdditionalInfo() const{ return m_additionalInfo; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline void SetAdditionalInfo(const Aws::Map>& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = value; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline void SetAdditionalInfo(Aws::Map>&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = std::move(value); } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& WithAdditionalInfo(const Aws::Map>& value) { SetAdditionalInfo(value); return *this;} /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& WithAdditionalInfo(Aws::Map>&& value) { SetAdditionalInfo(std::move(value)); return *this;} /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& AddAdditionalInfo(const Aws::String& key, const Aws::Vector& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.emplace(key, value); return *this; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& AddAdditionalInfo(Aws::String&& key, const Aws::Vector& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.emplace(std::move(key), value); return *this; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& AddAdditionalInfo(const Aws::String& key, Aws::Vector&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.emplace(key, std::move(value)); return *this; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& AddAdditionalInfo(Aws::String&& key, Aws::Vector&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.emplace(std::move(key), std::move(value)); return *this; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& AddAdditionalInfo(const char* key, Aws::Vector&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.emplace(key, std::move(value)); return *this; } /** *

Additional configuration parameters for an Resilience Hub application. If you * want to implement additionalInfo through the Resilience Hub console * rather than using an API call, see Configure * the application configuration parameters.

Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

Key: "failover-regions" *

Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PhysicalResource& AddAdditionalInfo(const char* key, const Aws::Vector& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.emplace(key, value); return *this; } /** *

The application components that belong to this resource.

*/ inline const Aws::Vector& GetAppComponents() const{ return m_appComponents; } /** *

The application components that belong to this resource.

*/ inline bool AppComponentsHasBeenSet() const { return m_appComponentsHasBeenSet; } /** *

The application components that belong to this resource.

*/ inline void SetAppComponents(const Aws::Vector& value) { m_appComponentsHasBeenSet = true; m_appComponents = value; } /** *

The application components that belong to this resource.

*/ inline void SetAppComponents(Aws::Vector&& value) { m_appComponentsHasBeenSet = true; m_appComponents = std::move(value); } /** *

The application components that belong to this resource.

*/ inline PhysicalResource& WithAppComponents(const Aws::Vector& value) { SetAppComponents(value); return *this;} /** *

The application components that belong to this resource.

*/ inline PhysicalResource& WithAppComponents(Aws::Vector&& value) { SetAppComponents(std::move(value)); return *this;} /** *

The application components that belong to this resource.

*/ inline PhysicalResource& AddAppComponents(const AppComponent& value) { m_appComponentsHasBeenSet = true; m_appComponents.push_back(value); return *this; } /** *

The application components that belong to this resource.

*/ inline PhysicalResource& AddAppComponents(AppComponent&& value) { m_appComponentsHasBeenSet = true; m_appComponents.push_back(std::move(value)); return *this; } /** *

Indicates if a resource is included or excluded from the assessment.

*/ inline bool GetExcluded() const{ return m_excluded; } /** *

Indicates if a resource is included or excluded from the assessment.

*/ inline bool ExcludedHasBeenSet() const { return m_excludedHasBeenSet; } /** *

Indicates if a resource is included or excluded from the assessment.

*/ inline void SetExcluded(bool value) { m_excludedHasBeenSet = true; m_excluded = value; } /** *

Indicates if a resource is included or excluded from the assessment.

*/ inline PhysicalResource& WithExcluded(bool value) { SetExcluded(value); return *this;} /** *

The logical identifier of the resource.

*/ inline const LogicalResourceId& GetLogicalResourceId() const{ return m_logicalResourceId; } /** *

The logical identifier of the resource.

*/ inline bool LogicalResourceIdHasBeenSet() const { return m_logicalResourceIdHasBeenSet; } /** *

The logical identifier of the resource.

*/ inline void SetLogicalResourceId(const LogicalResourceId& value) { m_logicalResourceIdHasBeenSet = true; m_logicalResourceId = value; } /** *

The logical identifier of the resource.

*/ inline void SetLogicalResourceId(LogicalResourceId&& value) { m_logicalResourceIdHasBeenSet = true; m_logicalResourceId = std::move(value); } /** *

The logical identifier of the resource.

*/ inline PhysicalResource& WithLogicalResourceId(const LogicalResourceId& value) { SetLogicalResourceId(value); return *this;} /** *

The logical identifier of the resource.

*/ inline PhysicalResource& WithLogicalResourceId(LogicalResourceId&& value) { SetLogicalResourceId(std::move(value)); return *this;} /** *

The name of the parent resource.

*/ inline const Aws::String& GetParentResourceName() const{ return m_parentResourceName; } /** *

The name of the parent resource.

*/ inline bool ParentResourceNameHasBeenSet() const { return m_parentResourceNameHasBeenSet; } /** *

The name of the parent resource.

*/ inline void SetParentResourceName(const Aws::String& value) { m_parentResourceNameHasBeenSet = true; m_parentResourceName = value; } /** *

The name of the parent resource.

*/ inline void SetParentResourceName(Aws::String&& value) { m_parentResourceNameHasBeenSet = true; m_parentResourceName = std::move(value); } /** *

The name of the parent resource.

*/ inline void SetParentResourceName(const char* value) { m_parentResourceNameHasBeenSet = true; m_parentResourceName.assign(value); } /** *

The name of the parent resource.

*/ inline PhysicalResource& WithParentResourceName(const Aws::String& value) { SetParentResourceName(value); return *this;} /** *

The name of the parent resource.

*/ inline PhysicalResource& WithParentResourceName(Aws::String&& value) { SetParentResourceName(std::move(value)); return *this;} /** *

The name of the parent resource.

*/ inline PhysicalResource& WithParentResourceName(const char* value) { SetParentResourceName(value); return *this;} /** *

The physical identifier of the resource.

*/ inline const PhysicalResourceId& GetPhysicalResourceId() const{ return m_physicalResourceId; } /** *

The physical identifier of the resource.

*/ inline bool PhysicalResourceIdHasBeenSet() const { return m_physicalResourceIdHasBeenSet; } /** *

The physical identifier of the resource.

*/ inline void SetPhysicalResourceId(const PhysicalResourceId& value) { m_physicalResourceIdHasBeenSet = true; m_physicalResourceId = value; } /** *

The physical identifier of the resource.

*/ inline void SetPhysicalResourceId(PhysicalResourceId&& value) { m_physicalResourceIdHasBeenSet = true; m_physicalResourceId = std::move(value); } /** *

The physical identifier of the resource.

*/ inline PhysicalResource& WithPhysicalResourceId(const PhysicalResourceId& value) { SetPhysicalResourceId(value); return *this;} /** *

The physical identifier of the resource.

*/ inline PhysicalResource& WithPhysicalResourceId(PhysicalResourceId&& value) { SetPhysicalResourceId(std::move(value)); return *this;} /** *

The name of the resource.

*/ inline const Aws::String& GetResourceName() const{ return m_resourceName; } /** *

The name of the resource.

*/ inline bool ResourceNameHasBeenSet() const { return m_resourceNameHasBeenSet; } /** *

The name of the resource.

*/ inline void SetResourceName(const Aws::String& value) { m_resourceNameHasBeenSet = true; m_resourceName = value; } /** *

The name of the resource.

*/ inline void SetResourceName(Aws::String&& value) { m_resourceNameHasBeenSet = true; m_resourceName = std::move(value); } /** *

The name of the resource.

*/ inline void SetResourceName(const char* value) { m_resourceNameHasBeenSet = true; m_resourceName.assign(value); } /** *

The name of the resource.

*/ inline PhysicalResource& WithResourceName(const Aws::String& value) { SetResourceName(value); return *this;} /** *

The name of the resource.

*/ inline PhysicalResource& WithResourceName(Aws::String&& value) { SetResourceName(std::move(value)); return *this;} /** *

The name of the resource.

*/ inline PhysicalResource& WithResourceName(const char* value) { SetResourceName(value); return *this;} /** *

The type of resource.

*/ inline const Aws::String& GetResourceType() const{ return m_resourceType; } /** *

The type of resource.

*/ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } /** *

The type of resource.

*/ inline void SetResourceType(const Aws::String& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } /** *

The type of resource.

*/ inline void SetResourceType(Aws::String&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } /** *

The type of resource.

*/ inline void SetResourceType(const char* value) { m_resourceTypeHasBeenSet = true; m_resourceType.assign(value); } /** *

The type of resource.

*/ inline PhysicalResource& WithResourceType(const Aws::String& value) { SetResourceType(value); return *this;} /** *

The type of resource.

*/ inline PhysicalResource& WithResourceType(Aws::String&& value) { SetResourceType(std::move(value)); return *this;} /** *

The type of resource.

*/ inline PhysicalResource& WithResourceType(const char* value) { SetResourceType(value); return *this;} /** *

The type of input source.

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

The type of input source.

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

The type of input source.

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

The type of input source.

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

The type of input source.

*/ inline PhysicalResource& WithSourceType(const ResourceSourceType& value) { SetSourceType(value); return *this;} /** *

The type of input source.

*/ inline PhysicalResource& WithSourceType(ResourceSourceType&& value) { SetSourceType(std::move(value)); return *this;} private: Aws::Map> m_additionalInfo; bool m_additionalInfoHasBeenSet = false; Aws::Vector m_appComponents; bool m_appComponentsHasBeenSet = false; bool m_excluded; bool m_excludedHasBeenSet = false; LogicalResourceId m_logicalResourceId; bool m_logicalResourceIdHasBeenSet = false; Aws::String m_parentResourceName; bool m_parentResourceNameHasBeenSet = false; PhysicalResourceId m_physicalResourceId; bool m_physicalResourceIdHasBeenSet = false; Aws::String m_resourceName; bool m_resourceNameHasBeenSet = false; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; ResourceSourceType m_sourceType; bool m_sourceTypeHasBeenSet = false; }; } // namespace Model } // namespace ResilienceHub } // namespace Aws