From e58a015bafc9d3a2a0447b15c0a1ff17f5b00240 Mon Sep 17 00:00:00 2001 From: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com> Date: Wed, 20 Apr 2022 10:27:25 +0300 Subject: [PATCH] Swagger: annotate RoleType as enumeration (#47902) --- pkg/models/apikey.go | 1 + pkg/models/org_user.go | 1 + public/api-merged.json | 89 ++++++++++++++++++++++++++---------------- public/api-spec.json | 89 ++++++++++++++++++++++++++---------------- 4 files changed, 114 insertions(+), 66 deletions(-) diff --git a/pkg/models/apikey.go b/pkg/models/apikey.go index 430dddf311f..aabbc4e78b4 100644 --- a/pkg/models/apikey.go +++ b/pkg/models/apikey.go @@ -26,6 +26,7 @@ type ApiKey struct { // --------------------- // COMMANDS +// swagger:model type AddApiKeyCommand struct { Name string `json:"name" binding:"Required"` Role RoleType `json:"role" binding:"Required"` diff --git a/pkg/models/org_user.go b/pkg/models/org_user.go index d2f0f732dd4..f91c28f0b58 100644 --- a/pkg/models/org_user.go +++ b/pkg/models/org_user.go @@ -14,6 +14,7 @@ var ( ErrOrgUserAlreadyAdded = errors.New("user is already added to organization") ) +// swagger:enum RoleType type RoleType string const ( diff --git a/public/api-merged.json b/public/api-merged.json index 2a329b78226..c889a5034df 100644 --- a/public/api-merged.json +++ b/public/api-merged.json @@ -506,14 +506,6 @@ "summary": "Add a user role assignment.", "operationId": "addUserRole", "parameters": [ - { - "type": "integer", - "format": "int64", - "x-go-name": "UserID", - "name": "user_id", - "in": "path", - "required": true - }, { "x-go-name": "Body", "name": "body", @@ -522,6 +514,14 @@ "schema": { "$ref": "#/definitions/AddUserRoleCommand" } + }, + { + "type": "integer", + "format": "int64", + "x-go-name": "UserID", + "name": "user_id", + "in": "path", + "required": true } ], "responses": { @@ -547,14 +547,6 @@ "summary": "Remove a user role assignment.", "operationId": "removeUserRole", "parameters": [ - { - "type": "integer", - "format": "int64", - "x-go-name": "UserID", - "name": "user_id", - "in": "path", - "required": true - }, { "type": "string", "x-go-name": "RoleUID", @@ -568,6 +560,14 @@ "description": "A flag indicating if the assignment is global or not. If set to false, the default org ID of the authenticated user will be used from the request to remove assignment.", "name": "global", "in": "query" + }, + { + "type": "integer", + "format": "int64", + "x-go-name": "UserID", + "name": "user_id", + "in": "path", + "required": true } ], "responses": { @@ -4625,15 +4625,15 @@ "parameters": [ { "type": "string", - "x-go-name": "DatasourceID", - "name": "datasource_id", + "x-go-name": "PermissionID", + "name": "permissionId", "in": "path", "required": true }, { "type": "string", - "x-go-name": "PermissionID", - "name": "permissionId", + "x-go-name": "DatasourceID", + "name": "datasource_id", "in": "path", "required": true } @@ -9550,7 +9550,10 @@ "x-go-name": "Name" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "secondsToLive": { "type": "integer", @@ -9660,7 +9663,10 @@ "x-go-name": "Name" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "sendEmail": { "type": "boolean", @@ -9677,7 +9683,10 @@ "x-go-name": "LoginOrEmail" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" @@ -10440,7 +10449,10 @@ "x-go-name": "Name" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" @@ -11039,7 +11051,10 @@ "x-go-name": "PermissionName" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "slug": { "type": "string", @@ -11106,7 +11121,10 @@ "$ref": "#/definitions/PermissionType" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "teamId": { "type": "integer", @@ -14876,10 +14894,6 @@ }, "x-go-package": "github.com/grafana/grafana/pkg/services/accesscontrol" }, - "RoleType": { - "type": "string", - "x-go-package": "github.com/grafana/grafana/pkg/models" - }, "Route": { "description": "A Route is a node that contains definitions of how to handle alerts. This is modified\nfrom the upstream alertmanager in that it adds the ObjectMatchers property.", "type": "object", @@ -15857,7 +15871,10 @@ "x-go-name": "OrgId" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "status": { "$ref": "#/definitions/TempUserStatus" @@ -16538,7 +16555,10 @@ "type": "object", "properties": { "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" @@ -16727,7 +16747,10 @@ "x-go-name": "OrgId" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" diff --git a/public/api-spec.json b/public/api-spec.json index 117b03382c3..3ccfe18d1ef 100644 --- a/public/api-spec.json +++ b/public/api-spec.json @@ -506,14 +506,6 @@ "summary": "Add a user role assignment.", "operationId": "addUserRole", "parameters": [ - { - "type": "integer", - "format": "int64", - "x-go-name": "UserID", - "name": "user_id", - "in": "path", - "required": true - }, { "x-go-name": "Body", "name": "body", @@ -522,6 +514,14 @@ "schema": { "$ref": "#/definitions/AddUserRoleCommand" } + }, + { + "type": "integer", + "format": "int64", + "x-go-name": "UserID", + "name": "user_id", + "in": "path", + "required": true } ], "responses": { @@ -547,14 +547,6 @@ "summary": "Remove a user role assignment.", "operationId": "removeUserRole", "parameters": [ - { - "type": "integer", - "format": "int64", - "x-go-name": "UserID", - "name": "user_id", - "in": "path", - "required": true - }, { "type": "string", "x-go-name": "RoleUID", @@ -568,6 +560,14 @@ "description": "A flag indicating if the assignment is global or not. If set to false, the default org ID of the authenticated user will be used from the request to remove assignment.", "name": "global", "in": "query" + }, + { + "type": "integer", + "format": "int64", + "x-go-name": "UserID", + "name": "user_id", + "in": "path", + "required": true } ], "responses": { @@ -3675,15 +3675,15 @@ "parameters": [ { "type": "string", - "x-go-name": "DatasourceID", - "name": "datasource_id", + "x-go-name": "PermissionID", + "name": "permissionId", "in": "path", "required": true }, { "type": "string", - "x-go-name": "PermissionID", - "name": "permissionId", + "x-go-name": "DatasourceID", + "name": "datasource_id", "in": "path", "required": true } @@ -7797,7 +7797,10 @@ "x-go-name": "Name" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "secondsToLive": { "type": "integer", @@ -7907,7 +7910,10 @@ "x-go-name": "Name" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "sendEmail": { "type": "boolean", @@ -7924,7 +7930,10 @@ "x-go-name": "LoginOrEmail" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" @@ -8553,7 +8562,10 @@ "x-go-name": "Name" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" @@ -9047,7 +9059,10 @@ "x-go-name": "PermissionName" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "slug": { "type": "string", @@ -9114,7 +9129,10 @@ "$ref": "#/definitions/PermissionType" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "teamId": { "type": "integer", @@ -11254,10 +11272,6 @@ }, "x-go-package": "github.com/grafana/grafana/pkg/services/accesscontrol" }, - "RoleType": { - "type": "string", - "x-go-package": "github.com/grafana/grafana/pkg/models" - }, "SaveDashboardCommand": { "type": "object", "properties": { @@ -11709,7 +11723,10 @@ "x-go-name": "OrgId" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" }, "status": { "$ref": "#/definitions/TempUserStatus" @@ -12181,7 +12198,10 @@ "type": "object", "properties": { "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models" @@ -12370,7 +12390,10 @@ "x-go-name": "OrgId" }, "role": { - "$ref": "#/definitions/RoleType" + "type": "string", + "enum": ["Viewer", "Editor", "Admin"], + "x-go-enum-desc": "Viewer ROLE_VIEWER\nEditor ROLE_EDITOR\nAdmin ROLE_ADMIN", + "x-go-name": "Role" } }, "x-go-package": "github.com/grafana/grafana/pkg/models"