// *** WARNING: this file was generated by pulumi. ***
// *** 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.AzureNative.NotificationHubs.V20170401
{
    public static class GetNotificationHubPnsCredentials
    {
        /// <summary>
        /// Lists the PNS Credentials associated with a notification hub .
        /// </summary>
        public static Task<GetNotificationHubPnsCredentialsResult> InvokeAsync(GetNotificationHubPnsCredentialsArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetNotificationHubPnsCredentialsResult>("azure-native:notificationhubs/v20170401:getNotificationHubPnsCredentials", args ?? new GetNotificationHubPnsCredentialsArgs(), options.WithDefaults());

        /// <summary>
        /// Lists the PNS Credentials associated with a notification hub .
        /// </summary>
        public static Output<GetNotificationHubPnsCredentialsResult> Invoke(GetNotificationHubPnsCredentialsInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetNotificationHubPnsCredentialsResult>("azure-native:notificationhubs/v20170401:getNotificationHubPnsCredentials", args ?? new GetNotificationHubPnsCredentialsInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetNotificationHubPnsCredentialsArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The namespace name.
        /// </summary>
        [Input("namespaceName", required: true)]
        public string NamespaceName { get; set; } = null!;

        /// <summary>
        /// The notification hub name.
        /// </summary>
        [Input("notificationHubName", required: true)]
        public string NotificationHubName { get; set; } = null!;

        /// <summary>
        /// The name of the resource group.
        /// </summary>
        [Input("resourceGroupName", required: true)]
        public string ResourceGroupName { get; set; } = null!;

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

    public sealed class GetNotificationHubPnsCredentialsInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The namespace name.
        /// </summary>
        [Input("namespaceName", required: true)]
        public Input<string> NamespaceName { get; set; } = null!;

        /// <summary>
        /// The notification hub name.
        /// </summary>
        [Input("notificationHubName", required: true)]
        public Input<string> NotificationHubName { get; set; } = null!;

        /// <summary>
        /// The name of the resource group.
        /// </summary>
        [Input("resourceGroupName", required: true)]
        public Input<string> ResourceGroupName { get; set; } = null!;

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


    [OutputType]
    public sealed class GetNotificationHubPnsCredentialsResult
    {
        /// <summary>
        /// The AdmCredential of the created NotificationHub
        /// </summary>
        public readonly Outputs.AdmCredentialResponse? AdmCredential;
        /// <summary>
        /// The ApnsCredential of the created NotificationHub
        /// </summary>
        public readonly Outputs.ApnsCredentialResponse? ApnsCredential;
        /// <summary>
        /// The BaiduCredential of the created NotificationHub
        /// </summary>
        public readonly Outputs.BaiduCredentialResponse? BaiduCredential;
        /// <summary>
        /// The GcmCredential of the created NotificationHub
        /// </summary>
        public readonly Outputs.GcmCredentialResponse? GcmCredential;
        /// <summary>
        /// Resource Id
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Resource location
        /// </summary>
        public readonly string? Location;
        /// <summary>
        /// The MpnsCredential of the created NotificationHub
        /// </summary>
        public readonly Outputs.MpnsCredentialResponse? MpnsCredential;
        /// <summary>
        /// Resource name
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The sku of the created namespace
        /// </summary>
        public readonly Outputs.SkuResponse? Sku;
        /// <summary>
        /// Resource tags
        /// </summary>
        public readonly ImmutableDictionary<string, string>? Tags;
        /// <summary>
        /// Resource type
        /// </summary>
        public readonly string Type;
        /// <summary>
        /// The WnsCredential of the created NotificationHub
        /// </summary>
        public readonly Outputs.WnsCredentialResponse? WnsCredential;

        [OutputConstructor]
        private GetNotificationHubPnsCredentialsResult(
            Outputs.AdmCredentialResponse? admCredential,

            Outputs.ApnsCredentialResponse? apnsCredential,

            Outputs.BaiduCredentialResponse? baiduCredential,

            Outputs.GcmCredentialResponse? gcmCredential,

            string id,

            string? location,

            Outputs.MpnsCredentialResponse? mpnsCredential,

            string name,

            Outputs.SkuResponse? sku,

            ImmutableDictionary<string, string>? tags,

            string type,

            Outputs.WnsCredentialResponse? wnsCredential)
        {
            AdmCredential = admCredential;
            ApnsCredential = apnsCredential;
            BaiduCredential = baiduCredential;
            GcmCredential = gcmCredential;
            Id = id;
            Location = location;
            MpnsCredential = mpnsCredential;
            Name = name;
            Sku = sku;
            Tags = tags;
            Type = type;
            WnsCredential = wnsCredential;
        }
    }
}
