<reponame>cuemby/pulumi-equinix<gh_stars>0// *** 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 Cuemby.Equinix
{
    public static class GetMetalMetro
    {
        /// <summary>
        /// Provides an Equinix Metal metro datasource.
        /// </summary>
        public static Task<GetMetalMetroResult> InvokeAsync(GetMetalMetroArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetMetalMetroResult>("equinix:index/getMetalMetro:GetMetalMetro", args ?? new GetMetalMetroArgs(), options.WithDefaults());

        /// <summary>
        /// Provides an Equinix Metal metro datasource.
        /// </summary>
        public static Output<GetMetalMetroResult> Invoke(GetMetalMetroInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetMetalMetroResult>("equinix:index/getMetalMetro:GetMetalMetro", args ?? new GetMetalMetroInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetMetalMetroArgs : Pulumi.InvokeArgs
    {
        [Input("capacities")]
        private List<Inputs.GetMetalMetroCapacityArgs>? _capacities;

        /// <summary>
        /// One or more device plans for which the facility must have capacity.
        /// </summary>
        public List<Inputs.GetMetalMetroCapacityArgs> Capacities
        {
            get => _capacities ?? (_capacities = new List<Inputs.GetMetalMetroCapacityArgs>());
            set => _capacities = value;
        }

        /// <summary>
        /// The facility code to search for facilities.
        /// </summary>
        [Input("code", required: true)]
        public string Code { get; set; } = null!;

        public GetMetalMetroArgs()
        {
        }
    }

    public sealed class GetMetalMetroInvokeArgs : Pulumi.InvokeArgs
    {
        [Input("capacities")]
        private InputList<Inputs.GetMetalMetroCapacityInputArgs>? _capacities;

        /// <summary>
        /// One or more device plans for which the facility must have capacity.
        /// </summary>
        public InputList<Inputs.GetMetalMetroCapacityInputArgs> Capacities
        {
            get => _capacities ?? (_capacities = new InputList<Inputs.GetMetalMetroCapacityInputArgs>());
            set => _capacities = value;
        }

        /// <summary>
        /// The facility code to search for facilities.
        /// </summary>
        [Input("code", required: true)]
        public Input<string> Code { get; set; } = null!;

        public GetMetalMetroInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetMetalMetroResult
    {
        public readonly ImmutableArray<Outputs.GetMetalMetroCapacityResult> Capacities;
        public readonly string Code;
        /// <summary>
        /// The country of the metro.
        /// </summary>
        public readonly string Country;
        /// <summary>
        /// The ID of the metro.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The name of the metro.
        /// </summary>
        public readonly string Name;

        [OutputConstructor]
        private GetMetalMetroResult(
            ImmutableArray<Outputs.GetMetalMetroCapacityResult> capacities,

            string code,

            string country,

            string id,

            string name)
        {
            Capacities = capacities;
            Code = code;
            Country = country;
            Id = id;
            Name = name;
        }
    }
}
