/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the network-firewall-2020-11-12.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.NetworkFirewall.Model
{
///
/// Container for the parameters to the CreateFirewall operation.
/// Creates an Network Firewall Firewall and accompanying FirewallStatus
/// for a VPC.
///
///
///
/// The firewall defines the configuration settings for an Network Firewall firewall.
/// The settings that you can define at creation 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.
///
///
///
/// After you create a firewall, you can provide additional settings, like the logging
/// configuration.
///
///
///
/// To update the settings for a firewall, you use the operations that apply to the settings
/// themselves, for example UpdateLoggingConfiguration, AssociateSubnets,
/// and UpdateFirewallDeleteProtection.
///
///
///
/// To manage a firewall's tags, use the standard Amazon Web Services resource tagging
/// operations, ListTagsForResource, TagResource, and UntagResource.
///
///
///
/// To retrieve information about firewalls, use ListFirewalls and DescribeFirewall.
///
///
public partial class CreateFirewallRequest : AmazonNetworkFirewallRequest
{
private bool? _deleteProtection;
private string _description;
private EncryptionConfiguration _encryptionConfiguration;
private string _firewallName;
private string _firewallPolicyArn;
private bool? _firewallPolicyChangeProtection;
private bool? _subnetChangeProtection;
private List _subnetMappings = new List();
private List _tags = new List();
private string _vpcId;
///
/// Gets and sets the property 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
.
///
///
public bool DeleteProtection
{
get { return this._deleteProtection.GetValueOrDefault(); }
set { this._deleteProtection = value; }
}
// Check to see if DeleteProtection property is set
internal bool IsSetDeleteProtection()
{
return this._deleteProtection.HasValue;
}
///
/// Gets and sets the property Description.
///
/// A description of the firewall.
///
///
[AWSProperty(Max=512)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property EncryptionConfiguration.
///
/// A complex type that contains settings for encryption of your firewall resources.
///
///
public EncryptionConfiguration EncryptionConfiguration
{
get { return this._encryptionConfiguration; }
set { this._encryptionConfiguration = value; }
}
// Check to see if EncryptionConfiguration property is set
internal bool IsSetEncryptionConfiguration()
{
return this._encryptionConfiguration != null;
}
///
/// Gets and sets the property FirewallName.
///
/// The descriptive name of the firewall. You can't change the name of a firewall after
/// you create it.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string FirewallName
{
get { return this._firewallName; }
set { this._firewallName = value; }
}
// Check to see if FirewallName property is set
internal bool IsSetFirewallName()
{
return this._firewallName != null;
}
///
/// Gets and sets the property FirewallPolicyArn.
///
/// The Amazon Resource Name (ARN) of the FirewallPolicy that you want to use for
/// the firewall.
///
///
[AWSProperty(Required=true, Min=1, Max=256)]
public string FirewallPolicyArn
{
get { return this._firewallPolicyArn; }
set { this._firewallPolicyArn = value; }
}
// Check to see if FirewallPolicyArn property is set
internal bool IsSetFirewallPolicyArn()
{
return this._firewallPolicyArn != null;
}
///
/// Gets and sets the property 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
.
///
///
public bool FirewallPolicyChangeProtection
{
get { return this._firewallPolicyChangeProtection.GetValueOrDefault(); }
set { this._firewallPolicyChangeProtection = value; }
}
// Check to see if FirewallPolicyChangeProtection property is set
internal bool IsSetFirewallPolicyChangeProtection()
{
return this._firewallPolicyChangeProtection.HasValue;
}
///
/// Gets and sets the property 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
.
///
///
public bool SubnetChangeProtection
{
get { return this._subnetChangeProtection.GetValueOrDefault(); }
set { this._subnetChangeProtection = value; }
}
// Check to see if SubnetChangeProtection property is set
internal bool IsSetSubnetChangeProtection()
{
return this._subnetChangeProtection.HasValue;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public List SubnetMappings
{
get { return this._subnetMappings; }
set { this._subnetMappings = value; }
}
// Check to see if SubnetMappings property is set
internal bool IsSetSubnetMappings()
{
return this._subnetMappings != null && this._subnetMappings.Count > 0;
}
///
/// Gets and sets the property Tags.
///
/// The key:value pairs to associate with the resource.
///
///
[AWSProperty(Min=1, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string VpcId
{
get { return this._vpcId; }
set { this._vpcId = value; }
}
// Check to see if VpcId property is set
internal bool IsSetVpcId()
{
return this._vpcId != null;
}
}
}