// *** 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 zscaler.PulumiPackage.Zia.DLP
{
    public static class GetDLPEngines
    {
        /// <summary>
        /// Use the **zia_dlp_engines** data source to get information about a ZIA DLP Engines in the Zscaler Internet Access cloud or via the API.
        /// </summary>
        public static Task<GetDLPEnginesResult> InvokeAsync(GetDLPEnginesArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetDLPEnginesResult>("zia:DLP/getDLPEngines:getDLPEngines", args ?? new GetDLPEnginesArgs(), options.WithDefaults());

        /// <summary>
        /// Use the **zia_dlp_engines** data source to get information about a ZIA DLP Engines in the Zscaler Internet Access cloud or via the API.
        /// </summary>
        public static Output<GetDLPEnginesResult> Invoke(GetDLPEnginesInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetDLPEnginesResult>("zia:DLP/getDLPEngines:getDLPEngines", args ?? new GetDLPEnginesInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetDLPEnginesArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The DLP engine name as configured by the admin. This attribute is required in POST and PUT requests for custom DLP engines.
        /// </summary>
        [Input("name")]
        public string? Name { get; set; }

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

    public sealed class GetDLPEnginesInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The DLP engine name as configured by the admin. This attribute is required in POST and PUT requests for custom DLP engines.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

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


    [OutputType]
    public sealed class GetDLPEnginesResult
    {
        public readonly bool CustomDlpEngine;
        public readonly string Description;
        public readonly string EngineExpression;
        public readonly int Id;
        public readonly string? Name;
        public readonly string PredefinedEngineName;

        [OutputConstructor]
        private GetDLPEnginesResult(
            bool customDlpEngine,

            string description,

            string engineExpression,

            int id,

            string? name,

            string predefinedEngineName)
        {
            CustomDlpEngine = customDlpEngine;
            Description = description;
            EngineExpression = engineExpression;
            Id = id;
            Name = name;
            PredefinedEngineName = predefinedEngineName;
        }
    }
}
