|
|
@@ -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": ["[email protected]", "[email protected]"],
|
|
|
+ "group:example": ["[email protected]", "[email protected]"]
|
|
|
},
|
|
|
// 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": "[email protected]",
|
|
|
- "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:[email protected]",
|
|
|
"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
|
|
|
-{
|
|
|
-}
|
|
|
-```
|
|
|
+{}
|
|
|
+```
|