// *** 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 PiersKarsenbarg.Octopusdeploy
{
    public static class GetMachine
    {
        public static Task<GetMachineResult> InvokeAsync(GetMachineArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetMachineResult>("octopusdeploy:index/getMachine:getMachine", args ?? new GetMachineArgs(), options.WithDefaults());

        public static Output<GetMachineResult> Invoke(GetMachineInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetMachineResult>("octopusdeploy:index/getMachine:getMachine", args ?? new GetMachineInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetMachineArgs : global::Pulumi.InvokeArgs
    {
        [Input("name", required: true)]
        public string Name { get; set; } = null!;

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

    public sealed class GetMachineInvokeArgs : global::Pulumi.InvokeArgs
    {
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

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


    [OutputType]
    public sealed class GetMachineResult
    {
        public readonly string EndpointCommunicationstyle;
        public readonly string EndpointId;
        public readonly string EndpointProxyid;
        public readonly string EndpointTentacleversiondetailsUpgradelocked;
        public readonly string EndpointTentacleversiondetailsUpgraderequired;
        public readonly string EndpointTentacleversiondetailsUpgradesuggested;
        public readonly string EndpointTentacleversiondetailsVersion;
        public readonly string EndpointThumbprint;
        public readonly string EndpointUri;
        public readonly ImmutableArray<string> Environments;
        public readonly bool Haslatestcalamari;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly bool Isdisabled;
        public readonly bool Isinprocess;
        public readonly string Machinepolicy;
        public readonly string Name;
        public readonly ImmutableArray<string> Roles;
        public readonly string Status;
        public readonly string Statussummary;
        public readonly string Tenanteddeploymentparticipation;
        public readonly ImmutableArray<string> Tenantids;
        public readonly ImmutableArray<string> Tenanttags;

        [OutputConstructor]
        private GetMachineResult(
            string endpointCommunicationstyle,

            string endpointId,

            string endpointProxyid,

            string endpointTentacleversiondetailsUpgradelocked,

            string endpointTentacleversiondetailsUpgraderequired,

            string endpointTentacleversiondetailsUpgradesuggested,

            string endpointTentacleversiondetailsVersion,

            string endpointThumbprint,

            string endpointUri,

            ImmutableArray<string> environments,

            bool haslatestcalamari,

            string id,

            bool isdisabled,

            bool isinprocess,

            string machinepolicy,

            string name,

            ImmutableArray<string> roles,

            string status,

            string statussummary,

            string tenanteddeploymentparticipation,

            ImmutableArray<string> tenantids,

            ImmutableArray<string> tenanttags)
        {
            EndpointCommunicationstyle = endpointCommunicationstyle;
            EndpointId = endpointId;
            EndpointProxyid = endpointProxyid;
            EndpointTentacleversiondetailsUpgradelocked = endpointTentacleversiondetailsUpgradelocked;
            EndpointTentacleversiondetailsUpgraderequired = endpointTentacleversiondetailsUpgraderequired;
            EndpointTentacleversiondetailsUpgradesuggested = endpointTentacleversiondetailsUpgradesuggested;
            EndpointTentacleversiondetailsVersion = endpointTentacleversiondetailsVersion;
            EndpointThumbprint = endpointThumbprint;
            EndpointUri = endpointUri;
            Environments = environments;
            Haslatestcalamari = haslatestcalamari;
            Id = id;
            Isdisabled = isdisabled;
            Isinprocess = isinprocess;
            Machinepolicy = machinepolicy;
            Name = name;
            Roles = roles;
            Status = status;
            Statussummary = statussummary;
            Tenanteddeploymentparticipation = tenanteddeploymentparticipation;
            Tenantids = tenantids;
            Tenanttags = tenanttags;
        }
    }
}
