<filename>sdk/dotnet/GetSystemTosbasedpriority.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 Pulumiverse.Fortios
{
    public static class GetSystemTosbasedpriority
    {
        /// <summary>
        /// Use this data source to get information on an fortios system tosbasedpriority
        /// </summary>
        public static Task<GetSystemTosbasedpriorityResult> InvokeAsync(GetSystemTosbasedpriorityArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemTosbasedpriorityResult>("fortios:index/getSystemTosbasedpriority:getSystemTosbasedpriority", args ?? new GetSystemTosbasedpriorityArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios system tosbasedpriority
        /// </summary>
        public static Output<GetSystemTosbasedpriorityResult> Invoke(GetSystemTosbasedpriorityInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSystemTosbasedpriorityResult>("fortios:index/getSystemTosbasedpriority:getSystemTosbasedpriority", args ?? new GetSystemTosbasedpriorityInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSystemTosbasedpriorityArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired system tosbasedpriority.
        /// </summary>
        [Input("fosid", required: true)]
        public int Fosid { get; set; }

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public string? Vdomparam { get; set; }

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

    public sealed class GetSystemTosbasedpriorityInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired system tosbasedpriority.
        /// </summary>
        [Input("fosid", required: true)]
        public Input<int> Fosid { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public Input<string>? Vdomparam { get; set; }

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


    [OutputType]
    public sealed class GetSystemTosbasedpriorityResult
    {
        /// <summary>
        /// Item ID.
        /// </summary>
        public readonly int Fosid;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// ToS based priority level to low, medium or high (these priorities match firewall traffic shaping priorities) (default = medium).
        /// </summary>
        public readonly string Priority;
        /// <summary>
        /// Value of the ToS byte in the IP datagram header (0-15, 8: minimize delay, 4: maximize throughput, 2: maximize reliability, 1: minimize monetary cost, and 0: default service).
        /// </summary>
        public readonly int Tos;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemTosbasedpriorityResult(
            int fosid,

            string id,

            string priority,

            int tos,

            string? vdomparam)
        {
            Fosid = fosid;
            Id = id;
            Priority = priority;
            Tos = tos;
            Vdomparam = vdomparam;
        }
    }
}
