{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "NetBird REST API",
    "description" : "API to manipulate groups, rules, policies and retrieve information about peers and users",
    "version" : "0.0.1"
  },
  "servers" : [ {
    "url" : "https://api.netbird.io",
    "description" : "Default server"
  } ],
  "security" : [ {
    "BearerAuth" : [ ]
  }, {
    "TokenAuth" : [ ]
  } ],
  "tags" : [ {
    "name" : "Users",
    "description" : "Interact with and view information about users."
  }, {
    "name" : "Tokens",
    "description" : "Interact with and view information about tokens."
  }, {
    "name" : "Peers",
    "description" : "Interact with and view information about peers."
  }, {
    "name" : "Setup Keys",
    "description" : "Interact with and view information about setup keys."
  }, {
    "name" : "Groups",
    "description" : "Interact with and view information about groups."
  }, {
    "name" : "Rules",
    "description" : "Interact with and view information about rules."
  }, {
    "name" : "Policies",
    "description" : "Interact with and view information about policies."
  }, {
    "name" : "Routes",
    "description" : "Interact with and view information about routes."
  }, {
    "name" : "DNS",
    "description" : "Interact with and view information about DNS configuration."
  }, {
    "name" : "Events",
    "description" : "View information about the account and network events."
  }, {
    "name" : "Accounts",
    "description" : "View information about the accounts."
  } ],
  "paths" : {
    "/api/accounts" : {
      "get" : {
        "tags" : [ "Accounts" ],
        "summary" : "List all Accounts",
        "description" : "Returns a list of accounts of a user. Always returns a list of one account.",
        "operationId" : "getAccounts",
        "responses" : {
          "200" : {
            "description" : "A JSON array of accounts",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Account"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/accounts/{accountId}" : {
      "put" : {
        "tags" : [ "Accounts" ],
        "summary" : "Update an Account",
        "description" : "Update information about an account",
        "operationId" : "updateAccount",
        "parameters" : [ {
          "name" : "accountId",
          "in" : "path",
          "description" : "The unique identifier of an account",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "update an account",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AccountSettings"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "An Account object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Account"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/users" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "List all Users",
        "description" : "Returns a list of all users",
        "operationId" : "getUsers",
        "parameters" : [ {
          "name" : "service_user",
          "in" : "query",
          "description" : "Filters users and returns either regular users or service users",
          "required" : false,
          "style" : "form",
          "explode" : true,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A JSON array of Users",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/User"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Users" ],
        "summary" : "Create a User",
        "description" : "Creates a new service user or sends an invite to a regular user",
        "operationId" : "createUser",
        "requestBody" : {
          "description" : "User invite information",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserCreateRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A User object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/users/{userId}" : {
      "put" : {
        "tags" : [ "Users" ],
        "summary" : "Update a User",
        "description" : "Update information about a User",
        "operationId" : "updateUser",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "The unique identifier of a user",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "User update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A User object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Users" ],
        "summary" : "Delete a User",
        "description" : "Delete a User",
        "operationId" : "deleteUser",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "The unique identifier of a user",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/users/{userId}/tokens" : {
      "get" : {
        "tags" : [ "Tokens" ],
        "summary" : "List all Tokens",
        "description" : "Returns a list of all tokens for a user",
        "operationId" : "getTokens",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "The unique identifier of a user",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A JSON Array of PersonalAccessTokens",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PersonalAccessToken"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Tokens" ],
        "summary" : "Create a Token",
        "description" : "Create a new token for a user",
        "operationId" : "createToken",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "The unique identifier of a user",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "PersonalAccessToken create parameters",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PersonalAccessTokenRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The token in plain text",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PersonalAccessTokenGenerated"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/users/{userId}/tokens/{tokenId}" : {
      "get" : {
        "tags" : [ "Tokens" ],
        "summary" : "Retrieve a Token",
        "description" : "Returns a specific token for a user",
        "operationId" : "getToken",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "The unique identifier of a user",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tokenId",
          "in" : "path",
          "description" : "The unique identifier of a token",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A PersonalAccessTokens Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PersonalAccessToken"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Tokens" ],
        "summary" : "Delete a Token",
        "description" : "Delete a token for a user",
        "operationId" : "deleteToken",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "The unique identifier of a user",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tokenId",
          "in" : "path",
          "description" : "The unique identifier of a token",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/peers" : {
      "get" : {
        "tags" : [ "Peers" ],
        "summary" : "List all Peers",
        "description" : "Returns a list of all peers",
        "operationId" : "getPeers",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Peers",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Peer"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/peers/{peerId}" : {
      "get" : {
        "tags" : [ "Peers" ],
        "summary" : "Retrieve a Peer",
        "description" : "Get information about a peer",
        "operationId" : "getPeer",
        "parameters" : [ {
          "name" : "peerId",
          "in" : "path",
          "description" : "The unique identifier of a peer",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Peer object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Peer"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "Peers" ],
        "summary" : "Update a Peer",
        "description" : "Update information about a peer",
        "parameters" : [ {
          "name" : "peerId",
          "in" : "path",
          "description" : "The unique identifier of a peer",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "update a peer",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PeerRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Peer object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Peer"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Peers" ],
        "summary" : "Delete a Peer",
        "description" : "Delete a peer",
        "parameters" : [ {
          "name" : "peerId",
          "in" : "path",
          "description" : "The unique identifier of a peer",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/setup-keys" : {
      "get" : {
        "tags" : [ "Setup Keys" ],
        "summary" : "List all Setup Keys",
        "description" : "Returns a list of all Setup Keys",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Setup keys",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/SetupKey"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Setup Keys" ],
        "summary" : "Create a Setup Key",
        "description" : "Creates a Setup Key",
        "requestBody" : {
          "description" : "New Setup Key request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SetupKeyRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Setup Keys Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SetupKey"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/setup-keys/{keyId}" : {
      "get" : {
        "tags" : [ "Setup Keys" ],
        "summary" : "Retrieve a Setup Key",
        "description" : "Get information about a Setup Key",
        "parameters" : [ {
          "name" : "keyId",
          "in" : "path",
          "description" : "The unique identifier of a setup key",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Setup Key object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SetupKey"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "Setup Keys" ],
        "summary" : "Update a Setup Key",
        "description" : "Update information about a Setup Key",
        "parameters" : [ {
          "name" : "keyId",
          "in" : "path",
          "description" : "The unique identifier of a setup key",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "update to Setup Key",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SetupKeyRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Setup Key object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SetupKey"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/groups" : {
      "get" : {
        "tags" : [ "Groups" ],
        "summary" : "List all Groups",
        "description" : "Returns a list of all Groups",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Groups",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Group"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Groups" ],
        "summary" : "Create a Group",
        "description" : "Creates a Group",
        "requestBody" : {
          "description" : "New Group request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Group Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Group"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/groups/{groupId}" : {
      "get" : {
        "tags" : [ "Groups" ],
        "summary" : "Retrieve a Group",
        "description" : "Get information about a Group",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "description" : "The unique identifier of a group",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Group object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Group"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "Groups" ],
        "summary" : "Update a Group",
        "description" : "Update/Replace a Group",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "description" : "The unique identifier of a group",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Update Group request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Group object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Group"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Groups" ],
        "summary" : "Delete a Group",
        "description" : "Delete a Group",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "description" : "The unique identifier of a group",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/rules" : {
      "get" : {
        "tags" : [ "Rules" ],
        "summary" : "List all Rules",
        "description" : "Returns a list of all Rules",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Rules",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Rule"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Rules" ],
        "summary" : "Create a Rule",
        "description" : "Creates a Rule",
        "requestBody" : {
          "description" : "New Rule request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RuleRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Rule Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rule"
                }
              }
            }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/rules/{ruleId}" : {
      "get" : {
        "tags" : [ "Rules" ],
        "summary" : "Retrieve a Rule",
        "description" : "Get information about a Rules",
        "parameters" : [ {
          "name" : "ruleId",
          "in" : "path",
          "description" : "The unique identifier of a rule",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Rule object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rule"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "Rules" ],
        "summary" : "Update a Rule",
        "description" : "Update/Replace a Rule",
        "parameters" : [ {
          "name" : "ruleId",
          "in" : "path",
          "description" : "The unique identifier of a rule",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Update Rule request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RuleRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Rule object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rule"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Rules" ],
        "summary" : "Delete a Rule",
        "description" : "Delete a Rule",
        "parameters" : [ {
          "name" : "ruleId",
          "in" : "path",
          "description" : "The unique identifier of a rule",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/policies" : {
      "get" : {
        "tags" : [ "Policies" ],
        "summary" : "List all Policies",
        "description" : "Returns a list of all Policies",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Policies",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Policy"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Policies" ],
        "summary" : "Create a Policy",
        "description" : "Creates a Policy",
        "requestBody" : {
          "description" : "New Policy request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PolicyMinimum"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Policy Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/policies/{policyId}" : {
      "get" : {
        "tags" : [ "Policies" ],
        "summary" : "Retrieve a Policy",
        "description" : "Get information about a Policies",
        "parameters" : [ {
          "name" : "policyId",
          "in" : "path",
          "description" : "The unique identifier of a policy",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Policy object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "Policies" ],
        "summary" : "Update a Policy",
        "description" : "Update/Replace a Policy",
        "parameters" : [ {
          "name" : "policyId",
          "in" : "path",
          "description" : "The unique identifier of a policy",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Update Policy request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PolicyMinimum"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Policy object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Policies" ],
        "summary" : "Delete a Policy",
        "description" : "Delete a Policy",
        "parameters" : [ {
          "name" : "policyId",
          "in" : "path",
          "description" : "The unique identifier of a policy",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/routes" : {
      "get" : {
        "tags" : [ "Routes" ],
        "summary" : "List all Routes",
        "description" : "Returns a list of all routes",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Routes",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Route"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "Routes" ],
        "summary" : "Create a Route",
        "description" : "Creates a Route",
        "requestBody" : {
          "description" : "New Routes request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RouteRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Route Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Route"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/routes/{routeId}" : {
      "get" : {
        "tags" : [ "Routes" ],
        "summary" : "Retrieve a Route",
        "description" : "Get information about a Routes",
        "parameters" : [ {
          "name" : "routeId",
          "in" : "path",
          "description" : "The unique identifier of a route",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Route object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Route"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "Routes" ],
        "summary" : "Update a Route",
        "description" : "Update/Replace a Route",
        "parameters" : [ {
          "name" : "routeId",
          "in" : "path",
          "description" : "The unique identifier of a route",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Update Route request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RouteRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Route object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Route"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Routes" ],
        "summary" : "Delete a Route",
        "description" : "Delete a Route",
        "parameters" : [ {
          "name" : "routeId",
          "in" : "path",
          "description" : "The unique identifier of a route",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/dns/nameservers" : {
      "get" : {
        "tags" : [ "DNS" ],
        "summary" : "List all Nameserver Groups",
        "description" : "Returns a list of all Nameserver Groups",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Nameserver Groups",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/NameserverGroup"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "DNS" ],
        "summary" : "Create a Nameserver Group",
        "description" : "Creates a Nameserver Group",
        "requestBody" : {
          "description" : "New Nameserver Groups request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NameserverGroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Nameserver Groups Object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NameserverGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/dns/nameservers/{nsgroupId}" : {
      "get" : {
        "tags" : [ "DNS" ],
        "summary" : "Retrieve a Nameserver Group",
        "description" : "Get information about a Nameserver Groups",
        "parameters" : [ {
          "name" : "nsgroupId",
          "in" : "path",
          "description" : "The unique identifier of a Nameserver Group",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A Nameserver Group object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NameserverGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "DNS" ],
        "summary" : "Update a Nameserver Group",
        "description" : "Update/Replace a Nameserver Group",
        "parameters" : [ {
          "name" : "nsgroupId",
          "in" : "path",
          "description" : "The unique identifier of a Nameserver Group",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Update Nameserver Group request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NameserverGroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A Nameserver Group object",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NameserverGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "DNS" ],
        "summary" : "Delete a Nameserver Group",
        "description" : "Delete a Nameserver Group",
        "parameters" : [ {
          "name" : "nsgroupId",
          "in" : "path",
          "description" : "The unique identifier of a Nameserver Group",
          "required" : true,
          "style" : "simple",
          "explode" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Delete status code",
            "content" : { }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/dns/settings" : {
      "get" : {
        "tags" : [ "DNS" ],
        "summary" : "Retrieve DNS Settings",
        "description" : "Returns a DNS settings object",
        "responses" : {
          "200" : {
            "description" : "A JSON Object of DNS Setting",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DNSSettings"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "DNS" ],
        "summary" : "Update DNS Settings",
        "description" : "Updates a DNS settings object",
        "requestBody" : {
          "description" : "A DNS settings object",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DNSSettings"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A JSON Object of DNS Setting",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DNSSettings"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    },
    "/api/events" : {
      "get" : {
        "tags" : [ "Events" ],
        "summary" : "List all Events",
        "description" : "Returns a list of all events",
        "responses" : {
          "200" : {
            "description" : "A JSON Array of Events",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Event"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "content" : { }
          },
          "401" : {
            "description" : "Requires authentication",
            "content" : { }
          },
          "403" : {
            "description" : "Forbidden",
            "content" : { }
          },
          "500" : {
            "description" : "Internal Server Error",
            "content" : { }
          }
        },
        "security" : [ {
          "BearerAuth" : [ ]
        }, {
          "TokenAuth" : [ ]
        } ]
      }
    }
  },
  "components" : {
    "schemas" : {
      "Account" : {
        "required" : [ "id", "settings" ],
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Account ID",
            "example" : "ch8i4ug6lnn4g9hqv7l0"
          },
          "settings" : {
            "$ref" : "#/components/schemas/AccountSettings"
          }
        }
      },
      "AccountSettings" : {
        "required" : [ "peer_login_expiration", "peer_login_expiration_enabled" ],
        "properties" : {
          "peer_login_expiration_enabled" : {
            "type" : "boolean",
            "description" : "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).",
            "example" : true
          },
          "peer_login_expiration" : {
            "type" : "integer",
            "description" : "Period of time after which peer login expires (seconds).",
            "example" : 43200
          }
        }
      },
      "User" : {
        "required" : [ "auto_groups", "email", "id", "name", "role", "status" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "User ID",
            "example" : "google-oauth2|277474792786460067937"
          },
          "email" : {
            "type" : "string",
            "description" : "User's email address",
            "example" : "demo@netbird.io"
          },
          "name" : {
            "type" : "string",
            "description" : "User's name from idp provider",
            "example" : "Tom Schulz"
          },
          "role" : {
            "type" : "string",
            "description" : "User's NetBird account role",
            "example" : "admin"
          },
          "status" : {
            "type" : "string",
            "description" : "User's status",
            "example" : "active",
            "enum" : [ "active", "invited", "disabled" ]
          },
          "auto_groups" : {
            "type" : "array",
            "description" : "Groups to auto-assign to peers registered by this user",
            "items" : {
              "type" : "string",
              "example" : "devs"
            }
          },
          "is_current" : {
            "type" : "boolean",
            "description" : "Is true if authenticated user is the same as this user",
            "readOnly" : true,
            "example" : true
          },
          "is_service_user" : {
            "type" : "boolean",
            "description" : "Is true if this user is a service user",
            "readOnly" : true,
            "example" : false
          }
        }
      },
      "UserRequest" : {
        "required" : [ "auto_groups", "role" ],
        "type" : "object",
        "properties" : {
          "role" : {
            "type" : "string",
            "description" : "User's NetBird account role",
            "example" : "admin"
          },
          "auto_groups" : {
            "type" : "array",
            "description" : "Groups to auto-assign to peers registered by this user",
            "items" : {
              "type" : "string",
              "example" : "devs"
            }
          }
        }
      },
      "UserCreateRequest" : {
        "required" : [ "auto_groups", "is_service_user", "role" ],
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "description" : "User's Email to send invite to",
            "example" : "demo@netbird.io"
          },
          "name" : {
            "type" : "string",
            "description" : "User's full name",
            "example" : "Tom Schulz"
          },
          "role" : {
            "type" : "string",
            "description" : "User's NetBird account role",
            "example" : "admin"
          },
          "auto_groups" : {
            "type" : "array",
            "description" : "Groups to auto-assign to peers registered by this user",
            "items" : {
              "type" : "string",
              "example" : "devs"
            }
          },
          "is_service_user" : {
            "type" : "boolean",
            "description" : "Is true if this user is a service user",
            "example" : false
          }
        }
      },
      "PeerMinimum" : {
        "required" : [ "id", "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Peer ID",
            "example" : "chacbco6lnnbn6cg5s90"
          },
          "name" : {
            "type" : "string",
            "description" : "Peer's hostname",
            "example" : "stage-host-1"
          }
        }
      },
      "PeerRequest" : {
        "required" : [ "login_expiration_enabled", "name", "ssh_enabled" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "example" : "stage-host-1"
          },
          "ssh_enabled" : {
            "type" : "boolean",
            "example" : true
          },
          "login_expiration_enabled" : {
            "type" : "boolean",
            "example" : false
          }
        }
      },
      "Peer" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/PeerMinimum"
        }, {
          "required" : [ "connected", "dns_label", "groups", "hostname", "ip", "last_login", "last_seen", "login_expiration_enabled", "login_expired", "os", "ssh_enabled", "version" ],
          "type" : "object",
          "properties" : {
            "ip" : {
              "type" : "string",
              "description" : "Peer's IP address",
              "example" : "10.64.0.1"
            },
            "connected" : {
              "type" : "boolean",
              "description" : "Peer to Management connection status",
              "example" : true
            },
            "last_seen" : {
              "type" : "string",
              "description" : "Last time peer connected to Netbird's management service",
              "format" : "date-time",
              "example" : "2023-05-05T10:05:26.420578Z"
            },
            "os" : {
              "type" : "string",
              "description" : "Peer's operating system and version",
              "example" : "Darwin 13.2.1"
            },
            "version" : {
              "type" : "string",
              "description" : "Peer's daemon or cli version",
              "example" : "0.14.0"
            },
            "groups" : {
              "type" : "array",
              "description" : "Groups that the peer belongs to",
              "items" : {
                "$ref" : "#/components/schemas/GroupMinimum"
              }
            },
            "ssh_enabled" : {
              "type" : "boolean",
              "description" : "Indicates whether SSH server is enabled on this peer",
              "example" : true
            },
            "user_id" : {
              "type" : "string",
              "description" : "User ID of the user that enrolled this peer",
              "example" : "google-oauth2|277474792786460067937"
            },
            "hostname" : {
              "type" : "string",
              "description" : "Hostname of the machine",
              "example" : "stage-host-1"
            },
            "ui_version" : {
              "type" : "string",
              "description" : "Peer's desktop UI version",
              "example" : "0.14.0"
            },
            "dns_label" : {
              "type" : "string",
              "description" : "Peer's DNS label is the parsed peer name for domain resolution. It is used to form an FQDN by appending the account's domain to the peer label. e.g. peer-dns-label.netbird.cloud",
              "example" : "stage-host-1.netbird.cloud"
            },
            "login_expiration_enabled" : {
              "type" : "boolean",
              "description" : "Indicates whether peer login expiration has been enabled or not",
              "example" : false
            },
            "login_expired" : {
              "type" : "boolean",
              "description" : "Indicates whether peer's login expired or not",
              "example" : false
            },
            "last_login" : {
              "type" : "string",
              "description" : "Last time this peer performed log in (authentication). E.g., user authenticated.",
              "format" : "date-time",
              "example" : "2023-05-05T09:00:35.477782Z"
            }
          }
        } ]
      },
      "SetupKey" : {
        "required" : [ "auto_groups", "expires", "id", "key", "last_used", "name", "revoked", "state", "type", "updated_at", "usage_limit", "used_times", "valid" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Setup Key ID",
            "example" : "2531583362"
          },
          "key" : {
            "type" : "string",
            "description" : "Setup Key value",
            "example" : "A616097E-FCF0-48FA-9354-CA4A61142761"
          },
          "name" : {
            "type" : "string",
            "description" : "Setup key name identifier",
            "example" : "Default key"
          },
          "expires" : {
            "type" : "string",
            "description" : "Setup Key expiration date",
            "format" : "date-time",
            "example" : "2023-06-01T14:47:22.291057Z"
          },
          "type" : {
            "type" : "string",
            "description" : "Setup key type, one-off for single time usage and reusable",
            "example" : "reusable"
          },
          "valid" : {
            "type" : "boolean",
            "description" : "Setup key validity status",
            "example" : true
          },
          "revoked" : {
            "type" : "boolean",
            "description" : "Setup key revocation status",
            "example" : false
          },
          "used_times" : {
            "type" : "integer",
            "description" : "Usage count of setup key",
            "example" : 2
          },
          "last_used" : {
            "type" : "string",
            "description" : "Setup key last usage date",
            "format" : "date-time",
            "example" : "2023-05-05T09:00:35.477782Z"
          },
          "state" : {
            "type" : "string",
            "description" : "Setup key status, \"valid\", \"overused\",\"expired\" or \"revoked\"",
            "example" : "valid"
          },
          "auto_groups" : {
            "type" : "array",
            "description" : "Setup key groups to auto-assign to peers registered with this key",
            "items" : {
              "type" : "string",
              "example" : "devs"
            }
          },
          "updated_at" : {
            "type" : "string",
            "description" : "Setup key last update date",
            "format" : "date-time",
            "example" : "2023-05-05T09:00:35.477782Z"
          },
          "usage_limit" : {
            "type" : "integer",
            "description" : "A number of times this key can be used. The value of 0 indicates the unlimited usage.",
            "example" : 0
          }
        }
      },
      "SetupKeyRequest" : {
        "required" : [ "auto_groups", "expires_in", "name", "revoked", "type", "usage_limit" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Setup Key name",
            "example" : "Default key"
          },
          "type" : {
            "type" : "string",
            "description" : "Setup key type, one-off for single time usage and reusable",
            "example" : "reusable"
          },
          "expires_in" : {
            "type" : "integer",
            "description" : "Expiration time in seconds",
            "example" : 43200
          },
          "revoked" : {
            "type" : "boolean",
            "description" : "Setup key revocation status",
            "example" : false
          },
          "auto_groups" : {
            "type" : "array",
            "description" : "Setup key groups to auto-assign to peers registered with this key",
            "items" : {
              "type" : "string",
              "example" : "devs"
            }
          },
          "usage_limit" : {
            "type" : "integer",
            "description" : "A number of times this key can be used. The value of 0 indicates the unlimited usage.",
            "example" : 0
          }
        }
      },
      "PersonalAccessToken" : {
        "required" : [ "created_at", "created_by", "expiration_date", "id", "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "ID of a token",
            "example" : "ch8i54g6lnn4g9hqv7n0"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the token",
            "example" : "My first token"
          },
          "expiration_date" : {
            "type" : "string",
            "description" : "Date the token expires",
            "format" : "date-time",
            "example" : "2023-05-05T14:38:28.977616Z"
          },
          "created_by" : {
            "type" : "string",
            "description" : "User ID of the user who created the token",
            "example" : "google-oauth2|277474792786460067937"
          },
          "created_at" : {
            "type" : "string",
            "description" : "Date the token was created",
            "format" : "date-time",
            "example" : "2023-05-02T14:48:20.465209Z"
          },
          "last_used" : {
            "type" : "string",
            "description" : "Date the token was last used",
            "format" : "date-time",
            "example" : "2023-05-04T12:45:25.9723616Z"
          }
        }
      },
      "PersonalAccessTokenGenerated" : {
        "required" : [ "personal_access_token", "plain_token" ],
        "type" : "object",
        "properties" : {
          "plain_token" : {
            "type" : "string",
            "description" : "Plain text representation of the generated token",
            "example" : "2023-05-02T14:48:20.465209Z"
          },
          "personal_access_token" : {
            "$ref" : "#/components/schemas/PersonalAccessToken"
          }
        }
      },
      "PersonalAccessTokenRequest" : {
        "required" : [ "expires_in", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the token",
            "example" : "My first token"
          },
          "expires_in" : {
            "maximum" : 365,
            "minimum" : 1,
            "type" : "integer",
            "description" : "Expiration in days",
            "example" : 30
          }
        }
      },
      "GroupMinimum" : {
        "required" : [ "id", "name", "peers_count" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Group ID",
            "example" : "ch8i4ug6lnn4g9hqv7m0"
          },
          "name" : {
            "type" : "string",
            "description" : "Group Name identifier",
            "example" : "devs"
          },
          "peers_count" : {
            "type" : "integer",
            "description" : "Count of peers associated to the group",
            "example" : 2
          }
        }
      },
      "GroupRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Group name identifier",
            "example" : "devs"
          },
          "peers" : {
            "type" : "array",
            "description" : "List of peers ids",
            "example" : "ch8i4ug6lnn4g9hqv7m1",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "Group" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/GroupMinimum"
        }, {
          "required" : [ "peers" ],
          "type" : "object",
          "properties" : {
            "peers" : {
              "type" : "array",
              "description" : "List of peers object",
              "items" : {
                "$ref" : "#/components/schemas/PeerMinimum"
              }
            }
          }
        } ]
      },
      "RuleMinimum" : {
        "required" : [ "description", "disabled", "flow", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Rule name identifier",
            "example" : "Default"
          },
          "description" : {
            "type" : "string",
            "description" : "Rule friendly description",
            "example" : "This is a default rule that allows connections between all the resources"
          },
          "disabled" : {
            "type" : "boolean",
            "description" : "Rules status",
            "example" : false
          },
          "flow" : {
            "type" : "string",
            "description" : "Rule flow, currently, only \"bidirect\" for bi-directional traffic is accepted",
            "example" : "bidirect"
          }
        }
      },
      "RuleRequest" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/RuleMinimum"
        }, {
          "type" : "object",
          "properties" : {
            "sources" : {
              "type" : "array",
              "description" : "List of source groups",
              "items" : {
                "type" : "string",
                "example" : "ch8i4ug6lnn4g9hqv7m1"
              }
            },
            "destinations" : {
              "type" : "array",
              "description" : "List of destination groups",
              "items" : {
                "type" : "string",
                "example" : "ch8i4ug6lnn4g9hqv7m0"
              }
            }
          }
        } ]
      },
      "Rule" : {
        "allOf" : [ {
          "required" : [ "id" ],
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Rule ID",
              "example" : "ch8i4ug6lnn4g9hqv7mg"
            }
          }
        }, {
          "$ref" : "#/components/schemas/RuleMinimum"
        }, {
          "required" : [ "destinations", "sources" ],
          "type" : "object",
          "properties" : {
            "sources" : {
              "type" : "array",
              "description" : "Rule source groups",
              "items" : {
                "$ref" : "#/components/schemas/GroupMinimum"
              }
            },
            "destinations" : {
              "type" : "array",
              "description" : "Rule destination groups",
              "items" : {
                "$ref" : "#/components/schemas/GroupMinimum"
              }
            }
          }
        } ]
      },
      "PolicyRule" : {
        "required" : [ "action", "destinations", "enabled", "name", "sources" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Rule ID",
            "example" : "ch8i4ug6lnn4g9hqv7mg"
          },
          "name" : {
            "type" : "string",
            "description" : "Rule name identifier",
            "example" : "Default"
          },
          "description" : {
            "type" : "string",
            "description" : "Rule friendly description",
            "example" : "This is a default rule that allows connections between all the resources"
          },
          "enabled" : {
            "type" : "boolean",
            "description" : "Rules status",
            "example" : true
          },
          "sources" : {
            "type" : "array",
            "description" : "policy source groups",
            "items" : {
              "$ref" : "#/components/schemas/GroupMinimum"
            }
          },
          "destinations" : {
            "type" : "array",
            "description" : "policy destination groups",
            "items" : {
              "$ref" : "#/components/schemas/GroupMinimum"
            }
          },
          "action" : {
            "type" : "string",
            "description" : "policy accept or drops packets",
            "example" : "accept",
            "enum" : [ "accept", "drop" ]
          }
        }
      },
      "PolicyMinimum" : {
        "required" : [ "description", "enabled", "name", "query", "rules" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Policy name identifier",
            "example" : "ch8i4ug6lnn4g9hqv7mg"
          },
          "description" : {
            "type" : "string",
            "description" : "Policy friendly description",
            "example" : "This is a default policy that allows connections between all the resources"
          },
          "enabled" : {
            "type" : "boolean",
            "description" : "Policy status",
            "example" : true
          },
          "query" : {
            "type" : "string",
            "description" : "Policy Rego query",
            "example" : "package netbird\\n\\nall[rule] {\\n    is_peer_in_any_group([\\\"ch8i4ug6lnn4g9hqv7m0\\\",\\\"ch8i4ug6lnn4g9hqv7m0\\\"])\\n    rule := {\\n        rules_from_group(\\\"ch8i4ug6lnn4g9hqv7m0\\\", \\\"dst\\\", \\\"accept\\\", \\\"\\\"),\\n        rules_from_group(\\\"ch8i4ug6lnn4g9hqv7m0\\\", \\\"src\\\", \\\"accept\\\", \\\"\\\"),\\n    }[_][_]\\n}\\n"
          },
          "rules" : {
            "type" : "array",
            "description" : "Policy rule object for policy UI editor",
            "items" : {
              "$ref" : "#/components/schemas/PolicyRule"
            }
          }
        }
      },
      "Policy" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/PolicyMinimum"
        }, {
          "required" : [ "id" ],
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Policy ID",
              "example" : "ch8i4ug6lnn4g9hqv7mg"
            }
          }
        } ]
      },
      "RouteRequest" : {
        "required" : [ "description", "enabled", "groups", "id", "masquerade", "metric", "network", "network_id", "peer" ],
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string",
            "description" : "Route description",
            "example" : "My first route"
          },
          "network_id" : {
            "maxLength" : 40,
            "minLength" : 1,
            "type" : "string",
            "description" : "Route network identifier, to group HA routes",
            "example" : "Route 1"
          },
          "enabled" : {
            "type" : "boolean",
            "description" : "Route status",
            "example" : true
          },
          "peer" : {
            "type" : "string",
            "description" : "Peer Identifier associated with route",
            "example" : "chacbco6lnnbn6cg5s91"
          },
          "network" : {
            "type" : "string",
            "description" : "Network range in CIDR format",
            "example" : "10.64.0.0/24"
          },
          "metric" : {
            "maximum" : 9999,
            "minimum" : 1,
            "type" : "integer",
            "description" : "Route metric number. Lowest number has higher priority",
            "example" : 9999
          },
          "masquerade" : {
            "type" : "boolean",
            "description" : "Indicate if peer should masquerade traffic to this route's prefix",
            "example" : true
          },
          "groups" : {
            "type" : "array",
            "description" : "Route group tag groups",
            "items" : {
              "type" : "string",
              "example" : "chacdk86lnnboviihd70"
            }
          }
        }
      },
      "Route" : {
        "allOf" : [ {
          "required" : [ "id", "network_type" ],
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Route Id",
              "example" : "chacdk86lnnboviihd7g"
            },
            "network_type" : {
              "type" : "string",
              "description" : "Network type indicating if it is IPv4 or IPv6",
              "example" : "IPv4"
            }
          }
        }, {
          "$ref" : "#/components/schemas/RouteRequest"
        } ]
      },
      "Nameserver" : {
        "required" : [ "ip", "ns_type", "port" ],
        "type" : "object",
        "properties" : {
          "ip" : {
            "type" : "string",
            "description" : "Nameserver IP",
            "example" : "8.8.8.8"
          },
          "ns_type" : {
            "type" : "string",
            "description" : "Nameserver Type",
            "example" : "udp",
            "enum" : [ "udp" ]
          },
          "port" : {
            "type" : "integer",
            "description" : "Nameserver Port",
            "example" : 53
          }
        }
      },
      "NameserverGroupRequest" : {
        "required" : [ "description", "domains", "enabled", "groups", "name", "nameservers", "primary" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 40,
            "minLength" : 1,
            "type" : "string",
            "description" : "Nameserver group name",
            "example" : "Google DNS"
          },
          "description" : {
            "type" : "string",
            "description" : "Nameserver group  description",
            "example" : "Google DNS servers"
          },
          "nameservers" : {
            "maxLength" : 2,
            "minLength" : 1,
            "type" : "array",
            "description" : "Nameserver group",
            "items" : {
              "$ref" : "#/components/schemas/Nameserver"
            }
          },
          "enabled" : {
            "type" : "boolean",
            "description" : "Nameserver group status",
            "example" : true
          },
          "groups" : {
            "type" : "array",
            "description" : "Nameserver group tag groups",
            "items" : {
              "type" : "string",
              "example" : "ch8i4ug6lnn4g9hqv7m0"
            }
          },
          "primary" : {
            "type" : "boolean",
            "description" : "Nameserver group primary status",
            "example" : true
          },
          "domains" : {
            "type" : "array",
            "description" : "Nameserver group domain list",
            "items" : {
              "maxLength" : 255,
              "minLength" : 1,
              "type" : "string",
              "example" : "example.com"
            }
          }
        }
      },
      "NameserverGroup" : {
        "allOf" : [ {
          "required" : [ "id" ],
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Nameserver group ID",
              "example" : "ch8i4ug6lnn4g9hqv7m0"
            }
          }
        }, {
          "$ref" : "#/components/schemas/NameserverGroupRequest"
        } ]
      },
      "DNSSettings" : {
        "required" : [ "disabled_management_groups" ],
        "type" : "object",
        "properties" : {
          "disabled_management_groups" : {
            "type" : "array",
            "description" : "Groups whose DNS management is disabled",
            "items" : {
              "type" : "string",
              "example" : "ch8i4ug6lnn4g9hqv7m0"
            }
          }
        }
      },
      "Event" : {
        "required" : [ "activity", "activity_code", "id", "initiator_id", "meta", "target_id", "timestamp" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Event unique identifier",
            "example" : "10"
          },
          "timestamp" : {
            "type" : "string",
            "description" : "The date and time when the event occurred",
            "format" : "date-time",
            "example" : "2023-05-05T10:04:37.473542Z"
          },
          "activity" : {
            "type" : "string",
            "description" : "The activity that occurred during the event",
            "example" : "Route created"
          },
          "activity_code" : {
            "type" : "string",
            "description" : "The string code of the activity that occurred during the event",
            "example" : "route.add",
            "enum" : [ "user.peer.delete", "user.join", "user.invite", "user.peer.add", "user.group.add", "user.group.delete", "user.role.update", "setupkey.peer.add", "setupkey.add", "setupkey.update", "setupkey.revoke", "setupkey.overuse", "setupkey.group.delete", "setupkey.group.add", "rule.add", "rule.delete", "rule.update", "policy.add", "policy.delete", "policy.update", "group.add", "group.update", "dns.setting.disabled.management.group.add", "dns.setting.disabled.management.group.delete", "account.create", "account.setting.peer.login.expiration.update", "account.setting.peer.login.expiration.disable", "account.setting.peer.login.expiration.enable", "route.add", "route.delete", "route.update", "nameserver.group.add", "nameserver.group.delete", "nameserver.group.update", "peer.ssh.disable", "peer.ssh.enable", "peer.rename", "peer.login.expiration.disable", "peer.login.expiration.enable", "service.user.create", "personal.access.token.create", "service.user.delete", "personal.access.token.delete" ]
          },
          "initiator_id" : {
            "type" : "string",
            "description" : "The ID of the initiator of the event. E.g., an ID of a user that triggered the event.",
            "example" : "google-oauth2|123456789012345678901"
          },
          "target_id" : {
            "type" : "string",
            "description" : "The ID of the target of the event. E.g., an ID of the peer that a user removed.",
            "example" : "chad9d86lnnc59g18ou0"
          },
          "meta" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "The metadata of the event",
            "example" : {
              "name" : "my route",
              "network_range" : "10.64.0.0/24",
              "peer_id" : "chacbco6lnnbn6cg5s91"
            }
          }
        }
      }
    },
    "responses" : {
      "not_found" : {
        "description" : "Resource not found",
        "content" : { }
      },
      "validation_failed_simple" : {
        "description" : "Validation failed",
        "content" : { }
      },
      "bad_request" : {
        "description" : "Bad Request",
        "content" : { }
      },
      "internal_error" : {
        "description" : "Internal Server Error",
        "content" : { }
      },
      "validation_failed" : {
        "description" : "Validation failed",
        "content" : { }
      },
      "forbidden" : {
        "description" : "Forbidden",
        "content" : { }
      },
      "requires_authentication" : {
        "description" : "Requires authentication",
        "content" : { }
      }
    },
    "securitySchemes" : {
      "BearerAuth" : {
        "type" : "http",
        "scheme" : "bearer",
        "bearerFormat" : "JWT"
      },
      "TokenAuth" : {
        "type" : "apiKey",
        "description" : "Enter the token with the `Token` prefix, e.g. \"Token nbp_F3f0d.....\".",
        "name" : "Authorization",
        "in" : "header"
      }
    }
  }
}