// *** 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.Routeros.Ip.Inputs
{

    public sealed class GetFirewallMangleInputArgs : global::Pulumi.ResourceArgs
    {
        [Input("action", required: true)]
        public Input<string> Action { get; set; } = null!;

        [Input("addressList", required: true)]
        public Input<string> AddressList { get; set; } = null!;

        [Input("addressListTimeout", required: true)]
        public Input<string> AddressListTimeout { get; set; } = null!;

        [Input("bytes", required: true)]
        public Input<int> Bytes { get; set; } = null!;

        [Input("chain", required: true)]
        public Input<string> Chain { get; set; } = null!;

        [Input("comment", required: true)]
        public Input<string> Comment { get; set; } = null!;

        [Input("connectionBytes", required: true)]
        public Input<string> ConnectionBytes { get; set; } = null!;

        [Input("connectionLimit", required: true)]
        public Input<string> ConnectionLimit { get; set; } = null!;

        [Input("connectionMark", required: true)]
        public Input<string> ConnectionMark { get; set; } = null!;

        [Input("connectionNatState", required: true)]
        public Input<string> ConnectionNatState { get; set; } = null!;

        [Input("connectionRate", required: true)]
        public Input<string> ConnectionRate { get; set; } = null!;

        [Input("connectionState", required: true)]
        public Input<string> ConnectionState { get; set; } = null!;

        [Input("connectionType", required: true)]
        public Input<string> ConnectionType { get; set; } = null!;

        [Input("content", required: true)]
        public Input<string> Content { get; set; } = null!;

        [Input("disabled", required: true)]
        public Input<bool> Disabled { get; set; } = null!;

        [Input("dscp", required: true)]
        public Input<int> Dscp { get; set; } = null!;

        [Input("dstAddress", required: true)]
        public Input<string> DstAddress { get; set; } = null!;

        [Input("dstAddressList", required: true)]
        public Input<string> DstAddressList { get; set; } = null!;

        [Input("dstAddressType", required: true)]
        public Input<string> DstAddressType { get; set; } = null!;

        [Input("dstLimit", required: true)]
        public Input<string> DstLimit { get; set; } = null!;

        [Input("dstPort", required: true)]
        public Input<string> DstPort { get; set; } = null!;

        [Input("dynamic", required: true)]
        public Input<bool> Dynamic { get; set; } = null!;

        [Input("filter")]
        private InputMap<object>? _filter;

        /// <summary>
        /// Additional request filtering options.
        /// </summary>
        public InputMap<object> Filter
        {
            get => _filter ?? (_filter = new InputMap<object>());
            set => _filter = value;
        }

        [Input("fragment", required: true)]
        public Input<bool> Fragment { get; set; } = null!;

        [Input("hotspot", required: true)]
        public Input<string> Hotspot { get; set; } = null!;

        [Input("icmpOptions", required: true)]
        public Input<string> IcmpOptions { get; set; } = null!;

        /// <summary>
        /// The ID of this resource.
        /// </summary>
        [Input("id", required: true)]
        public Input<string> Id { get; set; } = null!;

        [Input("inBridgePort", required: true)]
        public Input<string> InBridgePort { get; set; } = null!;

        [Input("inBridgePortList", required: true)]
        public Input<string> InBridgePortList { get; set; } = null!;

        [Input("inInterface", required: true)]
        public Input<string> InInterface { get; set; } = null!;

        [Input("inInterfaceList", required: true)]
        public Input<string> InInterfaceList { get; set; } = null!;

        [Input("ingressPriority", required: true)]
        public Input<int> IngressPriority { get; set; } = null!;

        [Input("invalid", required: true)]
        public Input<bool> Invalid { get; set; } = null!;

        [Input("ipsecPolicy", required: true)]
        public Input<string> IpsecPolicy { get; set; } = null!;

        [Input("ipv4Options", required: true)]
        public Input<string> Ipv4Options { get; set; } = null!;

        [Input("jumpTarget", required: true)]
        public Input<string> JumpTarget { get; set; } = null!;

        [Input("layer7Protocol", required: true)]
        public Input<string> Layer7Protocol { get; set; } = null!;

        [Input("limit", required: true)]
        public Input<string> Limit { get; set; } = null!;

        [Input("log", required: true)]
        public Input<bool> Log { get; set; } = null!;

        [Input("logPrefix", required: true)]
        public Input<string> LogPrefix { get; set; } = null!;

        [Input("newConnectionMark", required: true)]
        public Input<string> NewConnectionMark { get; set; } = null!;

        [Input("newDscp", required: true)]
        public Input<int> NewDscp { get; set; } = null!;

        [Input("newMss", required: true)]
        public Input<int> NewMss { get; set; } = null!;

        [Input("newPacketMark", required: true)]
        public Input<string> NewPacketMark { get; set; } = null!;

        [Input("newPriority", required: true)]
        public Input<string> NewPriority { get; set; } = null!;

        [Input("newRoutingMark", required: true)]
        public Input<string> NewRoutingMark { get; set; } = null!;

        [Input("newTtl", required: true)]
        public Input<string> NewTtl { get; set; } = null!;

        [Input("nth", required: true)]
        public Input<string> Nth { get; set; } = null!;

        [Input("outBridgePort", required: true)]
        public Input<string> OutBridgePort { get; set; } = null!;

        [Input("outBridgePortList", required: true)]
        public Input<string> OutBridgePortList { get; set; } = null!;

        [Input("outInterface", required: true)]
        public Input<string> OutInterface { get; set; } = null!;

        [Input("outInterfaceList", required: true)]
        public Input<string> OutInterfaceList { get; set; } = null!;

        [Input("packetMark", required: true)]
        public Input<string> PacketMark { get; set; } = null!;

        [Input("packetSize", required: true)]
        public Input<string> PacketSize { get; set; } = null!;

        [Input("packets", required: true)]
        public Input<int> Packets { get; set; } = null!;

        [Input("passthrough", required: true)]
        public Input<bool> Passthrough { get; set; } = null!;

        [Input("perConnectionClassifier", required: true)]
        public Input<string> PerConnectionClassifier { get; set; } = null!;

        [Input("port", required: true)]
        public Input<string> Port { get; set; } = null!;

        [Input("protocol", required: true)]
        public Input<string> Protocol { get; set; } = null!;

        [Input("psd", required: true)]
        public Input<string> Psd { get; set; } = null!;

        [Input("random", required: true)]
        public Input<int> Random { get; set; } = null!;

        [Input("routeDst", required: true)]
        public Input<string> RouteDst { get; set; } = null!;

        [Input("routingMark", required: true)]
        public Input<string> RoutingMark { get; set; } = null!;

        [Input("srcAddress", required: true)]
        public Input<string> SrcAddress { get; set; } = null!;

        [Input("srcAddressList", required: true)]
        public Input<string> SrcAddressList { get; set; } = null!;

        [Input("srcAddressType", required: true)]
        public Input<string> SrcAddressType { get; set; } = null!;

        [Input("srcMacAddress", required: true)]
        public Input<string> SrcMacAddress { get; set; } = null!;

        [Input("srcPort", required: true)]
        public Input<string> SrcPort { get; set; } = null!;

        [Input("tcpFlags", required: true)]
        public Input<string> TcpFlags { get; set; } = null!;

        [Input("tcpMss", required: true)]
        public Input<string> TcpMss { get; set; } = null!;

        [Input("time", required: true)]
        public Input<string> Time { get; set; } = null!;

        [Input("tlsHost", required: true)]
        public Input<string> TlsHost { get; set; } = null!;

        [Input("ttl", required: true)]
        public Input<string> Ttl { get; set; } = null!;

        public GetFirewallMangleInputArgs()
        {
        }
        public static new GetFirewallMangleInputArgs Empty => new GetFirewallMangleInputArgs();
    }
}
