// *** 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 Lbrlabs.PulumiPackage.Ovh.Hosting
{
    public static class GetPrivateDatabase
    {
        /// <summary>
        /// Use this data source to retrieve information about an hosting database.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using System.Linq;
        /// using Pulumi;
        /// using Ovh = Pulumi.Ovh;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var database = Ovh.Hosting.GetPrivateDatabase.Invoke(new()
        ///     {
        ///         ServiceName = "XXXXXX",
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetPrivateDatabaseResult> InvokeAsync(GetPrivateDatabaseArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetPrivateDatabaseResult>("ovh:Hosting/getPrivateDatabase:getPrivateDatabase", args ?? new GetPrivateDatabaseArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to retrieve information about an hosting database.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using System.Linq;
        /// using Pulumi;
        /// using Ovh = Pulumi.Ovh;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var database = Ovh.Hosting.GetPrivateDatabase.Invoke(new()
        ///     {
        ///         ServiceName = "XXXXXX",
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetPrivateDatabaseResult> Invoke(GetPrivateDatabaseInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetPrivateDatabaseResult>("ovh:Hosting/getPrivateDatabase:getPrivateDatabase", args ?? new GetPrivateDatabaseInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetPrivateDatabaseArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The internal name of your private database
        /// </summary>
        [Input("serviceName", required: true)]
        public string ServiceName { get; set; } = null!;

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

    public sealed class GetPrivateDatabaseInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The internal name of your private database
        /// </summary>
        [Input("serviceName", required: true)]
        public Input<string> ServiceName { get; set; } = null!;

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


    [OutputType]
    public sealed class GetPrivateDatabaseResult
    {
        /// <summary>
        /// Number of CPU on your private database
        /// </summary>
        public readonly int Cpu;
        /// <summary>
        /// Datacenter where this private database is located
        /// </summary>
        public readonly string Datacenter;
        /// <summary>
        /// Name displayed in customer panel for your private database
        /// </summary>
        public readonly string DisplayName;
        /// <summary>
        /// Private database hostname
        /// </summary>
        public readonly string Hostname;
        /// <summary>
        /// Private database FTP hostname
        /// </summary>
        public readonly string HostnameFtp;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Infrastructure where service was stored
        /// </summary>
        public readonly string Infrastructure;
        /// <summary>
        /// Type of the private database offer
        /// </summary>
        public readonly string Offer;
        /// <summary>
        /// Private database service port
        /// </summary>
        public readonly int Port;
        /// <summary>
        /// Private database FTP port
        /// </summary>
        public readonly int PortFtp;
        /// <summary>
        /// Space allowed (in MB) on your private database
        /// </summary>
        public readonly int QuotaSize;
        /// <summary>
        /// Sapce used (in MB) on your private database
        /// </summary>
        public readonly int QuotaUsed;
        /// <summary>
        /// Amount of ram (in MB) on your private database
        /// </summary>
        public readonly int Ram;
        /// <summary>
        /// Private database server name
        /// </summary>
        public readonly string Server;
        public readonly string ServiceName;
        /// <summary>
        /// Private database state
        /// </summary>
        public readonly string State;
        public readonly string Type;
        /// <summary>
        /// Private database available versions
        /// </summary>
        public readonly string Version;
        /// <summary>
        /// Private database version label
        /// </summary>
        public readonly string VersionLabel;
        /// <summary>
        /// Private database version number
        /// </summary>
        public readonly double VersionNumber;

        [OutputConstructor]
        private GetPrivateDatabaseResult(
            int cpu,

            string datacenter,

            string displayName,

            string hostname,

            string hostnameFtp,

            string id,

            string infrastructure,

            string offer,

            int port,

            int portFtp,

            int quotaSize,

            int quotaUsed,

            int ram,

            string server,

            string serviceName,

            string state,

            string type,

            string version,

            string versionLabel,

            double versionNumber)
        {
            Cpu = cpu;
            Datacenter = datacenter;
            DisplayName = displayName;
            Hostname = hostname;
            HostnameFtp = hostnameFtp;
            Id = id;
            Infrastructure = infrastructure;
            Offer = offer;
            Port = port;
            PortFtp = portFtp;
            QuotaSize = quotaSize;
            QuotaUsed = quotaUsed;
            Ram = ram;
            Server = server;
            ServiceName = serviceName;
            State = state;
            Type = type;
            Version = version;
            VersionLabel = versionLabel;
            VersionNumber = versionNumber;
        }
    }
}
