/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ManagedGrafana { namespace Model { /** *

The configuration settings for in-bound network access to your workspace.

*

When this is configured, only listed IP addresses and VPC endpoints will be * able to access your workspace. Standard Grafana authentication and authorization * are still required.

Access is granted to a caller that is in either the * IP address list or the VPC endpoint list - they do not need to be in both.

*

If this is not configured, or is removed, then all IP addresses and VPC * endpoints are allowed. Standard Grafana authentication and authorization are * still required.

While both prefixListIds and * vpceIds are required, you can pass in an empty array of strings for * either parameter if you do not want to allow any of that type.

If both * are passed as empty arrays, no traffic is allowed to the workspace, because only * explicitly allowed connections are accepted.

See * Also:

AWS * API Reference

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

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline const Aws::Vector& GetPrefixListIds() const{ return m_prefixListIds; } /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline bool PrefixListIdsHasBeenSet() const { return m_prefixListIdsHasBeenSet; } /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline void SetPrefixListIds(const Aws::Vector& value) { m_prefixListIdsHasBeenSet = true; m_prefixListIds = value; } /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline void SetPrefixListIds(Aws::Vector&& value) { m_prefixListIdsHasBeenSet = true; m_prefixListIds = std::move(value); } /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline NetworkAccessConfiguration& WithPrefixListIds(const Aws::Vector& value) { SetPrefixListIds(value); return *this;} /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline NetworkAccessConfiguration& WithPrefixListIds(Aws::Vector&& value) { SetPrefixListIds(std::move(value)); return *this;} /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline NetworkAccessConfiguration& AddPrefixListIds(const Aws::String& value) { m_prefixListIdsHasBeenSet = true; m_prefixListIds.push_back(value); return *this; } /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline NetworkAccessConfiguration& AddPrefixListIds(Aws::String&& value) { m_prefixListIdsHasBeenSet = true; m_prefixListIds.push_back(std::move(value)); return *this; } /** *

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP * addresses. The IP addresses specified are allowed to access your workspace. If * the list is not included in the configuration (passed an empty array) then no IP * addresses are allowed to access the workspace. You create a prefix list using * the Amazon VPC console.

Prefix list IDs have the format * pl-1a2b3c4d .

For more information about prefix * lists, see Group * CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud * User Guide.

*/ inline NetworkAccessConfiguration& AddPrefixListIds(const char* value) { m_prefixListIdsHasBeenSet = true; m_prefixListIds.push_back(value); return *this; } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline const Aws::Vector& GetVpceIds() const{ return m_vpceIds; } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline bool VpceIdsHasBeenSet() const { return m_vpceIdsHasBeenSet; } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline void SetVpceIds(const Aws::Vector& value) { m_vpceIdsHasBeenSet = true; m_vpceIds = value; } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline void SetVpceIds(Aws::Vector&& value) { m_vpceIdsHasBeenSet = true; m_vpceIds = std::move(value); } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline NetworkAccessConfiguration& WithVpceIds(const Aws::Vector& value) { SetVpceIds(value); return *this;} /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline NetworkAccessConfiguration& WithVpceIds(Aws::Vector&& value) { SetVpceIds(std::move(value)); return *this;} /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline NetworkAccessConfiguration& AddVpceIds(const Aws::String& value) { m_vpceIdsHasBeenSet = true; m_vpceIds.push_back(value); return *this; } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline NetworkAccessConfiguration& AddVpceIds(Aws::String&& value) { m_vpceIdsHasBeenSet = true; m_vpceIds.push_back(std::move(value)); return *this; } /** *

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC * endpoints to your Amazon Managed Grafana workspace for access from within a VPC. * If a NetworkAccessConfiguration is specified then only VPC * endpoints specified here are allowed to access the workspace. If you pass in an * empty array of strings, then no VPCs are allowed to access the workspace.

*

VPC endpoint IDs have the format vpce-1a2b3c4d .

*

For more information about creating an interface VPC endpoint, see Interface * VPC endpoints in the Amazon Managed Grafana User Guide.

*

The only VPC endpoints that can be specified here are interface VPC endpoints * for Grafana workspaces (using the * com.amazonaws.[region].grafana-workspace service endpoint). Other * VPC endpoints are ignored.

*/ inline NetworkAccessConfiguration& AddVpceIds(const char* value) { m_vpceIdsHasBeenSet = true; m_vpceIds.push_back(value); return *this; } private: Aws::Vector m_prefixListIds; bool m_prefixListIdsHasBeenSet = false; Aws::Vector m_vpceIds; bool m_vpceIdsHasBeenSet = false; }; } // namespace Model } // namespace ManagedGrafana } // namespace Aws