import * as pulumi from "@pulumi/pulumi"; /** * The device data source describes a single device in a tailnet * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as tailscale from "@pulumi/tailscale"; * * const sampleDevice = tailscale.getDevice({ * name: "device1.example.ts.net", * waitFor: "60s", * }); * const sampleDevice2 = tailscale.getDevice({ * hostname: "device2", * waitFor: "60s", * }); * ``` */ export declare function getDevice(args?: GetDeviceArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getDevice. */ export interface GetDeviceArgs { /** * The short hostname of the device */ hostname?: string; /** * The full name of the device (e.g. `hostname.domain.ts.net`) */ name?: string; /** * If specified, the provider will make multiple attempts to obtain the data source until the waitFor duration is reached. Retries are made every second so this value should be greater than 1s */ waitFor?: string; } /** * A collection of values returned by getDevice. */ export interface GetDeviceResult { /** * The list of device's IPs */ readonly addresses: string[]; /** * Whether the device is authorized to access the tailnet */ readonly authorized: boolean; /** * Whether the device blocks incoming connections */ readonly blocksIncomingConnections: boolean; /** * The Tailscale client version running on the device */ readonly clientVersion: string; /** * The creation time of the device */ readonly created: string; /** * The expiry time of the device's key */ readonly expires: string; /** * The short hostname of the device */ readonly hostname?: string; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * Whether the device is marked as external */ readonly isExternal: boolean; /** * Whether the device's key expiry is disabled */ readonly keyExpiryDisabled: boolean; /** * The last seen time of the device */ readonly lastSeen: string; /** * The machine key of the device */ readonly machineKey: string; /** * The full name of the device (e.g. `hostname.domain.ts.net`) */ readonly name?: string; /** * The preferred indentifier for a device. */ readonly nodeId: string; /** * The node key of the device */ readonly nodeKey: string; /** * The operating system of the device */ readonly os: string; /** * The tags applied to the device */ readonly tags: string[]; /** * The tailnet lock error for the device, if any */ readonly tailnetLockError: string; /** * The tailnet lock key for the device, if any */ readonly tailnetLockKey: string; /** * Whether an update is available for the device */ readonly updateAvailable: boolean; /** * The user associated with the device */ readonly user: string; /** * If specified, the provider will make multiple attempts to obtain the data source until the waitFor duration is reached. Retries are made every second so this value should be greater than 1s */ readonly waitFor?: string; } /** * The device data source describes a single device in a tailnet * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as tailscale from "@pulumi/tailscale"; * * const sampleDevice = tailscale.getDevice({ * name: "device1.example.ts.net", * waitFor: "60s", * }); * const sampleDevice2 = tailscale.getDevice({ * hostname: "device2", * waitFor: "60s", * }); * ``` */ export declare function getDeviceOutput(args?: GetDeviceOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getDevice. */ export interface GetDeviceOutputArgs { /** * The short hostname of the device */ hostname?: pulumi.Input; /** * The full name of the device (e.g. `hostname.domain.ts.net`) */ name?: pulumi.Input; /** * If specified, the provider will make multiple attempts to obtain the data source until the waitFor duration is reached. Retries are made every second so this value should be greater than 1s */ waitFor?: pulumi.Input; }