// *** WARNING: this file was generated by pulumigen. ***
// *** 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.TailscaleNative.Device.Outputs
{

    [OutputType]
    public sealed class Device
    {
        public readonly ImmutableArray<string> Addresses;
        public readonly ImmutableArray<string> AdvertisedRoutes;
        public readonly bool Authorized;
        public readonly bool BlocksIncomingConnections;
        public readonly Outputs.ClientConnectivity ClientConnectivity;
        public readonly string ClientVersion;
        public readonly string Created;
        public readonly ImmutableArray<string> EnabledRoutes;
        public readonly string Expires;
        public readonly string Hostname;
        public readonly string Id;
        public readonly bool IsExternal;
        public readonly bool KeyExpiryDisabled;
        public readonly string LastSeen;
        public readonly string MachineKey;
        public readonly string Name;
        public readonly string NodeKey;
        public readonly string Os;
        public readonly bool UpdateAvailable;
        public readonly string User;

        [OutputConstructor]
        private Device(
            ImmutableArray<string> addresses,

            ImmutableArray<string> advertisedRoutes,

            bool authorized,

            bool blocksIncomingConnections,

            Outputs.ClientConnectivity clientConnectivity,

            string clientVersion,

            string created,

            ImmutableArray<string> enabledRoutes,

            string expires,

            string hostname,

            string id,

            bool isExternal,

            bool keyExpiryDisabled,

            string lastSeen,

            string machineKey,

            string name,

            string nodeKey,

            string os,

            bool updateAvailable,

            string user)
        {
            Addresses = addresses;
            AdvertisedRoutes = advertisedRoutes;
            Authorized = authorized;
            BlocksIncomingConnections = blocksIncomingConnections;
            ClientConnectivity = clientConnectivity;
            ClientVersion = clientVersion;
            Created = created;
            EnabledRoutes = enabledRoutes;
            Expires = expires;
            Hostname = hostname;
            Id = id;
            IsExternal = isExternal;
            KeyExpiryDisabled = keyExpiryDisabled;
            LastSeen = lastSeen;
            MachineKey = machineKey;
            Name = name;
            NodeKey = nodeKey;
            Os = os;
            UpdateAvailable = updateAvailable;
            User = user;
        }
    }
}
