<filename>sdk/dotnet/Outputs/AviatrixGatewayDnatConnectionPolicy.cs// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.Aviatrix.Outputs
{

    [OutputType]
    public sealed class AviatrixGatewayDnatConnectionPolicy
    {
        /// <summary>
        /// This is an option to program the route entry 'DST CIDR pointing to Aviatrix Gateway' into Cloud platform routing table. Type: Boolean. Default: True. Available as of provider version R2.19.2+.
        /// </summary>
        public readonly bool? ApplyRouteEntry;
        /// <summary>
        /// This is a qualifier condition that specifies output connection where the rule applies. Default value: "None".
        /// </summary>
        public readonly string? Connection;
        /// <summary>
        /// This is a rule field that specifies the translated destination IP address when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.
        /// </summary>
        public readonly string? DnatIps;
        /// <summary>
        /// This is a rule field that specifies the translated destination port when all specified qualifier conditions meet. When not specified, this field is not used. One of the rule field must be specified for this rule to take effect.
        /// </summary>
        public readonly string? DnatPort;
        /// <summary>
        /// This is a qualifier condition that specifies a destination IP address range where the rule applies. When not specified, this field is not used.
        /// </summary>
        public readonly string? DstCidr;
        /// <summary>
        /// This is a qualifier condition that specifies a destination port where the rule applies. When not specified, this field is not used.
        /// </summary>
        public readonly string? DstPort;
        /// <summary>
        /// This field specifies which VPC private route table will not be programmed with the default route entry.
        /// </summary>
        public readonly string? ExcludeRtb;
        /// <summary>
        /// This is a qualifier condition that specifies output interface where the rule applies. When not specified, this field is not used. Must be empty when `connection` is set.
        /// </summary>
        public readonly string? Interface;
        /// <summary>
        /// This is a rule field that specifies a tag or mark of a TCP session when all qualifier conditions meet. When not specified, this field is not used.
        /// </summary>
        public readonly string? Mark;
        /// <summary>
        /// This is a qualifier condition that specifies a destination port protocol where the rule applies. When not specified, this field is not used.
        /// </summary>
        public readonly string? Protocol;
        /// <summary>
        /// This is a qualifier condition that specifies a source IP address range where the rule applies. When not specified, this field is not used.
        /// </summary>
        public readonly string? SrcCidr;
        /// <summary>
        /// This is a qualifier condition that specifies a source port that the rule applies. When not specified, this field is not used.
        /// </summary>
        public readonly string? SrcPort;

        [OutputConstructor]
        private AviatrixGatewayDnatConnectionPolicy(
            bool? applyRouteEntry,

            string? connection,

            string? dnatIps,

            string? dnatPort,

            string? dstCidr,

            string? dstPort,

            string? excludeRtb,

            string? @interface,

            string? mark,

            string? protocol,

            string? srcCidr,

            string? srcPort)
        {
            ApplyRouteEntry = applyRouteEntry;
            Connection = connection;
            DnatIps = dnatIps;
            DnatPort = dnatPort;
            DstCidr = dstCidr;
            DstPort = dstPort;
            ExcludeRtb = excludeRtb;
            Interface = @interface;
            Mark = mark;
            Protocol = protocol;
            SrcCidr = srcCidr;
            SrcPort = srcPort;
        }
    }
}
