Files
netbird-docs/src/pages/ipa/resources/accounts.mdx
T

1364 lines
37 KiB
Plaintext

export const title = 'Accounts'
## List all Accounts {{ tag: 'GET' , label: '/api/accounts' }}
<Row>
<Col>
Returns a list of accounts of a user. Always returns a list of one account.
</Col>
<Col sticky>
<CodeGroup title="Request" tag="GET" label="/api/accounts">
```bash {{ title: 'cURL' }}
curl -X GET https://api.netbird.io/api/accounts \
-H 'Accept: application/json' \
-H 'Authorization: Token <TOKEN>'
```
```js
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: '/api/accounts',
headers: {
'Accept': 'application/json',
'Authorization': 'Token <TOKEN>'
}
};
axios(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
```
```python
import requests
import json
url = "https://api.netbird.io/api/accounts"
headers = {
'Accept': 'application/json',
'Authorization': 'Token <TOKEN>'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
```
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.netbird.io/api/accounts"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Token <TOKEN>")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
```ruby
require "uri"
require "json"
require "net/http"
url = URI("https://api.netbird.io/api/accounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = "application/json"
request["Authorization"] = "Token <TOKEN>"
response = https.request(request)
puts response.read_body
```
```java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.netbird.io/api/accounts")
.method("GET")
.addHeader("Accept", "application/json")
.addHeader("Authorization: Token <TOKEN>")
.build();
Response response = client.newCall(request).execute();
```
```php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.netbird.io/api/accounts',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Authorization: Token <TOKEN>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```
</CodeGroup>
<CodeGroup title="Response">
```json {{ title: 'Example' }}
[
{
"id": "ch8i4ug6lnn4g9hqv7l0",
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"domain": "netbird.io",
"domain_category": "private",
"created_at": "2023-05-05T09:00:35.477782Z",
"created_by": "google-oauth2|277474792786460067937",
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
}
]
```
```json {{ title: 'Schema' }}
[
{
"id": "string",
"settings": {
"peer_login_expiration_enabled": "boolean",
"peer_login_expiration": "integer",
"peer_inactivity_expiration_enabled": "boolean",
"peer_inactivity_expiration": "integer",
"regular_users_view_blocked": "boolean",
"groups_propagation_enabled": "boolean",
"jwt_groups_enabled": "boolean",
"jwt_groups_claim_name": "string",
"jwt_allow_groups": [
"string"
],
"routing_peer_dns_resolution_enabled": "boolean",
"dns_domain": "string",
"network_range": "string",
"network_range_v6": "string",
"peer_expose_enabled": "boolean",
"peer_expose_groups": [
"string"
],
"extra": {
"peer_approval_enabled": "boolean",
"user_approval_required": "boolean",
"network_traffic_logs_enabled": "boolean",
"network_traffic_logs_groups": [
"string"
],
"network_traffic_packet_counter_enabled": "boolean"
},
"lazy_connection_enabled": "boolean",
"auto_update_version": "string",
"auto_update_always": "boolean",
"metrics_push_enabled": "boolean",
"peer_hostname_collision_rejected": "boolean",
"agent_network_only": "boolean",
"dashboard_features": {
"agent_network": "boolean"
},
"embedded_idp_enabled": "boolean",
"local_auth_disabled": "boolean",
"local_mfa_enabled": "boolean",
"ipv6_enabled_groups": [
"string"
]
},
"domain": "string",
"domain_category": "string",
"created_at": "string",
"created_by": "string",
"onboarding": {
"signup_form_pending": "boolean",
"onboarding_flow_pending": "boolean"
}
}
]
```
</CodeGroup>
</Col>
</Row>
---
## Delete an Account {{ tag: 'DELETE' , label: '/api/accounts/{accountId}' }}
<Row>
<Col>
Deletes an account and all its resources. Only account owners can delete accounts.
### Path Parameters
<Properties>
<Property name="accountId" type="string" required={true}>
The unique identifier of an account
</Property>
</Properties>
</Col>
<Col sticky>
<CodeGroup title="Request" tag="DELETE" label="/api/accounts/{accountId}">
```bash {{ title: 'cURL' }}
curl -X DELETE https://api.netbird.io/api/accounts/{accountId} \
-H 'Authorization: Token <TOKEN>'
```
```js
const axios = require('axios');
let config = {
method: 'delete',
maxBodyLength: Infinity,
url: '/api/accounts/{accountId}',
headers: {
'Authorization': 'Token <TOKEN>'
}
};
axios(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
```
```python
import requests
import json
url = "https://api.netbird.io/api/accounts/{accountId}"
headers = {
'Authorization': 'Token <TOKEN>'
}
response = requests.request("DELETE", url, headers=headers)
print(response.text)
```
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.netbird.io/api/accounts/{accountId}"
method := "DELETE"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Token <TOKEN>")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
```ruby
require "uri"
require "json"
require "net/http"
url = URI("https://api.netbird.io/api/accounts/{accountId}")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Token <TOKEN>"
response = https.request(request)
puts response.read_body
```
```java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.netbird.io/api/accounts/{accountId}")
.method("DELETE")
.addHeader("Authorization: Token <TOKEN>")
.build();
Response response = client.newCall(request).execute();
```
```php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.netbird.io/api/accounts/{accountId}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => array(
'Authorization: Token <TOKEN>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```
</CodeGroup>
</Col>
</Row>
---
## Update an Account {{ tag: 'PUT' , label: '/api/accounts/{accountId}' }}
<Row>
<Col>
Update information about an account
### Path Parameters
<Properties>
<Property name="accountId" type="string" required={true}>
The unique identifier of an account
</Property>
</Properties>
### Request-Body Parameters
<Properties><Property name="settings" type="object" required={true}>
<details className="custom-details" open>
<summary>More Information</summary>
<Properties>
<Properties><Property name="peer_login_expiration_enabled" type="boolean" required={true}>
Enables or disables peer login expiration globally. After peer's login has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
</Property>
<Property name="peer_login_expiration" type="integer" required={true}>
Period of time after which peer login expires (seconds).
</Property>
<Property name="peer_inactivity_expiration_enabled" type="boolean" required={true}>
Enables or disables peer inactivity expiration globally. After peer's session has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
</Property>
<Property name="peer_inactivity_expiration" type="integer" required={true}>
Period of time of inactivity after which peer session expires (seconds).
</Property>
<Property name="regular_users_view_blocked" type="boolean" required={true}>
Allows blocking regular users from viewing parts of the system.
</Property>
<Property name="groups_propagation_enabled" type="boolean" required={false}>
Allows propagate the new user auto groups to peers that belongs to the user
</Property>
<Property name="jwt_groups_enabled" type="boolean" required={false}>
Allows extract groups from JWT claim and add it to account groups.
</Property>
<Property name="jwt_groups_claim_name" type="string" required={false}>
Name of the claim from which we extract groups names to add it to account groups.
</Property>
<Property name="jwt_allow_groups" type="string[]" required={false}>
List of groups to which users are allowed access
</Property>
<Property name="routing_peer_dns_resolution_enabled" type="boolean" required={false}>
Enables or disables DNS resolution on the routing peers
</Property>
<Property name="dns_domain" type="string" required={false}>
Allows to define a custom dns domain for the account
</Property>
<Property name="network_range" type="string" required={false}>
Allows to define a custom network range for the account in CIDR format
</Property>
<Property name="network_range_v6" type="string" required={false}>
Allows to define a custom IPv6 network range for the account in CIDR format.
</Property>
<Property name="peer_expose_enabled" type="boolean" required={true}>
Enables or disables peer expose. If enabled, peers can expose local services through the reverse proxy using the CLI.
</Property>
<Property name="peer_expose_groups" type="string[]" required={true}>
Limits which peer groups are allowed to expose services. If empty, all peers are allowed when peer expose is enabled.
</Property>
<Property name="extra" type="object" required={false}>
<details className="custom-details" open>
<summary>More Information</summary>
<Properties>
<Properties><Property name="peer_approval_enabled" type="boolean" required={true}>
(Cloud only) Enables or disables peer approval globally. If enabled, all peers added will be in pending state until approved by an admin.
</Property>
<Property name="user_approval_required" type="boolean" required={true}>
Enables manual approval for new users joining via domain matching. When enabled, users are blocked with pending approval status until explicitly approved by an admin.
</Property>
<Property name="network_traffic_logs_enabled" type="boolean" required={true}>
Enables or disables network traffic logging. If enabled, all network traffic events from peers will be stored.
</Property>
<Property name="network_traffic_logs_groups" type="string[]" required={true}>
Limits traffic logging to these groups. If unset all peers are enabled.
</Property>
<Property name="network_traffic_packet_counter_enabled" type="boolean" required={true}>
Enables or disables network traffic packet counter. If enabled, network packets and their size will be counted and reported. (This can have an slight impact on performance)
</Property>
</Properties>
</Properties>
</details>
</Property>
<Property name="lazy_connection_enabled" type="boolean" required={false}>
Enables or disables experimental lazy connection
</Property>
<Property name="auto_update_version" type="string" required={false}>
Set Clients auto-update version. "latest", "disabled", or a specific version (e.g "0.50.1")
</Property>
<Property name="auto_update_always" type="boolean" required={false}>
When true, updates are installed automatically in the background. When false, updates require user interaction from the UI.
</Property>
<Property name="metrics_push_enabled" type="boolean" required={false}>
Enables or disables client metrics push for all peers in the account
</Property>
<Property name="peer_hostname_collision_rejected" type="boolean" required={false}>
When enabled, registering or renaming a peer to a hostname already used by another peer in the account fails instead of receiving an IP-based suffix. Applies to ephemeral peers as well.
</Property>
<Property name="agent_network_only" type="boolean" required={false}>
Limits the dashboard to the Agent Network surface for this account. Set for accounts created via netbird.ai signups and can be disabled later. Enabling this requires dashboard_features.agent_network to be true in the same request.
</Property>
<Property name="dashboard_features" type="object" required={false}>
<details className="custom-details" open>
<summary>Per-account dashboard section visibility overrides. Omitted keys follow the default dashboard behavior.</summary>
<Properties>
<Properties><Property name="agent_network" type="boolean" required={false}>
Controls the Agent Network menu for the account regardless of the deployment feature flag. When true the menu is shown, when false it is hidden, and when omitted the default behavior applies. Must be true when agent_network_only is enabled.
</Property>
</Properties>
</Properties>
</details>
</Property>
<Property name="embedded_idp_enabled" type="boolean" required={false}>
Indicates whether the embedded identity provider (Dex) is enabled for this account. This is a read-only field.
</Property>
<Property name="local_auth_disabled" type="boolean" required={false}>
Indicates whether local (email/password) authentication is disabled. When true, users can only authenticate via external identity providers. This is a read-only field.
</Property>
<Property name="local_mfa_enabled" type="boolean" required={false}>
Enables or disables TOTP multi-factor authentication for local users. Only applicable when the embedded identity provider is enabled.
</Property>
<Property name="ipv6_enabled_groups" type="string[]" required={false}>
List of group IDs whose peers receive IPv6 overlay addresses. Peers not in any of these groups will not be allocated an IPv6 address. New accounts default to the All group.
</Property>
</Properties>
</Properties>
</details>
</Property>
<Property name="onboarding" type="object" required={false}>
<details className="custom-details" open>
<summary>More Information</summary>
<Properties>
<Properties><Property name="signup_form_pending" type="boolean" required={true}>
Indicates whether the account signup form is pending
</Property>
<Property name="onboarding_flow_pending" type="boolean" required={true}>
Indicates whether the account onboarding flow is pending
</Property>
</Properties>
</Properties>
</details>
</Property>
</Properties>
</Col>
<Col sticky>
<CodeGroup title="Request" tag="PUT" label="/api/accounts/{accountId}">
```bash {{ title: 'cURL' }}
curl -X PUT https://api.netbird.io/api/accounts/{accountId} \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <TOKEN>' \
--data-raw '{
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
}'
```
```js
const axios = require('axios');
let data = JSON.stringify({
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
});
let config = {
method: 'put',
maxBodyLength: Infinity,
url: '/api/accounts/{accountId}',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Token <TOKEN>'
},
data : data
};
axios(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
```
```python
import requests
import json
url = "https://api.netbird.io/api/accounts/{accountId}"
payload = json.dumps({
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <TOKEN>'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
```
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.netbird.io/api/accounts/{accountId}"
method := "PUT"
payload := strings.NewReader(`{
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Token <TOKEN>")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
```ruby
require "uri"
require "json"
require "net/http"
url = URI("https://api.netbird.io/api/accounts/{accountId}")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Accept"] = "application/json"
request["Authorization"] = "Token <TOKEN>"
request.body = JSON.dump({
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
})
response = https.request(request)
puts response.read_body
```
```java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, '{
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
}');
Request request = new Request.Builder()
.url("https://api.netbird.io/api/accounts/{accountId}")
.method("PUT", body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.addHeader("Authorization: Token <TOKEN>")
.build();
Response response = client.newCall(request).execute();
```
```php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.netbird.io/api/accounts/{accountId}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => '{
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Token <TOKEN>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```
</CodeGroup>
<CodeGroup title="Response">
```json {{ title: 'Example' }}
{
"id": "ch8i4ug6lnn4g9hqv7l0",
"settings": {
"peer_login_expiration_enabled": true,
"peer_login_expiration": 43200,
"peer_inactivity_expiration_enabled": true,
"peer_inactivity_expiration": 43200,
"regular_users_view_blocked": true,
"groups_propagation_enabled": true,
"jwt_groups_enabled": true,
"jwt_groups_claim_name": "roles",
"jwt_allow_groups": [
"Administrators"
],
"routing_peer_dns_resolution_enabled": true,
"dns_domain": "my-organization.org",
"network_range": {
"description": "Allows to define a custom network range for the account in CIDR format",
"type": "string",
"format": "cidr"
},
"network_range_v6": "fd00:1234:5678::/64",
"peer_expose_enabled": false,
"peer_expose_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"extra": {
"peer_approval_enabled": true,
"user_approval_required": false,
"network_traffic_logs_enabled": true,
"network_traffic_logs_groups": [
"ch8i4ug6lnn4g9hqv7m0"
],
"network_traffic_packet_counter_enabled": true
},
"lazy_connection_enabled": true,
"auto_update_version": "0.51.2",
"auto_update_always": false,
"metrics_push_enabled": false,
"peer_hostname_collision_rejected": false,
"agent_network_only": false,
"dashboard_features": {
"agent_network": true
},
"embedded_idp_enabled": false,
"local_auth_disabled": false,
"local_mfa_enabled": false,
"ipv6_enabled_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
},
"domain": "netbird.io",
"domain_category": "private",
"created_at": "2023-05-05T09:00:35.477782Z",
"created_by": "google-oauth2|277474792786460067937",
"onboarding": {
"signup_form_pending": true,
"onboarding_flow_pending": false
}
}
```
```json {{ title: 'Schema' }}
{
"id": "string",
"settings": {
"peer_login_expiration_enabled": "boolean",
"peer_login_expiration": "integer",
"peer_inactivity_expiration_enabled": "boolean",
"peer_inactivity_expiration": "integer",
"regular_users_view_blocked": "boolean",
"groups_propagation_enabled": "boolean",
"jwt_groups_enabled": "boolean",
"jwt_groups_claim_name": "string",
"jwt_allow_groups": [
"string"
],
"routing_peer_dns_resolution_enabled": "boolean",
"dns_domain": "string",
"network_range": "string",
"network_range_v6": "string",
"peer_expose_enabled": "boolean",
"peer_expose_groups": [
"string"
],
"extra": {
"peer_approval_enabled": "boolean",
"user_approval_required": "boolean",
"network_traffic_logs_enabled": "boolean",
"network_traffic_logs_groups": [
"string"
],
"network_traffic_packet_counter_enabled": "boolean"
},
"lazy_connection_enabled": "boolean",
"auto_update_version": "string",
"auto_update_always": "boolean",
"metrics_push_enabled": "boolean",
"peer_hostname_collision_rejected": "boolean",
"agent_network_only": "boolean",
"dashboard_features": {
"agent_network": "boolean"
},
"embedded_idp_enabled": "boolean",
"local_auth_disabled": "boolean",
"local_mfa_enabled": "boolean",
"ipv6_enabled_groups": [
"string"
]
},
"domain": "string",
"domain_category": "string",
"created_at": "string",
"created_by": "string",
"onboarding": {
"signup_form_pending": "boolean",
"onboarding_flow_pending": "boolean"
}
}
```
</CodeGroup>
</Col>
</Row>
---