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

Describes a network resource.

See Also:

AWS * API Reference

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

The ARN of the gateway.

*/ inline const Aws::String& GetRegisteredGatewayArn() const{ return m_registeredGatewayArn; } /** *

The ARN of the gateway.

*/ inline bool RegisteredGatewayArnHasBeenSet() const { return m_registeredGatewayArnHasBeenSet; } /** *

The ARN of the gateway.

*/ inline void SetRegisteredGatewayArn(const Aws::String& value) { m_registeredGatewayArnHasBeenSet = true; m_registeredGatewayArn = value; } /** *

The ARN of the gateway.

*/ inline void SetRegisteredGatewayArn(Aws::String&& value) { m_registeredGatewayArnHasBeenSet = true; m_registeredGatewayArn = std::move(value); } /** *

The ARN of the gateway.

*/ inline void SetRegisteredGatewayArn(const char* value) { m_registeredGatewayArnHasBeenSet = true; m_registeredGatewayArn.assign(value); } /** *

The ARN of the gateway.

*/ inline NetworkResource& WithRegisteredGatewayArn(const Aws::String& value) { SetRegisteredGatewayArn(value); return *this;} /** *

The ARN of the gateway.

*/ inline NetworkResource& WithRegisteredGatewayArn(Aws::String&& value) { SetRegisteredGatewayArn(std::move(value)); return *this;} /** *

The ARN of the gateway.

*/ inline NetworkResource& WithRegisteredGatewayArn(const char* value) { SetRegisteredGatewayArn(value); return *this;} /** *

The ID of a core network.

*/ inline const Aws::String& GetCoreNetworkId() const{ return m_coreNetworkId; } /** *

The ID of a core network.

*/ inline bool CoreNetworkIdHasBeenSet() const { return m_coreNetworkIdHasBeenSet; } /** *

The ID of a core network.

*/ inline void SetCoreNetworkId(const Aws::String& value) { m_coreNetworkIdHasBeenSet = true; m_coreNetworkId = value; } /** *

The ID of a core network.

*/ inline void SetCoreNetworkId(Aws::String&& value) { m_coreNetworkIdHasBeenSet = true; m_coreNetworkId = std::move(value); } /** *

The ID of a core network.

*/ inline void SetCoreNetworkId(const char* value) { m_coreNetworkIdHasBeenSet = true; m_coreNetworkId.assign(value); } /** *

The ID of a core network.

*/ inline NetworkResource& WithCoreNetworkId(const Aws::String& value) { SetCoreNetworkId(value); return *this;} /** *

The ID of a core network.

*/ inline NetworkResource& WithCoreNetworkId(Aws::String&& value) { SetCoreNetworkId(std::move(value)); return *this;} /** *

The ID of a core network.

*/ inline NetworkResource& WithCoreNetworkId(const char* value) { SetCoreNetworkId(value); return *this;} /** *

The Amazon Web Services Region.

*/ inline const Aws::String& GetAwsRegion() const{ return m_awsRegion; } /** *

The Amazon Web Services Region.

*/ inline bool AwsRegionHasBeenSet() const { return m_awsRegionHasBeenSet; } /** *

The Amazon Web Services Region.

*/ inline void SetAwsRegion(const Aws::String& value) { m_awsRegionHasBeenSet = true; m_awsRegion = value; } /** *

The Amazon Web Services Region.

*/ inline void SetAwsRegion(Aws::String&& value) { m_awsRegionHasBeenSet = true; m_awsRegion = std::move(value); } /** *

The Amazon Web Services Region.

*/ inline void SetAwsRegion(const char* value) { m_awsRegionHasBeenSet = true; m_awsRegion.assign(value); } /** *

The Amazon Web Services Region.

*/ inline NetworkResource& WithAwsRegion(const Aws::String& value) { SetAwsRegion(value); return *this;} /** *

The Amazon Web Services Region.

*/ inline NetworkResource& WithAwsRegion(Aws::String&& value) { SetAwsRegion(std::move(value)); return *this;} /** *

The Amazon Web Services Region.

*/ inline NetworkResource& WithAwsRegion(const char* value) { SetAwsRegion(value); return *this;} /** *

The Amazon Web Services account ID.

*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *

The Amazon Web Services account ID.

*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *

The Amazon Web Services account ID.

*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *

The Amazon Web Services account ID.

*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *

The Amazon Web Services account ID.

*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *

The Amazon Web Services account ID.

*/ inline NetworkResource& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *

The Amazon Web Services account ID.

*/ inline NetworkResource& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account ID.

*/ inline NetworkResource& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The resource type.

The following are the supported resource types for * Direct Connect:

  • dxcon

  • * dx-gateway

  • dx-vif

*

The following are the supported resource types for Network Manager:

    *
  • connection

  • device

    *
  • link

  • site

    *

The following are the supported resource types for Amazon * VPC:

  • customer-gateway

  • * transit-gateway

  • * transit-gateway-attachment

  • * transit-gateway-connect-peer

  • * transit-gateway-route-table

  • * vpn-connection

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

The ID of the resource.

