/** * 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 namespace Aws { namespace NetworkFirewall { namespace Model { /** */ class CreateFirewallRequest : public NetworkFirewallRequest { public: AWS_NETWORKFIREWALL_API CreateFirewallRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateFirewall"; } AWS_NETWORKFIREWALL_API Aws::String SerializePayload() const override; AWS_NETWORKFIREWALL_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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 CreateFirewallRequest& 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 CreateFirewallRequest& 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 CreateFirewallRequest& WithFirewallName(const char* value) { SetFirewallName(value); return *this;} /** *

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The Amazon Resource Name (ARN) of the FirewallPolicy that you want to * use for the firewall.

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The unique identifier of the VPC where Network Firewall should create the * firewall.

You can't change this setting after you create the firewall. *

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

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

The public subnets to use for your Network Firewall firewalls. Each subnet * must belong to a different Availability Zone in the VPC. Network Firewall * creates a firewall endpoint in each subnet.

*/ inline CreateFirewallRequest& 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 CreateFirewallRequest& 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 CreateFirewallRequest& 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 CreateFirewallRequest& 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 CreateFirewallRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the firewall.

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

A description of the firewall.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

The key:value pairs to associate with the resource.

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

A complex type that contains settings for encryption of your firewall * resources.

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

A complex type that contains settings for encryption of your firewall * resources.

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

A complex type that contains settings for encryption of your firewall * resources.

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

A complex type that contains settings for encryption of your firewall * resources.

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

A complex type that contains settings for encryption of your firewall * resources.

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

A complex type that contains settings for encryption of your firewall * resources.

*/ inline CreateFirewallRequest& WithEncryptionConfiguration(EncryptionConfiguration&& value) { SetEncryptionConfiguration(std::move(value)); return *this;} private: Aws::String m_firewallName; bool m_firewallNameHasBeenSet = 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::Vector m_tags; bool m_tagsHasBeenSet = false; EncryptionConfiguration m_encryptionConfiguration; bool m_encryptionConfigurationHasBeenSet = false; }; } // namespace Model } // namespace NetworkFirewall } // namespace Aws