// *** 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;

namespace Pulumi.AliCloud.Cen
{
    public static class GetVbrHealthChecks
    {
        /// <summary>
        /// This data source provides CEN VBR Health Checks available to the user.
        /// 
        /// &gt; **NOTE:** Available in 1.98.0+
        /// </summary>
        public static Task<GetVbrHealthChecksResult> InvokeAsync(GetVbrHealthChecksArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetVbrHealthChecksResult>("alicloud:cen/getVbrHealthChecks:getVbrHealthChecks", args ?? new GetVbrHealthChecksArgs(), options.WithDefaults());

        /// <summary>
        /// This data source provides CEN VBR Health Checks available to the user.
        /// 
        /// &gt; **NOTE:** Available in 1.98.0+
        /// </summary>
        public static Output<GetVbrHealthChecksResult> Invoke(GetVbrHealthChecksInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetVbrHealthChecksResult>("alicloud:cen/getVbrHealthChecks:getVbrHealthChecks", args ?? new GetVbrHealthChecksInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetVbrHealthChecksArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The ID of the Cloud Enterprise Network (CEN) instance.
        /// </summary>
        [Input("cenId")]
        public string? CenId { get; set; }

        [Input("outputFile")]
        public string? OutputFile { get; set; }

        /// <summary>
        /// The ID of the VBR instance.
        /// </summary>
        [Input("vbrInstanceId")]
        public string? VbrInstanceId { get; set; }

        /// <summary>
        /// The User ID (UID) of the account to which the VBR instance belongs.
        /// </summary>
        [Input("vbrInstanceOwnerId")]
        public int? VbrInstanceOwnerId { get; set; }

        /// <summary>
        /// The ID of the region where the VBR instance is deployed.
        /// </summary>
        [Input("vbrInstanceRegionId", required: true)]
        public string VbrInstanceRegionId { get; set; } = null!;

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

    public sealed class GetVbrHealthChecksInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The ID of the Cloud Enterprise Network (CEN) instance.
        /// </summary>
        [Input("cenId")]
        public Input<string>? CenId { get; set; }

        [Input("outputFile")]
        public Input<string>? OutputFile { get; set; }

        /// <summary>
        /// The ID of the VBR instance.
        /// </summary>
        [Input("vbrInstanceId")]
        public Input<string>? VbrInstanceId { get; set; }

        /// <summary>
        /// The User ID (UID) of the account to which the VBR instance belongs.
        /// </summary>
        [Input("vbrInstanceOwnerId")]
        public Input<int>? VbrInstanceOwnerId { get; set; }

        /// <summary>
        /// The ID of the region where the VBR instance is deployed.
        /// </summary>
        [Input("vbrInstanceRegionId", required: true)]
        public Input<string> VbrInstanceRegionId { get; set; } = null!;

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


    [OutputType]
    public sealed class GetVbrHealthChecksResult
    {
        /// <summary>
        /// The ID of the Cloud Enterprise Network (CEN) instance.
        /// </summary>
        public readonly string? CenId;
        /// <summary>
        /// A list of CEN VBR Heath Checks. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetVbrHealthChecksCheckResult> Checks;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// A list of the CEN VBR Heath Check IDs.
        /// </summary>
        public readonly ImmutableArray<string> Ids;
        public readonly string? OutputFile;
        /// <summary>
        /// The ID of the VBR instance.
        /// </summary>
        public readonly string? VbrInstanceId;
        public readonly int? VbrInstanceOwnerId;
        /// <summary>
        /// The ID of the region where the VBR instance is deployed.
        /// </summary>
        public readonly string VbrInstanceRegionId;

        [OutputConstructor]
        private GetVbrHealthChecksResult(
            string? cenId,

            ImmutableArray<Outputs.GetVbrHealthChecksCheckResult> checks,

            string id,

            ImmutableArray<string> ids,

            string? outputFile,

            string? vbrInstanceId,

            int? vbrInstanceOwnerId,

            string vbrInstanceRegionId)
        {
            CenId = cenId;
            Checks = checks;
            Id = id;
            Ids = ids;
            OutputFile = outputFile;
            VbrInstanceId = vbrInstanceId;
            VbrInstanceOwnerId = vbrInstanceOwnerId;
            VbrInstanceRegionId = vbrInstanceRegionId;
        }
    }
}
