|
|
|
|
@ -38,7 +38,7 @@ In addition to the status code, errors may include additional information in the |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"message": "additional error information", |
|
|
|
|
"message": "additional error information" |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -218,12 +218,12 @@ You can also [list all devices in the tailnet](#list-tailnet-devices) to get the |
|
|
|
|
// server for incoming traffic. |
|
|
|
|
"latency": { |
|
|
|
|
"Dallas": { |
|
|
|
|
"latencyMs": 60.463043, |
|
|
|
|
"latencyMs": 60.463043 |
|
|
|
|
}, |
|
|
|
|
"New York City": { |
|
|
|
|
"preferred": true, |
|
|
|
|
"latencyMs": 31.323811, |
|
|
|
|
}, |
|
|
|
|
"latencyMs": 31.323811 |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// clientSupports (JSON object) identifies features supported by the client. |
|
|
|
|
@ -252,8 +252,8 @@ You can also [list all devices in the tailnet](#list-tailnet-devices) to get the |
|
|
|
|
|
|
|
|
|
// upnp (boolean) is 'true' if UPnP port-mapping service exists |
|
|
|
|
// on your router. |
|
|
|
|
"upnp": false, |
|
|
|
|
}, |
|
|
|
|
"upnp": false |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// tags (array of strings) let you assign an identity to a device that |
|
|
|
|
@ -281,8 +281,8 @@ You can also [list all devices in the tailnet](#list-tailnet-devices) to get the |
|
|
|
|
// will contain {"disabled": true}. |
|
|
|
|
// Learn more about posture identity at https://tailscale.com/kb/1326/device-identity |
|
|
|
|
"postureIdentity": { |
|
|
|
|
"serialNumbers": ["CP74LFQJXM"], |
|
|
|
|
}, |
|
|
|
|
"serialNumbers": ["CP74LFQJXM"] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -477,7 +477,7 @@ Returns the enabled and advertised subnet routes for a device. |
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"advertisedRoutes": ["10.0.0.0/16", "192.168.1.0/24"], |
|
|
|
|
"enabledRoutes": [], |
|
|
|
|
"enabledRoutes": [] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -504,7 +504,7 @@ The new list of enabled subnet routes. |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"routes": ["10.0.0.0/16", "192.168.1.0/24"], |
|
|
|
|
"routes": ["10.0.0.0/16", "192.168.1.0/24"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -524,7 +524,7 @@ Returns the enabled and advertised subnet routes for a device. |
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"advertisedRoutes": ["10.0.0.0/16", "192.168.1.0/24"], |
|
|
|
|
"enabledRoutes": ["10.0.0.0/16", "192.168.1.0/24"], |
|
|
|
|
"enabledRoutes": ["10.0.0.0/16", "192.168.1.0/24"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -553,7 +553,7 @@ Specify whether the device is authorized. False to deauthorize an authorized dev |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"authorized": true, |
|
|
|
|
"authorized": true |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -603,7 +603,7 @@ The new list of tags for the device. |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"tags": ["tag:foo", "tag:bar"], |
|
|
|
|
"tags": ["tag:foo", "tag:bar"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -624,7 +624,7 @@ If the tags supplied in the `POST` call do not exist in the tailnet policy file, |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"message": "requested tags [tag:madeup tag:wrongexample] are invalid or not permitted", |
|
|
|
|
"message": "requested tags [tag:madeup tag:wrongexample] are invalid or not permitted" |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -656,7 +656,7 @@ You can then call this method again with `"keyExpiryDisabled": false` to re-enab |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"keyExpiryDisabled": true, |
|
|
|
|
"keyExpiryDisabled": true |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -706,7 +706,7 @@ This endpoint can be used to replace the existing IPv4 address with a specific v |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"ipv4": "100.80.0.1", |
|
|
|
|
"ipv4": "100.80.0.1" |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1121,18 +1121,18 @@ A successful response returns an HTTP status of '200' and the modified tailnet p |
|
|
|
|
], |
|
|
|
|
// Declare static groups of users beyond those in the identity service. |
|
|
|
|
"groups": { |
|
|
|
|
"group:example": ["user1@example.com", "user2@example.com"], |
|
|
|
|
"group:example": ["user1@example.com", "user2@example.com"] |
|
|
|
|
}, |
|
|
|
|
// Declare convenient hostname aliases to use in place of IP addresses. |
|
|
|
|
"hosts": { |
|
|
|
|
"example-host-1": "100.100.100.100", |
|
|
|
|
"example-host-1": "100.100.100.100" |
|
|
|
|
}, |
|
|
|
|
// Access control lists. |
|
|
|
|
"acls": [ |
|
|
|
|
// Match absolutely everything. Comment out this section if you want |
|
|
|
|
// to define specific ACL restrictions. |
|
|
|
|
{ "action": "accept", "users": ["*"], "ports": ["*:*"] }, |
|
|
|
|
], |
|
|
|
|
{ "action": "accept", "users": ["*"], "ports": ["*:*"] } |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1328,9 +1328,9 @@ Look at the response body to determine whether there was a problem within your A |
|
|
|
|
"data": [ |
|
|
|
|
{ |
|
|
|
|
"user": "user1@example.com", |
|
|
|
|
"errors": ["address \"2.2.2.2:22\": want: Drop, got: Accept"], |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
"errors": ["address \"2.2.2.2:22\": want: Drop, got: Accept"] |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1344,10 +1344,10 @@ any groups that are used in the policy file that are not being synced from SCIM. |
|
|
|
|
{ |
|
|
|
|
"user": "group:unknown@example.com", |
|
|
|
|
"warnings": [ |
|
|
|
|
"group is not syncing from SCIM and will be ignored by rules in the policy file", |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
"group is not syncing from SCIM and will be ignored by rules in the policy file" |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1504,8 +1504,8 @@ Returns a JSON object with the IDs of all active keys. |
|
|
|
|
{ "id": "XXXX14CNTRL" }, |
|
|
|
|
{ "id": "XXXXZ3CNTRL" }, |
|
|
|
|
{ "id": "XXXX43CNTRL" }, |
|
|
|
|
{ "id": "XXXXgj1CNTRL" }, |
|
|
|
|
], |
|
|
|
|
{ "id": "XXXXgj1CNTRL" } |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1600,11 +1600,11 @@ It holds the capabilities specified in the request and can no longer be retrieve |
|
|
|
|
"reusable": false, |
|
|
|
|
"ephemeral": false, |
|
|
|
|
"preauthorized": false, |
|
|
|
|
"tags": ["tag:example"], |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
"tags": ["tag:example"] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"description": "dev access", |
|
|
|
|
"description": "dev access" |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1650,11 +1650,11 @@ The response is a JSON object with information about the key supplied. |
|
|
|
|
"reusable": false, |
|
|
|
|
"ephemeral": true, |
|
|
|
|
"preauthorized": false, |
|
|
|
|
"tags": ["tag:bar", "tag:foo"], |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
"tags": ["tag:bar", "tag:foo"] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"description": "dev access", |
|
|
|
|
"description": "dev access" |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1666,7 +1666,7 @@ Response for a revoked (deleted) or expired key will have an `invalid` field set |
|
|
|
|
"created": "2022-05-05T18:55:44Z", |
|
|
|
|
"expires": "2022-08-03T18:55:44Z", |
|
|
|
|
"revoked": "2023-04-01T20:50:00Z", |
|
|
|
|
"invalid": true, |
|
|
|
|
"invalid": true |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1736,7 +1736,7 @@ curl "https://api.tailscale.com/api/v2/tailnet/example.com/dns/nameservers" \ |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"dns": ["8.8.8.8"], |
|
|
|
|
"dns": ["8.8.8.8"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1764,7 +1764,7 @@ The new list of DNS nameservers in JSON. |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"dns": ["8.8.8.8"], |
|
|
|
|
"dns": ["8.8.8.8"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1786,7 +1786,7 @@ The response is a JSON object containing the new list of nameservers and the sta |
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"dns": ["8.8.8.8"], |
|
|
|
|
"magicDNS": true, |
|
|
|
|
"magicDNS": true |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1806,7 +1806,7 @@ The response is a JSON object containing the new list of nameservers and the sta |
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"dns": [], |
|
|
|
|
"magicDNS": false, |
|
|
|
|
"magicDNS": false |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1837,7 +1837,7 @@ curl "https://api.tailscale.com/api/v2/tailnet/example.com/dns/preferences" \ |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"magicDNS": false, |
|
|
|
|
"magicDNS": false |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1873,7 +1873,7 @@ The DNS preferences in JSON. Currently, MagicDNS is the only setting available: |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"magicDNS": true, |
|
|
|
|
"magicDNS": true |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1892,7 +1892,7 @@ If there are no DNS servers, this returns an error message: |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"message": "need at least one nameserver to enable MagicDNS", |
|
|
|
|
"message": "need at least one nameserver to enable MagicDNS" |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1900,7 +1900,7 @@ If there are DNS servers, this returns the MagicDNS status: |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"magicDNS": true, |
|
|
|
|
"magicDNS": true |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1931,7 +1931,7 @@ curl "https://api.tailscale.com/api/v2/tailnet/example.com/dns/searchpaths" \ |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"searchPaths": ["user1.example.com"], |
|
|
|
|
"searchPaths": ["user1.example.com"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1957,7 +1957,7 @@ Specify a list of search paths in a JSON object: |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"searchPaths": ["user1.example.com", "user2.example.com"], |
|
|
|
|
"searchPaths": ["user1.example.com", "user2.example.com"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -1976,7 +1976,7 @@ The response is a JSON object containing the new list of search paths. |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
"searchPaths": ["user1.example.com", "user2.example.com"], |
|
|
|
|
"searchPaths": ["user1.example.com", "user2.example.com"] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -2134,6 +2134,5 @@ curl -X PUT "https://api.tailscale.com/api/v2/tailnet/example.com/dns/split-dns" |
|
|
|
|
The response is a JSON object containing the updated map of split DNS settings. |
|
|
|
|
|
|
|
|
|
```jsonc |
|
|
|
|
{ |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
{} |
|
|
|
|
``` |
|
|
|
|
|