From 75fbaf811b0631bc30fd42a0c8a0b3204b9ee397 Mon Sep 17 00:00:00 2001 From: Pascal Fischer Date: Fri, 2 Jun 2023 01:09:18 +0200 Subject: [PATCH 1/3] update openapi --- management/server/http/accounts_handler.go | 2 +- management/server/http/api/openapi.yml | 16 ++++++++++------ management/server/http/api/types.gen.go | 12 ++++++------ 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/management/server/http/accounts_handler.go b/management/server/http/accounts_handler.go index c1c0352bb..13d5909ce 100644 --- a/management/server/http/accounts_handler.go +++ b/management/server/http/accounts_handler.go @@ -65,7 +65,7 @@ func (h *AccountsHandler) UpdateAccount(w http.ResponseWriter, r *http.Request) return } - var req api.PutApiAccountsAccountIdJSONBody + var req api.PutApiAccountsAccountIdJSONRequestBody err = json.NewDecoder(r.Body).Decode(&req) if err != nil { util.WriteErrorResponse("couldn't parse JSON request", http.StatusBadRequest, w) diff --git a/management/server/http/api/openapi.yml b/management/server/http/api/openapi.yml index 67a2f8f53..d495710e0 100644 --- a/management/server/http/api/openapi.yml +++ b/management/server/http/api/openapi.yml @@ -32,6 +32,7 @@ tags: components: schemas: Account: + type: object properties: id: description: Account ID @@ -43,6 +44,7 @@ components: - id - settings AccountSettings: + type: object properties: peer_login_expiration_enabled: 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). @@ -55,6 +57,13 @@ components: required: - peer_login_expiration_enabled - peer_login_expiration + AccountRequest: + type: object + properties: + settings: + $ref: '#/components/schemas/AccountSettings' + required: + - settings User: type: object properties: @@ -975,12 +984,7 @@ paths: content: 'application/json': schema: - type: object - properties: - settings: - $ref: '#/components/schemas/AccountSettings' - required: - - settings + $ref: '#/components/schemas/AccountRequest' responses: '200': description: An Account object diff --git a/management/server/http/api/types.gen.go b/management/server/http/api/types.gen.go index 9c67425c4..8ef1bc935 100644 --- a/management/server/http/api/types.gen.go +++ b/management/server/http/api/types.gen.go @@ -122,6 +122,11 @@ type Account struct { Settings AccountSettings `json:"settings"` } +// AccountRequest defines model for AccountRequest. +type AccountRequest struct { + Settings AccountSettings `json:"settings"` +} + // AccountSettings defines model for AccountSettings. type AccountSettings struct { // PeerLoginExpiration Period of time after which peer login expires (seconds). @@ -788,11 +793,6 @@ type UserRequest struct { Role string `json:"role"` } -// PutApiAccountsAccountIdJSONBody defines parameters for PutApiAccountsAccountId. -type PutApiAccountsAccountIdJSONBody struct { - Settings AccountSettings `json:"settings"` -} - // GetApiUsersParams defines parameters for GetApiUsers. type GetApiUsersParams struct { // ServiceUser Filters users and returns either regular users or service users @@ -800,7 +800,7 @@ type GetApiUsersParams struct { } // PutApiAccountsAccountIdJSONRequestBody defines body for PutApiAccountsAccountId for application/json ContentType. -type PutApiAccountsAccountIdJSONRequestBody PutApiAccountsAccountIdJSONBody +type PutApiAccountsAccountIdJSONRequestBody = AccountRequest // PostApiDnsNameserversJSONRequestBody defines body for PostApiDnsNameservers for application/json ContentType. type PostApiDnsNameserversJSONRequestBody = NameserverGroupRequest From 2dcfa1efa3cfa087a237cb19660da26857973e37 Mon Sep 17 00:00:00 2001 From: Pascal Fischer Date: Fri, 2 Jun 2023 01:32:48 +0200 Subject: [PATCH 2/3] fix summary --- management/server/http/api/openapi.yml | 84 +++++++++++++------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/management/server/http/api/openapi.yml b/management/server/http/api/openapi.yml index d495710e0..7b43ff004 100644 --- a/management/server/http/api/openapi.yml +++ b/management/server/http/api/openapi.yml @@ -941,7 +941,7 @@ security: paths: /api/accounts: get: - summary: List all accounts + summary: List all Accounts description: Returns a list of accounts of a user. Always returns a list of one account. tags: [ Accounts ] security: @@ -966,7 +966,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/accounts/{accountId}: put: - summary: Update an account + summary: Update an Account description: Update information about an account tags: [ Accounts ] security: @@ -1002,7 +1002,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/users: get: - summary: List all users + summary: List all Users description: Returns a list of all users tags: [ Users ] security: @@ -1032,7 +1032,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a user + summary: Create a User description: Creates a new service user or sends an invite to a regular user tags: [ Users ] security: @@ -1061,7 +1061,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/users/{userId}: put: - summary: Update a user + summary: Update a User description: Update information about a User tags: [ Users ] security: @@ -1096,7 +1096,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" delete: - summary: Delete a user + summary: Delete a User description: Delete a user tags: [ Users ] security: @@ -1123,7 +1123,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/users/{userId}/tokens: get: - summary: List all tokens + summary: List all Tokens description: Returns a list of all tokens for a user tags: [ Tokens ] security: @@ -1154,7 +1154,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a token + summary: Create a Token description: Create a new token for a user tags: [ Tokens ] security: @@ -1190,7 +1190,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/users/{userId}/tokens/{tokenId}: get: - summary: Retrieve a token + summary: Retrieve a Token description: Returns a specific token for a user tags: [ Tokens ] security: @@ -1225,7 +1225,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" delete: - summary: Delete a token + summary: Delete a Token description: Delete a token for a user tags: [ Tokens ] security: @@ -1258,7 +1258,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/peers: get: - summary: List all peers + summary: List all Peers description: Returns a list of all peers tags: [ Peers ] security: @@ -1283,7 +1283,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/peers/{peerId}: get: - summary: Retrieve a peer + summary: Retrieve a Peer description: Get information about a peer tags: [ Peers ] security: @@ -1312,7 +1312,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a peer + summary: Update a Peer description: Update information about a peer tags: [ Peers ] security: @@ -1347,7 +1347,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" delete: - summary: Delete a peer + summary: Delete a Peer description: Delete a peer tags: [ Peers ] security: @@ -1374,7 +1374,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/setup-keys: get: - summary: List all setup keys + summary: List all Setup Keys description: Returns a list of all Setup Keys tags: [ Setup Keys ] security: @@ -1398,7 +1398,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a setup key + summary: Create a Setup Key description: Creates a setup key tags: [ Setup Keys ] security: @@ -1427,7 +1427,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/setup-keys/{keyId}: get: - summary: Retrieve a setup key + summary: Retrieve a Setup Key description: Get information about a setup key tags: [ Setup Keys ] security: @@ -1456,7 +1456,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a setup key + summary: Update a Setup Key description: Update information about a setup key tags: [ Setup Keys ] security: @@ -1492,7 +1492,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/groups: get: - summary: List all groups + summary: List all Groups description: Returns a list of all groups tags: [ Groups ] security: @@ -1516,7 +1516,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a group + summary: Create a Group description: Creates a group tags: [ Groups ] security: @@ -1545,7 +1545,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/groups/{groupId}: get: - summary: Retrieve a group + summary: Retrieve a Group description: Get information about a group tags: [ Groups ] security: @@ -1574,7 +1574,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a group + summary: Update a Group description: Update/Replace a group tags: [ Groups ] security: @@ -1636,7 +1636,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/rules: get: - summary: List all rules + summary: List all Rules description: Returns a list of all rules tags: [ Rules ] security: @@ -1660,7 +1660,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a rule + summary: Create a Rule description: Creates a rule tags: [ Rules ] security: @@ -1681,7 +1681,7 @@ paths: $ref: '#/components/schemas/Rule' /api/rules/{ruleId}: get: - summary: Retrieve a rule + summary: Retrieve a Rule description: Get information about a rules tags: [ Rules ] security: @@ -1710,7 +1710,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a rule + summary: Update a Rule description: Update/Replace a rule tags: [ Rules ] security: @@ -1745,7 +1745,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" delete: - summary: Delete a rule + summary: Delete a Rule description: Delete a rule tags: [ Rules ] security: @@ -1772,7 +1772,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/policies: get: - summary: List all policies + summary: List all Policies description: Returns a list of all policies tags: [ Policies ] security: @@ -1796,7 +1796,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a policy + summary: Create a Policy description: Creates a policy tags: [ Policies ] security: @@ -1817,7 +1817,7 @@ paths: $ref: '#/components/schemas/Policy' /api/policies/{policyId}: get: - summary: Retrieve a policy + summary: Retrieve a Policy description: Get information about a Policies tags: [ Policies ] security: @@ -1846,7 +1846,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a policy + summary: Update a Policy description: Update/Replace a Policy tags: [ Policies ] security: @@ -1908,7 +1908,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/routes: get: - summary: List all routes + summary: List all Routes description: Returns a list of all routes tags: [ Routes ] security: @@ -1932,7 +1932,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a route + summary: Create a Route description: Creates a Route tags: [ Routes ] security: @@ -1962,7 +1962,7 @@ paths: /api/routes/{routeId}: get: - summary: Retrieve a route + summary: Retrieve a Route description: Get information about a Routes tags: [ Routes ] security: @@ -1991,7 +1991,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a route + summary: Update a Route description: Update/Replace a Route tags: [ Routes ] security: @@ -2053,7 +2053,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/dns/nameservers: get: - summary: List all nameserver groups + summary: List all Nameserver Groups description: Returns a list of all Nameserver Groups tags: [ DNS ] security: @@ -2077,7 +2077,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" post: - summary: Create a nameserver group + summary: Create a Nameserver Group description: Creates a Nameserver Group tags: [ DNS ] security: @@ -2107,7 +2107,7 @@ paths: /api/dns/nameservers/{nsgroupId}: get: - summary: Retrieve a nameserver group + summary: Retrieve a Nameserver Group description: Get information about a Nameserver Groups tags: [ DNS ] security: @@ -2136,7 +2136,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update a nameserver group + summary: Update a Nameserver Group description: Update/Replace a Nameserver Group tags: [ DNS ] security: @@ -2171,7 +2171,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" delete: - summary: Delete a nameserver group + summary: Delete a Nameserver Group description: Delete a Nameserver Group tags: [ DNS ] security: @@ -2222,7 +2222,7 @@ paths: '500': "$ref": "#/components/responses/internal_error" put: - summary: Update DNS settings + summary: Update DNS Settings description: Updates a DNS settings object tags: [ DNS ] security: @@ -2251,7 +2251,7 @@ paths: "$ref": "#/components/responses/internal_error" /api/events: get: - summary: List all events + summary: List all Events description: Returns a list of all events tags: [ Events ] security: From 50284501334187ab498c61cb794e2334a284b322 Mon Sep 17 00:00:00 2001 From: Pascal Fischer Date: Fri, 2 Jun 2023 01:50:15 +0200 Subject: [PATCH 3/3] add examples --- management/server/http/api/openapi.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/management/server/http/api/openapi.yml b/management/server/http/api/openapi.yml index 7b43ff004..88188dff1 100644 --- a/management/server/http/api/openapi.yml +++ b/management/server/http/api/openapi.yml @@ -478,7 +478,7 @@ components: description: List of peers ids items: type: string - example: "ch8i4ug6lnn4g9hqv7m1" + example: "ch8i4ug6lnn4g9hqv7m1" required: - name Group: @@ -578,10 +578,12 @@ components: enabled: description: Policy rule status type: boolean + example: true action: description: Policy rule accept or drops packets type: string enum: ["accept","drop"] + example: "accept" bidirectional: description: Define if the rule is applicable in both directions, sources, and destinations. type: boolean @@ -596,7 +598,7 @@ components: type: array items: type: string - example: [80,443] + example: "80" required: - name - enabled @@ -613,11 +615,13 @@ components: type: array items: type: string + example: "ch8i4ug6lnn4g9hqv797" destinations: description: Policy rule destination groups type: array items: type: string + example: "ch8i4ug6lnn4g9h7v7m0" required: - sources - destinations @@ -645,6 +649,7 @@ components: id: description: Policy ID type: string + example: ch8i4ug6lnn4g9hqv7mg name: description: Policy name identifier type: string @@ -660,6 +665,7 @@ components: query: description: Policy Rego query type: string + 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" required: - name - description