// *** 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 DdosPolicyV2PacketFilter
    {
        /// <summary>
        /// Action, take the value [drop,transmit,drop_black (discard and black out),drop_rst (Interception),drop_black_rst (intercept and block),forward].
        /// </summary>
        public readonly string Action;
        /// <summary>
        /// The end destination port, take the value 1~65535, which must be greater than or equal to the starting destination port.
        /// </summary>
        public readonly int DPortEnd;
        /// <summary>
        /// From the destination port, take the value 0~65535.
        /// </summary>
        public readonly int DPortStart;
        /// <summary>
        /// Detection depth from the detection position, value [0,1500].
        /// </summary>
        public readonly int Depth;
        /// <summary>
        /// Second detection depth starting from the second detection position, value [0,1500].
        /// </summary>
        public readonly int Depth2;
        /// <summary>
        /// Whether to include the detected value, take the value [0 (included),1 (not included)].
        /// </summary>
        public readonly int IsNot;
        /// <summary>
        /// Whether the second detection contains the detected value, the value [0 (included),1 (not included)].
        /// </summary>
        public readonly int IsNot2;
        /// <summary>
        /// Detect position, take the value [begin_l3 (IP header),begin_l4 (TCP/UDP header),begin_l5 (T load), no_match (mismatch)].
        /// </summary>
        public readonly string MatchBegin;
        /// <summary>
        /// The second detection position. take the value [begin_l3 (IP header),begin_l4 (TCP/UDP header),begin_l5 (T load), no_match (mismatch)].
        /// </summary>
        public readonly string MatchBegin2;
        /// <summary>
        /// When there is a second detection condition, the and/or relationship with the first detection condition, takes the value [And (and relationship),none (fill in this value when there is no second detection condition)].
        /// </summary>
        public readonly string MatchLogic;
        /// <summary>
        /// Detection type, value [sunday (keyword),pcre (regular expression)].
        /// </summary>
        public readonly string MatchType;
        /// <summary>
        /// The second type of detection, takes the value [sunday (keyword),pcre (regular expression)].
        /// </summary>
        public readonly string MatchType2;
        /// <summary>
        /// Offset from detection position, value range [0, Depth].
        /// </summary>
        public readonly int Offset;
        /// <summary>
        /// Offset from the second detection position, value range [0,Depth2].
        /// </summary>
        public readonly int Offset2;
        /// <summary>
        /// The maximum message length, taken from 1 to 1500, must be greater than or equal to the minimum message length.
        /// </summary>
        public readonly int PktlenMax;
        /// <summary>
        /// Minimum message length, 1-1500.
        /// </summary>
        public readonly int PktlenMin;
        /// <summary>
        /// Protocol, value [tcp udp icmp all].
        /// </summary>
        public readonly string Protocol;
        /// <summary>
        /// End source port, take the value 1~65535, must be greater than or equal to the starting source port.
        /// </summary>
        public readonly int SPortEnd;
        /// <summary>
        /// Start the source port, take the value 0~65535.
        /// </summary>
        public readonly int SPortStart;
        /// <summary>
        /// Detect values, key strings or regular expressions, take the value [When the detection type is sunday, please fill in the string or hexadecimal bytecode, for example 13233 corresponds to the hexadecimal bytecode of the string `123`;When the detection type is pcre, please fill in the regular expression string;].
        /// </summary>
        public readonly string Str;
        /// <summary>
        /// The second detection value, the key string or regular expression, takes the value [When the detection type is sunday, please fill in the string or hexadecimal bytecode, for example 13233 corresponds to the hexadecimal bytecode of the string `123`;When the detection type is pcre, please fill in the regular expression string;].
        /// </summary>
        public readonly string Str2;

        [OutputConstructor]
        private DdosPolicyV2PacketFilter(
            string action,

            int dPortEnd,

            int dPortStart,

            int depth,

            int depth2,

            int isNot,

            int isNot2,

            string matchBegin,

            string matchBegin2,

            string matchLogic,

            string matchType,

            string matchType2,

            int offset,

            int offset2,

            int pktlenMax,

            int pktlenMin,

            string protocol,

            int sPortEnd,

            int sPortStart,

            string str,

            string str2)
        {
            Action = action;
            DPortEnd = dPortEnd;
            DPortStart = dPortStart;
            Depth = depth;
            Depth2 = depth2;
            IsNot = isNot;
            IsNot2 = isNot2;
            MatchBegin = matchBegin;
            MatchBegin2 = matchBegin2;
            MatchLogic = matchLogic;
            MatchType = matchType;
            MatchType2 = matchType2;
            Offset = offset;
            Offset2 = offset2;
            PktlenMax = pktlenMax;
            PktlenMin = pktlenMin;
            Protocol = protocol;
            SPortEnd = sPortEnd;
            SPortStart = sPortStart;
            Str = str;
            Str2 = str2;
        }
    }
}
