diff --git a/src/pages/ipa/resources/accounts.mdx b/src/pages/ipa/resources/accounts.mdx index 6481bd7c..d147463f 100644 --- a/src/pages/ipa/resources/accounts.mdx +++ b/src/pages/ipa/resources/accounts.mdx @@ -169,7 +169,10 @@ echo $response; "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } } ] @@ -183,7 +186,10 @@ echo $response; "peer_login_expiration": "integer", "groups_propagation_enabled": "boolean", "jwt_groups_enabled": "boolean", - "jwt_groups_claim_name": "string" + "jwt_groups_claim_name": "string", + "extra": { + "peer_approval_enabled": "boolean" + } } } ] @@ -250,6 +256,13 @@ echo $response; > Name of the claim from which we extract groups names to add it to account groups. + + + + (Cloud only) Enables or disables peer approval globally. If enabled, all peers added will be in pending state until approved by an admin. @@ -267,7 +280,10 @@ curl -X PUT https://api.netbird.io/api/accounts/{accountId} \ "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }' ``` @@ -280,7 +296,10 @@ let data = JSON.stringify({ "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }); let config = { @@ -315,7 +334,10 @@ payload = json.dumps({ "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }) headers: { @@ -350,7 +372,10 @@ func main() { "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }`) client := &http.Client { @@ -403,7 +428,10 @@ request.body = JSON.dump({ "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }) response = https.request(request) @@ -420,7 +448,10 @@ RequestBody body = RequestBody.create(mediaType, '{ "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }'); Request request = new Request.Builder() @@ -453,7 +484,10 @@ curl_setopt_array($curl, array( "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } }', CURLOPT_HTTPHEADER => array( @@ -482,7 +516,10 @@ echo $response; "peer_login_expiration": 43200, "groups_propagation_enabled": true, "jwt_groups_enabled": true, - "jwt_groups_claim_name": "roles" + "jwt_groups_claim_name": "roles", + "extra": { + "peer_approval_enabled": true + } } } ``` @@ -494,7 +531,10 @@ echo $response; "peer_login_expiration": "integer", "groups_propagation_enabled": "boolean", "jwt_groups_enabled": "boolean", - "jwt_groups_claim_name": "string" + "jwt_groups_claim_name": "string", + "extra": { + "peer_approval_enabled": "boolean" + } } } ``` @@ -504,6 +544,172 @@ echo $response; + + + +--- + + +## Delete an Account {{ tag: 'DELETE' , label: '/api/accounts/{accountId}' }} + + + + Deletes an account and all its resources. Only administrators and account owners can delete accounts. + + #### Path Parameters + + + + The unique identifier of an account + + + + + + +```bash {{ title: 'cURL' }} +curl -X DELETE https://api.netbird.io/api/accounts/{accountId} \ +-H 'Authorization: Token ' +``` + +```js +const axios = require('axios'); + +let config = { + method: 'delete', + maxBodyLength: Infinity, + url: '/api/accounts/{accountId}', + headers: { + 'Authorization': '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 ' +} + +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 ") + + 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 " + +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 ") + .build(); +Response response = client.newCall(request).execute(); +``` + +```php + '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 ' + ), +)); + +$response = curl_exec($curl); + +curl_close($curl); +echo $response; +``` + + + + + + + diff --git a/src/pages/ipa/resources/dns.mdx b/src/pages/ipa/resources/dns.mdx index f1eb9677..5c20d34d 100644 --- a/src/pages/ipa/resources/dns.mdx +++ b/src/pages/ipa/resources/dns.mdx @@ -239,14 +239,14 @@ echo $response; maxLen={40} > - Nameserver group name + Name of nameserver group name - Nameserver group description + Description of the nameserver group - Nameserver group + Nameserver list - Nameserver group tag groups + Distribution group IDs that defines group of peers that will use this nameserver group - Nameserver group primary status + Defines if a nameserver group is primary that resolves all domains. It should be true only if domains list is empty. - Nameserver group match domain list + Match domain list. It should be empty only if primary is true. - Nameserver group search domain status for match domains. It should be true only if domains list is not empty. + Search domain status for match domains. It should be true only if domains list is not empty. @@ -901,14 +901,14 @@ echo $response; maxLen={40} > - Nameserver group name + Name of nameserver group name - Nameserver group description + Description of the nameserver group - Nameserver group + Nameserver list - Nameserver group tag groups + Distribution group IDs that defines group of peers that will use this nameserver group - Nameserver group primary status + Defines if a nameserver group is primary that resolves all domains. It should be true only if domains list is empty. - Nameserver group match domain list + Match domain list. It should be empty only if primary is true. - Nameserver group search domain status for match domains. It should be true only if domains list is not empty. + Search domain status for match domains. It should be true only if domains list is not empty. diff --git a/src/pages/ipa/resources/peers.mdx b/src/pages/ipa/resources/peers.mdx index 3d91ed18..ff8833c2 100644 --- a/src/pages/ipa/resources/peers.mdx +++ b/src/pages/ipa/resources/peers.mdx @@ -186,6 +186,7 @@ echo $response; "login_expiration_enabled": false, "login_expired": false, "last_login": "2023-05-05T09:00:35.477782Z", + "approval_required": true, "accessible_peers_count": 5 } ] @@ -216,6 +217,7 @@ echo $response; "login_expiration_enabled": "boolean", "login_expired": "boolean", "last_login": "string", + "approval_required": "boolean", "accessible_peers_count": "integer" } ] @@ -423,6 +425,7 @@ echo $response; "login_expiration_enabled": false, "login_expired": false, "last_login": "2023-05-05T09:00:35.477782Z", + "approval_required": true, "accessible_peers": [ { "id": "chacbco6lnnbn6cg5s90", @@ -459,6 +462,7 @@ echo $response; "login_expiration_enabled": "boolean", "login_expired": "boolean", "last_login": "string", + "approval_required": "boolean", "accessible_peers": [ { "id": "string", @@ -518,6 +522,13 @@ echo $response; > + + + + (Cloud only) Indicates whether peer needs approval @@ -532,7 +543,8 @@ curl -X PUT https://api.netbird.io/api/peers/{peerId} \ --data-raw '{ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }' ``` @@ -541,7 +553,8 @@ const axios = require('axios'); let data = JSON.stringify({ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }); let config = { method: 'put', @@ -572,7 +585,8 @@ url = "https://api.netbird.io/api/peers/{peerId}" payload = json.dumps({ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }) headers: { 'Content-Type': 'application/json', @@ -603,7 +617,8 @@ func main() { payload := strings.NewReader(`{ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }`) client := &http.Client { } @@ -652,7 +667,8 @@ request["Authorization"] = "Token " request.body = JSON.dump({ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }) response = https.request(request) puts response.read_body @@ -665,7 +681,8 @@ MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, '{ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }'); Request request = new Request.Builder() .url("https://api.netbird.io/api/peers/{peerId}") @@ -694,7 +711,8 @@ curl_setopt_array($curl, array( CURLOPT_POSTFIELDS => '{ "name": "stage-host-1", "ssh_enabled": true, - "login_expiration_enabled": false + "login_expiration_enabled": false, + "approval_required": true }', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', @@ -739,6 +757,7 @@ echo $response; "login_expiration_enabled": false, "login_expired": false, "last_login": "2023-05-05T09:00:35.477782Z", + "approval_required": true, "accessible_peers": [ { "id": "chacbco6lnnbn6cg5s90", @@ -775,6 +794,7 @@ echo $response; "login_expiration_enabled": "boolean", "login_expired": "boolean", "last_login": "string", + "approval_required": "boolean", "accessible_peers": [ { "id": "string", diff --git a/src/pages/ipa/resources/routes.mdx b/src/pages/ipa/resources/routes.mdx index ec29f7c3..72dde520 100644 --- a/src/pages/ipa/resources/routes.mdx +++ b/src/pages/ipa/resources/routes.mdx @@ -291,7 +291,7 @@ echo $response; > - Route group tag groups + Group IDs containing routing peers @@ -909,7 +909,7 @@ echo $response; > - Route group tag groups + Group IDs containing routing peers diff --git a/src/pages/ipa/resources/rules.mdx b/src/pages/ipa/resources/rules.mdx index e3db97e5..b8b4d5c4 100644 --- a/src/pages/ipa/resources/rules.mdx +++ b/src/pages/ipa/resources/rules.mdx @@ -267,14 +267,14 @@ echo $response; > - List of source groups + List of source group IDs - List of destination groups + List of destination group IDs @@ -855,14 +855,14 @@ echo $response; > - List of source groups + List of source group IDs - List of destination groups + List of destination group IDs diff --git a/src/pages/ipa/resources/setup-keys.mdx b/src/pages/ipa/resources/setup-keys.mdx index 17402080..557a68da 100644 --- a/src/pages/ipa/resources/setup-keys.mdx +++ b/src/pages/ipa/resources/setup-keys.mdx @@ -174,7 +174,7 @@ echo $response; "last_used": "2023-05-05T09:00:35.477782Z", "state": "valid", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "updated_at": "2023-05-05T09:00:35.477782Z", "usage_limit": 0, @@ -293,7 +293,7 @@ curl -X POST https://api.netbird.io/api/setup-keys \ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -308,7 +308,7 @@ let data = JSON.stringify({ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -345,7 +345,7 @@ payload = json.dumps({ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -382,7 +382,7 @@ func main() { "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -437,7 +437,7 @@ request.body = JSON.dump({ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -456,7 +456,7 @@ RequestBody body = RequestBody.create(mediaType, '{ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -491,7 +491,7 @@ curl_setopt_array($curl, array( "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -527,7 +527,7 @@ echo $response; "last_used": "2023-05-05T09:00:35.477782Z", "state": "valid", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "updated_at": "2023-05-05T09:00:35.477782Z", "usage_limit": 0, @@ -745,7 +745,7 @@ echo $response; "last_used": "2023-05-05T09:00:35.477782Z", "state": "valid", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "updated_at": "2023-05-05T09:00:35.477782Z", "usage_limit": 0, @@ -869,7 +869,7 @@ curl -X PUT https://api.netbird.io/api/setup-keys/{keyId} \ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -884,7 +884,7 @@ let data = JSON.stringify({ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -921,7 +921,7 @@ payload = json.dumps({ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -958,7 +958,7 @@ func main() { "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -1013,7 +1013,7 @@ request.body = JSON.dump({ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -1032,7 +1032,7 @@ RequestBody body = RequestBody.create(mediaType, '{ "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -1067,7 +1067,7 @@ curl_setopt_array($curl, array( "expires_in": 86400, "revoked": false, "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "usage_limit": 0, "ephemeral": true @@ -1103,7 +1103,7 @@ echo $response; "last_used": "2023-05-05T09:00:35.477782Z", "state": "valid", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "updated_at": "2023-05-05T09:00:35.477782Z", "usage_limit": 0, diff --git a/src/pages/ipa/resources/users.mdx b/src/pages/ipa/resources/users.mdx index 1abf95c7..ecf80dab 100644 --- a/src/pages/ipa/resources/users.mdx +++ b/src/pages/ipa/resources/users.mdx @@ -178,7 +178,7 @@ echo $response; "status": "active", "last_login": "2023-05-05T09:00:35.477782Z", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "is_current": true, "is_service_user": false, @@ -252,7 +252,7 @@ echo $response; > - Groups to auto-assign to peers registered by this user + Group IDs to auto-assign to peers registered by this user - Groups to auto-assign to peers registered by this user + Group IDs to auto-assign to peers registered by this user '{ "role": "admin", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "is_blocked": false }', @@ -785,7 +785,7 @@ echo $response; "status": "active", "last_login": "2023-05-05T09:00:35.477782Z", "auto_groups": [ - "devs" + "ch8i4ug6lnn4g9hqv7m0" ], "is_current": true, "is_service_user": false,