/** * 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 NetworkFirewall { namespace Model { /** *

The firewall defines the configuration settings for an Network Firewall * firewall. These settings include the firewall policy, the subnets in your VPC to * use for the firewall endpoints, and any tags that are attached to the firewall * Amazon Web Services resource.

The status of the firewall, for example * whether it's ready to filter network traffic, is provided in the corresponding * FirewallStatus. You can retrieve both objects by calling * DescribeFirewall.

See Also:

AWS * API Reference

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

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline const Aws::String& GetFirewallName() const{ return m_firewallName; } /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline bool FirewallNameHasBeenSet() const { return m_firewallNameHasBeenSet; } /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline void SetFirewallName(const Aws::String& value) { m_firewallNameHasBeenSet = true; m_firewallName = value; } /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline void SetFirewallName(Aws::String&& value) { m_firewallNameHasBeenSet = true; m_firewallName = std::move(value); } /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline void SetFirewallName(const char* value) { m_firewallNameHasBeenSet = true; m_firewallName.assign(value); } /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline Firewall& WithFirewallName(const Aws::String& value) { SetFirewallName(value); return *this;} /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline Firewall& WithFirewallName(Aws::String&& value) { SetFirewallName(std::move(value)); return *this;} /** *

The descriptive name of the firewall. You can't change the name of a firewall * after you create it.

*/ inline Firewall& WithFirewallName(const char* value) { SetFirewallName(value); return *this;} /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline const Aws::String& GetFirewallArn() const{ return m_firewallArn; } /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline bool FirewallArnHasBeenSet() const { return m_firewallArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline void SetFirewallArn(const Aws::String& value) { m_firewallArnHasBeenSet = true; m_firewallArn = value; } /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline void SetFirewallArn(Aws::String&& value) { m_firewallArnHasBeenSet = true; m_firewallArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline void SetFirewallArn(const char* value) { m_firewallArnHasBeenSet = true; m_firewallArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline Firewall& WithFirewallArn(const Aws::String& value) { SetFirewallArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline Firewall& WithFirewallArn(Aws::String&& value) { SetFirewallArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the firewall.

*/ inline Firewall& WithFirewallArn(const char* value) { SetFirewallArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline const Aws::String& GetFirewallPolicyArn() const{ return m_firewallPolicyArn; } /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline bool FirewallPolicyArnHasBeenSet() const { return m_firewallPolicyArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline void SetFirewallPolicyArn(const Aws::String& value) { m_firewallPolicyArnHasBeenSet = true; m_firewallPolicyArn = value; } /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline void SetFirewallPolicyArn(Aws::String&& value) { m_firewallPolicyArnHasBeenSet = true; m_firewallPolicyArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline void SetFirewallPolicyArn(const char* value) { m_firewallPolicyArnHasBeenSet = true; m_firewallPolicyArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline Firewall& WithFirewallPolicyArn(const Aws::String& value) { SetFirewallPolicyArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline Firewall& WithFirewallPolicyArn(Aws::String&& value) { SetFirewallPolicyArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the firewall policy.

The * relationship of firewall to firewall policy is many to one. Each firewall * requires one firewall policy association, and you can use the same firewall * policy for multiple firewalls.

*/ inline Firewall& WithFirewallPolicyArn(const char* value) { SetFirewallPolicyArn(value); return *this;} /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline Firewall& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline Firewall& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The unique identifier of the VPC where the firewall is in use.

*/ inline Firewall& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline const Aws::Vector& GetSubnetMappings() const{ return m_subnetMappings; } /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline bool SubnetMappingsHasBeenSet() const { return m_subnetMappingsHasBeenSet; } /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline void SetSubnetMappings(const Aws::Vector& value) { m_subnetMappingsHasBeenSet = true; m_subnetMappings = value; } /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline void SetSubnetMappings(Aws::Vector&& value) { m_subnetMappingsHasBeenSet = true; m_subnetMappings = std::move(value); } /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline Firewall& WithSubnetMappings(const Aws::Vector& value) { SetSubnetMappings(value); return *this;} /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline Firewall& WithSubnetMappings(Aws::Vector&& value) { SetSubnetMappings(std::move(value)); return *this;} /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline Firewall& AddSubnetMappings(const SubnetMapping& value) { m_subnetMappingsHasBeenSet = true; m_subnetMappings.push_back(value); return *this; } /** *

The public subnets that Network Firewall is using for the firewall. Each * subnet must belong to a different Availability Zone.

*/ inline Firewall& AddSubnetMappings(SubnetMapping&& value) { m_subnetMappingsHasBeenSet = true; m_subnetMappings.push_back(std::move(value)); return *this; } /** *

A flag indicating whether it is possible to delete the firewall. A setting of * TRUE indicates that the firewall is protected against deletion. Use * this setting to protect against accidentally deleting a firewall that is in use. * When you create a firewall, the operation initializes this flag to * TRUE.

*/ inline bool GetDeleteProtection() const{ return m_deleteProtection; } /** *

A flag indicating whether it is possible to delete the firewall. A setting of * TRUE indicates that the firewall is protected against deletion. Use * this setting to protect against accidentally deleting a firewall that is in use. * When you create a firewall, the operation initializes this flag to * TRUE.

*/ inline bool DeleteProtectionHasBeenSet() const { return m_deleteProtectionHasBeenSet; } /** *

A flag indicating whether it is possible to delete the firewall. A setting of * TRUE indicates that the firewall is protected against deletion. Use * this setting to protect against accidentally deleting a firewall that is in use. * When you create a firewall, the operation initializes this flag to * TRUE.

*/ inline void SetDeleteProtection(bool value) { m_deleteProtectionHasBeenSet = true; m_deleteProtection = value; } /** *

A flag indicating whether it is possible to delete the firewall. A setting of * TRUE indicates that the firewall is protected against deletion. Use * this setting to protect against accidentally deleting a firewall that is in use. * When you create a firewall, the operation initializes this flag to * TRUE.

*/ inline Firewall& WithDeleteProtection(bool value) { SetDeleteProtection(value); return *this;} /** *

A setting indicating whether the firewall is protected against changes to the * subnet associations. Use this setting to protect against accidentally modifying * the subnet associations for a firewall that is in use. When you create a * firewall, the operation initializes this setting to TRUE.

*/ inline bool GetSubnetChangeProtection() const{ return m_subnetChangeProtection; } /** *

A setting indicating whether the firewall is protected against changes to the * subnet associations. Use this setting to protect against accidentally modifying * the subnet associations for a firewall that is in use. When you create a * firewall, the operation initializes this setting to TRUE.

*/ inline bool SubnetChangeProtectionHasBeenSet() const { return m_subnetChangeProtectionHasBeenSet; } /** *

A setting indicating whether the firewall is protected against changes to the * subnet associations. Use this setting to protect against accidentally modifying * the subnet associations for a firewall that is in use. When you create a * firewall, the operation initializes this setting to TRUE.

*/ inline void SetSubnetChangeProtection(bool value) { m_subnetChangeProtectionHasBeenSet = true; m_subnetChangeProtection = value; } /** *

A setting indicating whether the firewall is protected against changes to the * subnet associations. Use this setting to protect against accidentally modifying * the subnet associations for a firewall that is in use. When you create a * firewall, the operation initializes this setting to TRUE.

*/ inline Firewall& WithSubnetChangeProtection(bool value) { SetSubnetChangeProtection(value); return *this;} /** *

A setting indicating whether the firewall is protected against a change to * the firewall policy association. Use this setting to protect against * accidentally modifying the firewall policy for a firewall that is in use. When * you create a firewall, the operation initializes this setting to * TRUE.

*/ inline bool GetFirewallPolicyChangeProtection() const{ return m_firewallPolicyChangeProtection; } /** *

A setting indicating whether the firewall is protected against a change to * the firewall policy association. Use this setting to protect against * accidentally modifying the firewall policy for a firewall that is in use. When * you create a firewall, the operation initializes this setting to * TRUE.

*/ inline bool FirewallPolicyChangeProtectionHasBeenSet() const { return m_firewallPolicyChangeProtectionHasBeenSet; } /** *

A setting indicating whether the firewall is protected against a change to * the firewall policy association. Use this setting to protect against * accidentally modifying the firewall policy for a firewall that is in use. When * you create a firewall, the operation initializes this setting to * TRUE.

*/ inline void SetFirewallPolicyChangeProtection(bool value) { m_firewallPolicyChangeProtectionHasBeenSet = true; m_firewallPolicyChangeProtection = value; } /** *

A setting indicating whether the firewall is protected against a change to * the firewall policy association. Use this setting to protect against * accidentally modifying the firewall policy for a firewall that is in use. When * you create a firewall, the operation initializes this setting to * TRUE.

*/ inline Firewall& WithFirewallPolicyChangeProtection(bool value) { SetFirewallPolicyChangeProtection(value); return *this;} /** *

A description of the firewall.

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

A description of the firewall.

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

A description of the firewall.

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

A description of the firewall.

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

A description of the firewall.

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

A description of the firewall.

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

A description of the firewall.

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

A description of the firewall.

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

The unique identifier for the firewall.

*/ inline const Aws::String& GetFirewallId() const{ return m_firewallId; } /** *

The unique identifier for the firewall.

*/ inline bool FirewallIdHasBeenSet() const { return m_firewallIdHasBeenSet; } /** *

The unique identifier for the firewall.

*/ inline void SetFirewallId(const Aws::String& value) { m_firewallIdHasBeenSet = true; m_firewallId = value; } /** *

The unique identifier for the firewall.

*/ inline void SetFirewallId(Aws::String&& value) { m_firewallIdHasBeenSet = true; m_firewallId = std::move(value); } /** *

The unique identifier for the firewall.

*/ inline void SetFirewallId(const char* value) { m_firewallIdHasBeenSet = true; m_firewallId.assign(value); } /** *

The unique identifier for the firewall.

*/ inline Firewall& WithFirewallId(const Aws::String& value) { SetFirewallId(value); return *this;} /** *

The unique identifier for the firewall.

*/ inline Firewall& WithFirewallId(Aws::String&& value) { SetFirewallId(std::move(value)); return *this;} /** *

The unique identifier for the firewall.

*/ inline Firewall& WithFirewallId(const char* value) { SetFirewallId(value); return *this;} /** *

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

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

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

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

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

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

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

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

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your firewall.

*/ inline const EncryptionConfiguration& GetEncryptionConfiguration() const{ return m_encryptionConfiguration; } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your firewall.

*/ inline bool EncryptionConfigurationHasBeenSet() const { return m_encryptionConfigurationHasBeenSet; } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your firewall.

*/ inline void SetEncryptionConfiguration(const EncryptionConfiguration& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = value; } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your firewall.

*/ inline void SetEncryptionConfiguration(EncryptionConfiguration&& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = std::move(value); } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your firewall.

*/ inline Firewall& WithEncryptionConfiguration(const EncryptionConfiguration& value) { SetEncryptionConfiguration(value); return *this;} /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your firewall.

*/ inline Firewall& WithEncryptionConfiguration(EncryptionConfiguration&& value) { SetEncryptionConfiguration(std::move(value)); return *this;} private: Aws::String m_firewallName; bool m_firewallNameHasBeenSet = false; Aws::String m_firewallArn; bool m_firewallArnHasBeenSet = false; Aws::String m_firewallPolicyArn; bool m_firewallPolicyArnHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::Vector m_subnetMappings; bool m_subnetMappingsHasBeenSet = false; bool m_deleteProtection; bool m_deleteProtectionHasBeenSet = false; bool m_subnetChangeProtection; bool m_subnetChangeProtectionHasBeenSet = false; bool m_firewallPolicyChangeProtection; bool m_firewallPolicyChangeProtectionHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_firewallId; bool m_firewallIdHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; EncryptionConfiguration m_encryptionConfiguration; bool m_encryptionConfigurationHasBeenSet = false; }; } // namespace Model } // namespace NetworkFirewall } // namespace Aws