<filename>sdk/dotnet/Zpa/ScimAttribute/GetSCIMAttributeHeader.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 zscaler.PulumiPackage.Zpa.ScimAttribute
{
    public static class GetSCIMAttributeHeader
    {
        /// <summary>
        /// Use the **zpa_scim_attribute_header** data source to get information about a SCIM attribute from an Identity Provider (IdP). This data source can then be referenced in an Access Policy, Timeout policy, Forwarding Policy, Inspection Policy or Inspection Policy.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Zpa = Pulumi.Zpa;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var givenName = Zpa.ScimAttribute.GetSCIMAttributeHeader.Invoke(new()
        ///     {
        ///         IdpName = "IdP_Name",
        ///         Name = "name.givenName",
        ///     });
        /// 
        ///     var familyName = Zpa.ScimAttribute.GetSCIMAttributeHeader.Invoke(new()
        ///     {
        ///         IdpName = "IdP_Name",
        ///         Name = "name.familyName",
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetSCIMAttributeHeaderResult> InvokeAsync(GetSCIMAttributeHeaderArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSCIMAttributeHeaderResult>("zpa:ScimAttribute/getSCIMAttributeHeader:getSCIMAttributeHeader", args ?? new GetSCIMAttributeHeaderArgs(), options.WithDefaults());

        /// <summary>
        /// Use the **zpa_scim_attribute_header** data source to get information about a SCIM attribute from an Identity Provider (IdP). This data source can then be referenced in an Access Policy, Timeout policy, Forwarding Policy, Inspection Policy or Inspection Policy.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Zpa = Pulumi.Zpa;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var givenName = Zpa.ScimAttribute.GetSCIMAttributeHeader.Invoke(new()
        ///     {
        ///         IdpName = "IdP_Name",
        ///         Name = "name.givenName",
        ///     });
        /// 
        ///     var familyName = Zpa.ScimAttribute.GetSCIMAttributeHeader.Invoke(new()
        ///     {
        ///         IdpName = "IdP_Name",
        ///         Name = "name.familyName",
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetSCIMAttributeHeaderResult> Invoke(GetSCIMAttributeHeaderInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSCIMAttributeHeaderResult>("zpa:ScimAttribute/getSCIMAttributeHeader:getSCIMAttributeHeader", args ?? new GetSCIMAttributeHeaderInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSCIMAttributeHeaderArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// (string) The ID of the IdP corresponding to the SAML attribute.
        /// </summary>
        [Input("idpId")]
        public string? IdpId { get; set; }

        /// <summary>
        /// The name of the scim attribute header that must be exported.
        /// </summary>
        [Input("idpName")]
        public string? IdpName { get; set; }

        /// <summary>
        /// The name of the scim attribute header to be exported.
        /// </summary>
        [Input("name")]
        public string? Name { get; set; }

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

    public sealed class GetSCIMAttributeHeaderInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// (string) The ID of the IdP corresponding to the SAML attribute.
        /// </summary>
        [Input("idpId")]
        public Input<string>? IdpId { get; set; }

        /// <summary>
        /// The name of the scim attribute header that must be exported.
        /// </summary>
        [Input("idpName")]
        public Input<string>? IdpName { get; set; }

        /// <summary>
        /// The name of the scim attribute header to be exported.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

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


    [OutputType]
    public sealed class GetSCIMAttributeHeaderResult
    {
        /// <summary>
        /// (string)
        /// </summary>
        public readonly ImmutableArray<string> CanonicalValues;
        /// <summary>
        /// (bool)
        /// </summary>
        public readonly bool CaseSensitive;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string CreationTime;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string DataType;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// (string) The ID of the IdP corresponding to the SAML attribute.
        /// </summary>
        public readonly string? IdpId;
        public readonly string? IdpName;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string ModifiedTime;
        public readonly string Modifiedby;
        /// <summary>
        /// (bool)
        /// </summary>
        public readonly bool Multivalued;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string Mutability;
        public readonly string? Name;
        /// <summary>
        /// (bool)
        /// </summary>
        public readonly bool Required;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string Returned;
        /// <summary>
        /// (string)
        /// </summary>
        public readonly string SchemaUri;
        /// <summary>
        /// (bool)
        /// </summary>
        public readonly bool Uniqueness;
        public readonly ImmutableArray<string> Values;

        [OutputConstructor]
        private GetSCIMAttributeHeaderResult(
            ImmutableArray<string> canonicalValues,

            bool caseSensitive,

            string creationTime,

            string dataType,

            string description,

            string id,

            string? idpId,

            string? idpName,

            string modifiedTime,

            string modifiedby,

            bool multivalued,

            string mutability,

            string? name,

            bool required,

            string returned,

            string schemaUri,

            bool uniqueness,

            ImmutableArray<string> values)
        {
            CanonicalValues = canonicalValues;
            CaseSensitive = caseSensitive;
            CreationTime = creationTime;
            DataType = dataType;
            Description = description;
            Id = id;
            IdpId = idpId;
            IdpName = idpName;
            ModifiedTime = modifiedTime;
            Modifiedby = modifiedby;
            Multivalued = multivalued;
            Mutability = mutability;
            Name = name;
            Required = required;
            Returned = returned;
            SchemaUri = schemaUri;
            Uniqueness = uniqueness;
            Values = values;
        }
    }
}
