<filename>sdk/dotnet/Tencentcloud/Dayu/Inputs/DdosPolicyV2PacketFilterArgs.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;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Dayu.Inputs
{

    public sealed class DdosPolicyV2PacketFilterArgs : Pulumi.ResourceArgs
    {
        /// <summary>
        /// Action, take the value [drop,transmit,drop_black (discard and black out),drop_rst (Interception),drop_black_rst (intercept and block),forward].
        /// </summary>
        [Input("action", required: true)]
        public Input<string> Action { get; set; } = null!;

        /// <summary>
        /// The end destination port, take the value 1~65535, which must be greater than or equal to the starting destination port.
        /// </summary>
        [Input("dPortEnd", required: true)]
        public Input<int> DPortEnd { get; set; } = null!;

        /// <summary>
        /// From the destination port, take the value 0~65535.
        /// </summary>
        [Input("dPortStart", required: true)]
        public Input<int> DPortStart { get; set; } = null!;

        /// <summary>
        /// Detection depth from the detection position, value [0,1500].
        /// </summary>
        [Input("depth", required: true)]
        public Input<int> Depth { get; set; } = null!;

        /// <summary>
        /// Second detection depth starting from the second detection position, value [0,1500].
        /// </summary>
        [Input("depth2", required: true)]
        public Input<int> Depth2 { get; set; } = null!;

        /// <summary>
        /// Whether to include the detected value, take the value [0 (included),1 (not included)].
        /// </summary>
        [Input("isNot", required: true)]
        public Input<int> IsNot { get; set; } = null!;

        /// <summary>
        /// Whether the second detection contains the detected value, the value [0 (included),1 (not included)].
        /// </summary>
        [Input("isNot2", required: true)]
        public Input<int> IsNot2 { get; set; } = null!;

        /// <summary>
        /// Detect position, take the value [begin_l3 (IP header),begin_l4 (TCP/UDP header),begin_l5 (T load), no_match (mismatch)].
        /// </summary>
        [Input("matchBegin", required: true)]
        public Input<string> MatchBegin { get; set; } = null!;

        /// <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>
        [Input("matchBegin2", required: true)]
        public Input<string> MatchBegin2 { get; set; } = null!;

        /// <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>
        [Input("matchLogic", required: true)]
        public Input<string> MatchLogic { get; set; } = null!;

        /// <summary>
        /// Detection type, value [sunday (keyword),pcre (regular expression)].
        /// </summary>
        [Input("matchType", required: true)]
        public Input<string> MatchType { get; set; } = null!;

        /// <summary>
        /// The second type of detection, takes the value [sunday (keyword),pcre (regular expression)].
        /// </summary>
        [Input("matchType2", required: true)]
        public Input<string> MatchType2 { get; set; } = null!;

        /// <summary>
        /// Offset from detection position, value range [0, Depth].
        /// </summary>
        [Input("offset", required: true)]
        public Input<int> Offset { get; set; } = null!;

        /// <summary>
        /// Offset from the second detection position, value range [0,Depth2].
        /// </summary>
        [Input("offset2", required: true)]
        public Input<int> Offset2 { get; set; } = null!;

        /// <summary>
        /// The maximum message length, taken from 1 to 1500, must be greater than or equal to the minimum message length.
        /// </summary>
        [Input("pktlenMax", required: true)]
        public Input<int> PktlenMax { get; set; } = null!;

        /// <summary>
        /// Minimum message length, 1-1500.
        /// </summary>
        [Input("pktlenMin", required: true)]
        public Input<int> PktlenMin { get; set; } = null!;

        /// <summary>
        /// Protocol, value [tcp udp icmp all].
        /// </summary>
        [Input("protocol", required: true)]
        public Input<string> Protocol { get; set; } = null!;

        /// <summary>
        /// End source port, take the value 1~65535, must be greater than or equal to the starting source port.
        /// </summary>
        [Input("sPortEnd", required: true)]
        public Input<int> SPortEnd { get; set; } = null!;

        /// <summary>
        /// Start the source port, take the value 0~65535.
        /// </summary>
        [Input("sPortStart", required: true)]
        public Input<int> SPortStart { get; set; } = null!;

        /// <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>
        [Input("str", required: true)]
        public Input<string> Str { get; set; } = null!;

        /// <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>
        [Input("str2", required: true)]
        public Input<string> Str2 { get; set; } = null!;

        public DdosPolicyV2PacketFilterArgs()
        {
        }
    }
}