*/ inline const Aws::String& GetResourceId() const{ return m_resourceId; } /** *

The ID of the resource.

*/ inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; } /** *

The ID of the resource.

*/ inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; } /** *

The ID of the resource.

*/ inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); } /** *

The ID of the resource.

*/ inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); } /** *

The ID of the resource.

*/ inline NetworkResource& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;} /** *

The ID of the resource.

*/ inline NetworkResource& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;} /** *

The ID of the resource.

*/ inline NetworkResource& WithResourceId(const char* value) { SetResourceId(value); return *this;} /** *

The ARN of the resource.

*/ inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } /** *

The ARN of the resource.

*/ inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } /** *

The ARN of the resource.

*/ inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; } /** *

The ARN of the resource.

*/ inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); } /** *

The ARN of the resource.

*/ inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); } /** *

The ARN of the resource.

*/ inline NetworkResource& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;} /** *

The ARN of the resource.

*/ inline NetworkResource& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;} /** *

The ARN of the resource.

*/ inline NetworkResource& WithResourceArn(const char* value) { SetResourceArn(value); return *this;} /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline const Aws::String& GetDefinition() const{ return m_definition; } /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline bool DefinitionHasBeenSet() const { return m_definitionHasBeenSet; } /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline void SetDefinition(const Aws::String& value) { m_definitionHasBeenSet = true; m_definition = value; } /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline void SetDefinition(Aws::String&& value) { m_definitionHasBeenSet = true; m_definition = std::move(value); } /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline void SetDefinition(const char* value) { m_definitionHasBeenSet = true; m_definition.assign(value); } /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline NetworkResource& WithDefinition(const Aws::String& value) { SetDefinition(value); return *this;} /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline NetworkResource& WithDefinition(Aws::String&& value) { SetDefinition(std::move(value)); return *this;} /** *

Information about the resource, in JSON format. Network Manager gets this * information by describing the resource using its Describe API call.

*/ inline NetworkResource& WithDefinition(const char* value) { SetDefinition(value); return *this;} /** *

The time that the resource definition was retrieved.

*/ inline const Aws::Utils::DateTime& GetDefinitionTimestamp() const{ return m_definitionTimestamp; } /** *

The time that the resource definition was retrieved.

*/ inline bool DefinitionTimestampHasBeenSet() const { return m_definitionTimestampHasBeenSet; } /** *

The time that the resource definition was retrieved.

*/ inline void SetDefinitionTimestamp(const Aws::Utils::DateTime& value) { m_definitionTimestampHasBeenSet = true; m_definitionTimestamp = value; } /** *

The time that the resource definition was retrieved.

*/ inline void SetDefinitionTimestamp(Aws::Utils::DateTime&& value) { m_definitionTimestampHasBeenSet = true; m_definitionTimestamp = std::move(value); } /** *

The time that the resource definition was retrieved.

*/ inline NetworkResource& WithDefinitionTimestamp(const Aws::Utils::DateTime& value) { SetDefinitionTimestamp(value); return *this;} /** *

The time that the resource definition was retrieved.

*/ inline NetworkResource& WithDefinitionTimestamp(Aws::Utils::DateTime&& value) { SetDefinitionTimestamp(std::move(value)); return *this;} /** *

The tags.

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

The tags.

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

The tags.

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

The tags.

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

The tags.

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

The tags.

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

The tags.

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

The tags.

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

The resource metadata.

*/ inline const Aws::Map& GetMetadata() const{ return m_metadata; } /** *

The resource metadata.

*/ inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } /** *

The resource metadata.

*/ inline void SetMetadata(const Aws::Map& value) { m_metadataHasBeenSet = true; m_metadata = value; } /** *

The resource metadata.

*/ inline void SetMetadata(Aws::Map&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } /** *

The resource metadata.

*/ inline NetworkResource& WithMetadata(const Aws::Map& value) { SetMetadata(value); return *this;} /** *

The resource metadata.

*/ inline NetworkResource& WithMetadata(Aws::Map&& value) { SetMetadata(std::move(value)); return *this;} /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(const Aws::String& key, const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, value); return *this; } /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(Aws::String&& key, const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata.emplace(std::move(key), value); return *this; } /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(const Aws::String& key, Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, std::move(value)); return *this; } /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(Aws::String&& key, Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata.emplace(std::move(key), std::move(value)); return *this; } /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(const char* key, Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, std::move(value)); return *this; } /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(Aws::String&& key, const char* value) { m_metadataHasBeenSet = true; m_metadata.emplace(std::move(key), value); return *this; } /** *

The resource metadata.

*/ inline NetworkResource& AddMetadata(const char* key, const char* value) { m_metadataHasBeenSet = true; m_metadata.emplace(key, value); return *this; } private: Aws::String m_registeredGatewayArn; bool m_registeredGatewayArnHasBeenSet = false; Aws::String m_coreNetworkId; bool m_coreNetworkIdHasBeenSet = false; Aws::String m_awsRegion; bool m_awsRegionHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; Aws::String m_resourceId; bool m_resourceIdHasBeenSet = false; Aws::String m_resourceArn; bool m_resourceArnHasBeenSet = false; Aws::String m_definition; bool m_definitionHasBeenSet = false; Aws::Utils::DateTime m_definitionTimestamp; bool m_definitionTimestampHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Map m_metadata; bool m_metadataHasBeenSet = false; }; } // namespace Model } // namespace NetworkManager } // namespace Aws