// *** 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;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Dayu.Outputs
{

    [OutputType]
    public sealed class DdosPolicyPacketFilter
    {
        /// <summary>
        /// Action of port to take. Valid values: `drop`, `drop_black`,`drop_rst`,`drop_black_rst`,`transmit`.`drop`(drop the packet), `drop_black`(drop the packet and black the ip),`drop_rst`(drop the packet and disconnect),`drop_black_rst`(drop the packet, black the ip and disconnect),`transmit`(transmit the packet).
        /// </summary>
        public readonly string? Action;
        /// <summary>
        /// End port of the destination. Valid value ranges: (0~65535). It must be greater than `d_start_port`.
        /// </summary>
        public readonly int? DEndPort;
        /// <summary>
        /// Start port of the destination. Valid value ranges: (0~65535).
        /// </summary>
        public readonly int? DStartPort;
        /// <summary>
        /// The depth of match. Valid value ranges: (0~1500).
        /// </summary>
        public readonly int? Depth;
        /// <summary>
        /// Indicate whether to include the key word/regular expression or not.
        /// </summary>
        public readonly bool? IsInclude;
        /// <summary>
        /// Indicate whether to check load or not, `begin_l5` means to match and `no_match` means not.
        /// </summary>
        public readonly string? MatchBegin;
        /// <summary>
        /// The key word or regular expression.
        /// </summary>
        public readonly string? MatchStr;
        /// <summary>
        /// Match type. Valid values: `sunday` and `pcre`. `sunday` means key word match while `pcre` means regular match.
        /// </summary>
        public readonly string? MatchType;
        /// <summary>
        /// The offset of match. Valid value ranges: (0~1500).
        /// </summary>
        public readonly int? Offset;
        /// <summary>
        /// The max length of the packet. Valid value ranges: (0~1500)(Mbps). It must be greater than `pkt_length_min`.
        /// </summary>
        public readonly int? PktLengthMax;
        /// <summary>
        /// The minimum length of the packet. Valid value ranges: (0~1500)(Mbps).
        /// </summary>
        public readonly int? PktLengthMin;
        /// <summary>
        /// Protocol. Valid values: `tcp`, `udp`, `icmp`, `all`.
        /// </summary>
        public readonly string? Protocol;
        /// <summary>
        /// End port of the source. Valid value ranges: (0~65535). It must be greater than `s_start_port`.
        /// </summary>
        public readonly int? SEndPort;
        /// <summary>
        /// Start port of the source. Valid value ranges: (0~65535).
        /// </summary>
        public readonly int? SStartPort;

        [OutputConstructor]
        private DdosPolicyPacketFilter(
            string? action,

            int? dEndPort,

            int? dStartPort,

            int? depth,

            bool? isInclude,

            string? matchBegin,

            string? matchStr,

            string? matchType,

            int? offset,

            int? pktLengthMax,

            int? pktLengthMin,

            string? protocol,

            int? sEndPort,

            int? sStartPort)
        {
            Action = action;
            DEndPort = dEndPort;
            DStartPort = dStartPort;
            Depth = depth;
            IsInclude = isInclude;
            MatchBegin = matchBegin;
            MatchStr = matchStr;
            MatchType = matchType;
            Offset = offset;
            PktLengthMax = pktLengthMax;
            PktLengthMin = pktLengthMin;
            Protocol = protocol;
            SEndPort = sEndPort;
            SStartPort = sStartPort;
        }
    }
}
