Viewing docs for Tailscale v0.27.0
published on Friday, Feb 20, 2026 by Pulumi
published on Friday, Feb 20, 2026 by Pulumi
Viewing docs for Tailscale v0.27.0
published on Friday, Feb 20, 2026 by Pulumi
published on Friday, Feb 20, 2026 by Pulumi
The devices data source describes a list of devices in a tailnet
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as tailscale from "@pulumi/tailscale";
const sampleDevices = tailscale.getDevices({
namePrefix: "example-",
filters: [
{
name: "isEphemeral",
values: ["true"],
},
{
name: "tags",
values: [
"tag:server",
"tag:test",
],
},
],
});
import pulumi
import pulumi_tailscale as tailscale
sample_devices = tailscale.get_devices(name_prefix="example-",
filters=[
{
"name": "isEphemeral",
"values": ["true"],
},
{
"name": "tags",
"values": [
"tag:server",
"tag:test",
],
},
])
package main
import (
"github.com/pulumi/pulumi-tailscale/sdk/go/tailscale"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := tailscale.GetDevices(ctx, &tailscale.GetDevicesArgs{
NamePrefix: pulumi.StringRef("example-"),
Filters: []tailscale.GetDevicesFilter{
{
Name: "isEphemeral",
Values: []string{
"true",
},
},
{
Name: "tags",
Values: []string{
"tag:server",
"tag:test",
},
},
},
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Tailscale = Pulumi.Tailscale;
return await Deployment.RunAsync(() =>
{
var sampleDevices = Tailscale.GetDevices.Invoke(new()
{
NamePrefix = "example-",
Filters = new[]
{
new Tailscale.Inputs.GetDevicesFilterInputArgs
{
Name = "isEphemeral",
Values = new[]
{
"true",
},
},
new Tailscale.Inputs.GetDevicesFilterInputArgs
{
Name = "tags",
Values = new[]
{
"tag:server",
"tag:test",
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.tailscale.TailscaleFunctions;
import com.pulumi.tailscale.inputs.GetDevicesArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var sampleDevices = TailscaleFunctions.getDevices(GetDevicesArgs.builder()
.namePrefix("example-")
.filters(
GetDevicesFilterArgs.builder()
.name("isEphemeral")
.values("true")
.build(),
GetDevicesFilterArgs.builder()
.name("tags")
.values(
"tag:server",
"tag:test")
.build())
.build());
}
}
variables:
sampleDevices:
fn::invoke:
function: tailscale:getDevices
arguments:
namePrefix: example-
filters:
- name: isEphemeral
values:
- 'true'
- name: tags
values:
- tag:server
- tag:test
Using getDevices
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getDevices(args: GetDevicesArgs, opts?: InvokeOptions): Promise<GetDevicesResult>
function getDevicesOutput(args: GetDevicesOutputArgs, opts?: InvokeOptions): Output<GetDevicesResult>def get_devices(filters: Optional[Sequence[GetDevicesFilter]] = None,
name_prefix: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetDevicesResult
def get_devices_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetDevicesFilterArgs]]]] = None,
name_prefix: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetDevicesResult]func GetDevices(ctx *Context, args *GetDevicesArgs, opts ...InvokeOption) (*GetDevicesResult, error)
func GetDevicesOutput(ctx *Context, args *GetDevicesOutputArgs, opts ...InvokeOption) GetDevicesResultOutput> Note: This function is named GetDevices in the Go SDK.
public static class GetDevices
{
public static Task<GetDevicesResult> InvokeAsync(GetDevicesArgs args, InvokeOptions? opts = null)
public static Output<GetDevicesResult> Invoke(GetDevicesInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetDevicesResult> getDevices(GetDevicesArgs args, InvokeOptions options)
public static Output<GetDevicesResult> getDevices(GetDevicesArgs args, InvokeOptions options)
fn::invoke:
function: tailscale:index/getDevices:getDevices
arguments:
# arguments dictionaryThe following arguments are supported:
- Filters
List<Get
Devices Filter> - Filters the device list to elements devices whose fields match the provided values.
- Name
Prefix string - Filters the device list to elements whose name has the provided prefix
- Filters
[]Get
Devices Filter - Filters the device list to elements devices whose fields match the provided values.
- Name
Prefix string - Filters the device list to elements whose name has the provided prefix
- filters
List<Get
Devices Filter> - Filters the device list to elements devices whose fields match the provided values.
- name
Prefix String - Filters the device list to elements whose name has the provided prefix
- filters
Get
Devices Filter[] - Filters the device list to elements devices whose fields match the provided values.
- name
Prefix string - Filters the device list to elements whose name has the provided prefix
- filters
Sequence[Get
Devices Filter] - Filters the device list to elements devices whose fields match the provided values.
- name_
prefix str - Filters the device list to elements whose name has the provided prefix
- filters List<Property Map>
- Filters the device list to elements devices whose fields match the provided values.
- name
Prefix String - Filters the device list to elements whose name has the provided prefix
getDevices Result
The following output properties are available:
- Devices
List<Get
Devices Device> - The list of devices in the tailnet
- Id string
- The provider-assigned unique ID for this managed resource.
- Filters
List<Get
Devices Filter> - Filters the device list to elements devices whose fields match the provided values.
- Name
Prefix string - Filters the device list to elements whose name has the provided prefix
- Devices
[]Get
Devices Device - The list of devices in the tailnet
- Id string
- The provider-assigned unique ID for this managed resource.
- Filters
[]Get
Devices Filter - Filters the device list to elements devices whose fields match the provided values.
- Name
Prefix string - Filters the device list to elements whose name has the provided prefix
- devices
List<Get
Devices Device> - The list of devices in the tailnet
- id String
- The provider-assigned unique ID for this managed resource.
- filters
List<Get
Devices Filter> - Filters the device list to elements devices whose fields match the provided values.
- name
Prefix String - Filters the device list to elements whose name has the provided prefix
- devices
Get
Devices Device[] - The list of devices in the tailnet
- id string
- The provider-assigned unique ID for this managed resource.
- filters
Get
Devices Filter[] - Filters the device list to elements devices whose fields match the provided values.
- name
Prefix string - Filters the device list to elements whose name has the provided prefix
- devices
Sequence[Get
Devices Device] - The list of devices in the tailnet
- id str
- The provider-assigned unique ID for this managed resource.
- filters
Sequence[Get
Devices Filter] - Filters the device list to elements devices whose fields match the provided values.
- name_
prefix str - Filters the device list to elements whose name has the provided prefix
- devices List<Property Map>
- The list of devices in the tailnet
- id String
- The provider-assigned unique ID for this managed resource.
- filters List<Property Map>
- Filters the device list to elements devices whose fields match the provided values.
- name
Prefix String - Filters the device list to elements whose name has the provided prefix
Supporting Types
GetDevicesDevice
- Addresses List<string>
- The list of device's IPs
- bool
- Whether the device is authorized to access the tailnet
- Blocks
Incoming boolConnections - Whether the device blocks incoming connections
- Client
Version string - The Tailscale client version running on the device
- Created string
- The creation time of the device
- Expires string
- The expiry time of the device's key
- Hostname string
- The short hostname of the device
- Id string
- The legacy identifier of the device. Use node_id instead for new resources.
- Is
External bool - Whether the device is marked as external
- Key
Expiry boolDisabled - Whether the device's key expiry is disabled
- Last
Seen string - The last seen time of the device
- Machine
Key string - The machine key of the device
- Name string
- The full name of the device (e.g.
hostname.domain.ts.net) - Node
Id string - The preferred indentifier for a device.
- Node
Key string - The node key of the device
- Os string
- The operating system of the device
- List<string>
- The tags applied to the device
- Tailnet
Lock stringError - The tailnet lock error for the device, if any
- Tailnet
Lock stringKey - The tailnet lock key for the device, if any
- Update
Available bool - Whether an update is available for the device
- User string
- The user associated with the device
- Addresses []string
- The list of device's IPs
- bool
- Whether the device is authorized to access the tailnet
- Blocks
Incoming boolConnections - Whether the device blocks incoming connections
- Client
Version string - The Tailscale client version running on the device
- Created string
- The creation time of the device
- Expires string
- The expiry time of the device's key
- Hostname string
- The short hostname of the device
- Id string
- The legacy identifier of the device. Use node_id instead for new resources.
- Is
External bool - Whether the device is marked as external
- Key
Expiry boolDisabled - Whether the device's key expiry is disabled
- Last
Seen string - The last seen time of the device
- Machine
Key string - The machine key of the device
- Name string
- The full name of the device (e.g.
hostname.domain.ts.net) - Node
Id string - The preferred indentifier for a device.
- Node
Key string - The node key of the device
- Os string
- The operating system of the device
- []string
- The tags applied to the device
- Tailnet
Lock stringError - The tailnet lock error for the device, if any
- Tailnet
Lock stringKey - The tailnet lock key for the device, if any
- Update
Available bool - Whether an update is available for the device
- User string
- The user associated with the device
- addresses List<String>
- The list of device's IPs
- Boolean
- Whether the device is authorized to access the tailnet
- blocks
Incoming BooleanConnections - Whether the device blocks incoming connections
- client
Version String - The Tailscale client version running on the device
- created String
- The creation time of the device
- expires String
- The expiry time of the device's key
- hostname String
- The short hostname of the device
- id String
- The legacy identifier of the device. Use node_id instead for new resources.
- is
External Boolean - Whether the device is marked as external
- key
Expiry BooleanDisabled - Whether the device's key expiry is disabled
- last
Seen String - The last seen time of the device
- machine
Key String - The machine key of the device
- name String
- The full name of the device (e.g.
hostname.domain.ts.net) - node
Id String - The preferred indentifier for a device.
- node
Key String - The node key of the device
- os String
- The operating system of the device
- List<String>
- The tags applied to the device
- tailnet
Lock StringError - The tailnet lock error for the device, if any
- tailnet
Lock StringKey - The tailnet lock key for the device, if any
- update
Available Boolean - Whether an update is available for the device
- user String
- The user associated with the device
- addresses string[]
- The list of device's IPs
- boolean
- Whether the device is authorized to access the tailnet
- blocks
Incoming booleanConnections - Whether the device blocks incoming connections
- client
Version string - The Tailscale client version running on the device
- created string
- The creation time of the device
- expires string
- The expiry time of the device's key
- hostname string
- The short hostname of the device
- id string
- The legacy identifier of the device. Use node_id instead for new resources.
- is
External boolean - Whether the device is marked as external
- key
Expiry booleanDisabled - Whether the device's key expiry is disabled
- last
Seen string - The last seen time of the device
- machine
Key string - The machine key of the device
- name string
- The full name of the device (e.g.
hostname.domain.ts.net) - node
Id string - The preferred indentifier for a device.
- node
Key string - The node key of the device
- os string
- The operating system of the device
- string[]
- The tags applied to the device
- tailnet
Lock stringError - The tailnet lock error for the device, if any
- tailnet
Lock stringKey - The tailnet lock key for the device, if any
- update
Available boolean - Whether an update is available for the device
- user string
- The user associated with the device
- addresses Sequence[str]
- The list of device's IPs
- bool
- Whether the device is authorized to access the tailnet
- blocks_
incoming_ boolconnections - Whether the device blocks incoming connections
- client_
version str - The Tailscale client version running on the device
- created str
- The creation time of the device
- expires str
- The expiry time of the device's key
- hostname str
- The short hostname of the device
- id str
- The legacy identifier of the device. Use node_id instead for new resources.
- is_
external bool - Whether the device is marked as external
- key_
expiry_ booldisabled - Whether the device's key expiry is disabled
- last_
seen str - The last seen time of the device
- machine_
key str - The machine key of the device
- name str
- The full name of the device (e.g.
hostname.domain.ts.net) - node_
id str - The preferred indentifier for a device.
- node_
key str - The node key of the device
- os str
- The operating system of the device
- Sequence[str]
- The tags applied to the device
- tailnet_
lock_ strerror - The tailnet lock error for the device, if any
- tailnet_
lock_ strkey - The tailnet lock key for the device, if any
- update_
available bool - Whether an update is available for the device
- user str
- The user associated with the device
- addresses List<String>
- The list of device's IPs
- Boolean
- Whether the device is authorized to access the tailnet
- blocks
Incoming BooleanConnections - Whether the device blocks incoming connections
- client
Version String - The Tailscale client version running on the device
- created String
- The creation time of the device
- expires String
- The expiry time of the device's key
- hostname String
- The short hostname of the device
- id String
- The legacy identifier of the device. Use node_id instead for new resources.
- is
External Boolean - Whether the device is marked as external
- key
Expiry BooleanDisabled - Whether the device's key expiry is disabled
- last
Seen String - The last seen time of the device
- machine
Key String - The machine key of the device
- name String
- The full name of the device (e.g.
hostname.domain.ts.net) - node
Id String - The preferred indentifier for a device.
- node
Key String - The node key of the device
- os String
- The operating system of the device
- List<String>
- The tags applied to the device
- tailnet
Lock StringError - The tailnet lock error for the device, if any
- tailnet
Lock StringKey - The tailnet lock key for the device, if any
- update
Available Boolean - Whether an update is available for the device
- user String
- The user associated with the device
GetDevicesFilter
Package Details
- Repository
- tailscale pulumi/pulumi-tailscale
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
tailscaleTerraform Provider.
Viewing docs for Tailscale v0.27.0
published on Friday, Feb 20, 2026 by Pulumi
published on Friday, Feb 20, 2026 by Pulumi
