mirror of
https://github.com/grafana/grafana.git
synced 2025-02-03 20:21:01 -06:00
Nested Folders: More API fixes (#59316)
* Nested Folder: Fix create, use camel case for JSON properties * Fix get parents if the folder does not exist * Add store test for get parents
This commit is contained in:
parent
5a3f0e8696
commit
f5c41ea497
@ -3,6 +3,7 @@ package folderimpl
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
@ -517,7 +518,7 @@ func (s *Service) nestedFolderCreate(ctx context.Context, cmd *folder.CreateFold
|
||||
func (s *Service) validateParent(ctx context.Context, orgID int64, parentUID string) error {
|
||||
ancestors, err := s.store.GetParents(ctx, folder.GetParentsQuery{UID: parentUID, OrgID: orgID})
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to get parents: %w", err)
|
||||
}
|
||||
|
||||
if len(ancestors) == folder.MaxNestedFolderDepth {
|
||||
|
@ -201,6 +201,13 @@ func (ss *sqlStore) GetParents(ctx context.Context, q folder.GetParentsQuery) ([
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(folders) < 1 {
|
||||
// the query is expected to return at least the same folder
|
||||
// if it's empty it means that the folder does not exist
|
||||
return nil, folder.ErrFolderNotFound
|
||||
}
|
||||
|
||||
return util.Reverse(folders[1:]), nil
|
||||
}
|
||||
|
||||
|
@ -397,6 +397,11 @@ func TestIntegrationGetParents(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("get parents of unknown folder should return an error", func(t *testing.T) {
|
||||
_, err := folderStore.GetParents(context.Background(), folder.GetParentsQuery{})
|
||||
require.ErrorIs(t, err, folder.ErrFolderNotFound)
|
||||
})
|
||||
|
||||
t.Run("get parents of 1-st level folder should be empty", func(t *testing.T) {
|
||||
parents, err := folderStore.GetParents(context.Background(), folder.GetParentsQuery{
|
||||
UID: f.UID,
|
||||
|
@ -66,7 +66,7 @@ type CreateFolderCommand struct {
|
||||
OrgID int64 `json:"-"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
ParentUID string `json:"parent_uid"`
|
||||
ParentUID string `json:"parentUid"`
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
}
|
||||
@ -86,7 +86,7 @@ type UpdateFolderCommand struct {
|
||||
// to move a folder.
|
||||
type MoveFolderCommand struct {
|
||||
UID string `json:"uid"`
|
||||
NewParentUID string `json:"new_parent_uid"`
|
||||
NewParentUID string `json:"newParentUid"`
|
||||
OrgID int64 `json:"-"`
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
|
@ -1400,7 +1400,7 @@
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/UpdateUserQuotaCmd"
|
||||
"$ref": "#/definitions/UpdateQuotaCmd"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -2458,6 +2458,11 @@
|
||||
"schema": {
|
||||
"$ref": "#/definitions/ProvisionedAlertRule"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "X-Disable-Provenance",
|
||||
"in": "header"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@ -2527,6 +2532,11 @@
|
||||
"schema": {
|
||||
"$ref": "#/definitions/ProvisionedAlertRule"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "X-Disable-Provenance",
|
||||
"in": "header"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@ -6317,6 +6327,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/org/quotas": {
|
||||
"get": {
|
||||
"description": "If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `orgs.quotas:read` and scope `org:id:1` (orgIDScope).",
|
||||
"tags": [
|
||||
"getCurrentOrg"
|
||||
],
|
||||
"summary": "Fetch Organization quota.",
|
||||
"operationId": "getCurrentOrgQuota",
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/getQuotaResponse"
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#/responses/unauthorisedError"
|
||||
},
|
||||
"403": {
|
||||
"$ref": "#/responses/forbiddenError"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/responses/notFoundError"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/responses/internalServerError"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/org/users": {
|
||||
"get": {
|
||||
"description": "Returns all org users within the current organization. Accessible to users with org admin role.\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `org.users:read` with scope `users:*`.",
|
||||
@ -6840,7 +6877,7 @@
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/UpdateOrgQuotaCmd"
|
||||
"$ref": "#/definitions/UpdateQuotaCmd"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -11630,7 +11667,7 @@
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"parent_uid": {
|
||||
"parentUid": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
@ -12989,7 +13026,7 @@
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"parent_uid": {
|
||||
"parentUid": {
|
||||
"description": "only used if nested folders are enabled",
|
||||
"type": "string"
|
||||
},
|
||||
@ -13431,12 +13468,6 @@
|
||||
"GettableNGalertConfig": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"alertmanagers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"alertmanagersChoice": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@ -14368,32 +14399,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Model": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"type": "object",
|
||||
"title": "Model is the Go representation of a playlist.",
|
||||
"properties": {
|
||||
"interval": {
|
||||
"description": "Interval sets the time between switching views in a playlist.\nFIXME: Is this based on a standardized format or what options are available? Can datemath be used?",
|
||||
"type": "string"
|
||||
},
|
||||
"items": {
|
||||
"description": "The ordered list of items that the playlist will iterate over.\nFIXME! This should not be optional, but changing it makes the godegen awkward",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/PlaylistItem"
|
||||
}
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the playlist.",
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"description": "Unique playlist identifier. Generated on creation, either by the\ncreator of the playlist of by the application.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MultiStatus": {
|
||||
"type": "object"
|
||||
},
|
||||
@ -14898,7 +14903,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -14992,12 +14997,15 @@
|
||||
"format": "int64"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval sets the time between switching views in a playlist.\nFIXME: Is this based on a standardized format or what options are available? Can datemath be used?",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the playlist.",
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"description": "Unique playlist identifier. Generated on creation, either by the\ncreator of the playlist of by the application.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@ -15034,9 +15042,8 @@
|
||||
}
|
||||
},
|
||||
"PlaylistItem": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"type": "object",
|
||||
"title": "PlaylistItem is the Go representation of a playlist.Item.",
|
||||
"title": "PlaylistItem defines model for playlist.Item.",
|
||||
"properties": {
|
||||
"title": {
|
||||
"description": "Title is an unused property -- it will be removed in the future",
|
||||
@ -15052,7 +15059,6 @@
|
||||
}
|
||||
},
|
||||
"PlaylistItemType": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"type": "string",
|
||||
"title": "Type of the item."
|
||||
},
|
||||
@ -15350,12 +15356,6 @@
|
||||
"PostableNGalertConfig": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"alertmanagers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"alertmanagersChoice": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@ -15407,7 +15407,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -15848,6 +15848,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"QuotaDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"org_id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
},
|
||||
"used": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Receiver": {
|
||||
"type": "object",
|
||||
"title": "Receiver configuration provides configuration on how to contact a receiver.",
|
||||
@ -17523,8 +17547,9 @@
|
||||
"type": "string"
|
||||
},
|
||||
"URL": {
|
||||
"description": "The general form represented is:\n\n[scheme:][//[userinfo@]host][/]path[?query][#fragment]\n\nURLs that do not start with a slash after the scheme are interpreted as:\n\nscheme:opaque[?query][#fragment]\n\nNote that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.\nA consequence is that it is impossible to tell which slashes in the Path were\nslashes in the raw URL and which were %2f. This distinction is rarely important,\nbut when it is, the code should use RawPath, an optional field which only gets\nset if the default encoding is different from Path.\n\nURL's String method uses the EscapedPath method to obtain the path. See the\nEscapedPath method for more details.",
|
||||
"type": "object",
|
||||
"title": "URL is a custom URL type that allows validation at configuration load time.",
|
||||
"title": "A URL represents a parsed URL (technically, a URI reference).",
|
||||
"properties": {
|
||||
"ForceQuery": {
|
||||
"type": "boolean"
|
||||
@ -17535,9 +17560,6 @@
|
||||
"Host": {
|
||||
"type": "string"
|
||||
},
|
||||
"OmitHost": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"Opaque": {
|
||||
"type": "string"
|
||||
},
|
||||
@ -17758,6 +17780,9 @@
|
||||
"UpdateFolderCommand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"overwrite": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@ -17804,18 +17829,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateOrgQuotaCmd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateOrgUserCommand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -17861,7 +17874,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -17889,6 +17902,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateQuotaCmd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateRoleCommand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -17981,18 +18006,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateUserQuotaCmd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UserIdDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -18097,26 +18110,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UserQuotaDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
},
|
||||
"used": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UserSearchHitDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -18362,6 +18355,7 @@
|
||||
}
|
||||
},
|
||||
"alertGroup": {
|
||||
"description": "AlertGroup alert group",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"alerts",
|
||||
@ -18490,7 +18484,6 @@
|
||||
}
|
||||
},
|
||||
"gettableAlert": {
|
||||
"description": "GettableAlert gettable alert",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"labels",
|
||||
@ -18553,6 +18546,7 @@
|
||||
}
|
||||
},
|
||||
"gettableSilence": {
|
||||
"description": "GettableSilence gettable silence",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"comment",
|
||||
@ -18601,6 +18595,7 @@
|
||||
}
|
||||
},
|
||||
"gettableSilences": {
|
||||
"description": "GettableSilences gettable silences",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/gettableSilence"
|
||||
@ -18751,6 +18746,7 @@
|
||||
}
|
||||
},
|
||||
"postableSilence": {
|
||||
"description": "PostableSilence postable silence",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"comment",
|
||||
@ -18788,7 +18784,6 @@
|
||||
}
|
||||
},
|
||||
"receiver": {
|
||||
"description": "Receiver receiver",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"active",
|
||||
@ -19579,7 +19574,7 @@
|
||||
"getPlaylistResponse": {
|
||||
"description": "(empty)",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Model"
|
||||
"$ref": "#/definitions/Playlist"
|
||||
}
|
||||
},
|
||||
"getPreferencesResponse": {
|
||||
@ -19617,7 +19612,7 @@
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/UserQuotaDTO"
|
||||
"$ref": "#/definitions/QuotaDTO"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -20101,7 +20096,7 @@
|
||||
"updatePlaylistResponse": {
|
||||
"description": "(empty)",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Model"
|
||||
"$ref": "#/definitions/Playlist"
|
||||
}
|
||||
},
|
||||
"updateServiceAccountResponse": {
|
||||
|
@ -1400,7 +1400,7 @@
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/UpdateUserQuotaCmd"
|
||||
"$ref": "#/definitions/UpdateQuotaCmd"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -5670,6 +5670,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/org/quotas": {
|
||||
"get": {
|
||||
"description": "If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `orgs.quotas:read` and scope `org:id:1` (orgIDScope).",
|
||||
"tags": [
|
||||
"getCurrentOrg"
|
||||
],
|
||||
"summary": "Fetch Organization quota.",
|
||||
"operationId": "getCurrentOrgQuota",
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/getQuotaResponse"
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#/responses/unauthorisedError"
|
||||
},
|
||||
"403": {
|
||||
"$ref": "#/responses/forbiddenError"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/responses/notFoundError"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/responses/internalServerError"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/org/users": {
|
||||
"get": {
|
||||
"description": "Returns all org users within the current organization. Accessible to users with org admin role.\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `org.users:read` with scope `users:*`.",
|
||||
@ -6193,7 +6220,7 @@
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/UpdateOrgQuotaCmd"
|
||||
"$ref": "#/definitions/UpdateQuotaCmd"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -10650,7 +10677,7 @@
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"parent_uid": {
|
||||
"parentUid": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
@ -11808,7 +11835,7 @@
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"parent_uid": {
|
||||
"parentUid": {
|
||||
"description": "only used if nested folders are enabled",
|
||||
"type": "string"
|
||||
},
|
||||
@ -12573,32 +12600,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Model": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"type": "object",
|
||||
"title": "Model is the Go representation of a playlist.",
|
||||
"properties": {
|
||||
"interval": {
|
||||
"description": "Interval sets the time between switching views in a playlist.\nFIXME: Is this based on a standardized format or what options are available? Can datemath be used?",
|
||||
"type": "string"
|
||||
},
|
||||
"items": {
|
||||
"description": "The ordered list of items that the playlist will iterate over.\nFIXME! This should not be optional, but changing it makes the godegen awkward",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/PlaylistItem"
|
||||
}
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the playlist.",
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"description": "Unique playlist identifier. Generated on creation, either by the\ncreator of the playlist of by the application.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NavLink": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -12852,7 +12853,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -12943,12 +12944,15 @@
|
||||
"format": "int64"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval sets the time between switching views in a playlist.\nFIXME: Is this based on a standardized format or what options are available? Can datemath be used?",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the playlist.",
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"description": "Unique playlist identifier. Generated on creation, either by the\ncreator of the playlist of by the application.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@ -12985,9 +12989,8 @@
|
||||
}
|
||||
},
|
||||
"PlaylistItem": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"type": "object",
|
||||
"title": "PlaylistItem is the Go representation of a playlist.Item.",
|
||||
"title": "PlaylistItem defines model for playlist.Item.",
|
||||
"properties": {
|
||||
"title": {
|
||||
"description": "Title is an unused property -- it will be removed in the future",
|
||||
@ -13003,7 +13006,6 @@
|
||||
}
|
||||
},
|
||||
"PlaylistItemType": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"type": "string",
|
||||
"title": "Type of the item."
|
||||
},
|
||||
@ -13078,7 +13080,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -13329,6 +13331,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"QuotaDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"org_id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
},
|
||||
"used": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"RecordingRuleJSON": {
|
||||
"description": "RecordingRuleJSON is the external representation of a recording rule",
|
||||
"type": "object",
|
||||
@ -14460,6 +14486,9 @@
|
||||
"UpdateFolderCommand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"overwrite": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@ -14506,18 +14535,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateOrgQuotaCmd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateOrgUserCommand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -14563,7 +14580,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -14591,6 +14608,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateQuotaCmd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateRoleCommand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -14683,18 +14712,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateUserQuotaCmd": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UserIdDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -14799,26 +14816,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"UserQuotaDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
},
|
||||
"used": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UserSearchHitDTO": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@ -15603,7 +15600,7 @@
|
||||
"getPlaylistResponse": {
|
||||
"description": "",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Model"
|
||||
"$ref": "#/definitions/Playlist"
|
||||
}
|
||||
},
|
||||
"getPreferencesResponse": {
|
||||
@ -15641,7 +15638,7 @@
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/UserQuotaDTO"
|
||||
"$ref": "#/definitions/QuotaDTO"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -16116,7 +16113,7 @@
|
||||
"updatePlaylistResponse": {
|
||||
"description": "",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Model"
|
||||
"$ref": "#/definitions/Playlist"
|
||||
}
|
||||
},
|
||||
"updateServiceAccountResponse": {
|
||||
|
@ -954,7 +954,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Model"
|
||||
"$ref": "#/components/schemas/Playlist"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1015,7 +1015,7 @@
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/UserQuotaDTO"
|
||||
"$ref": "#/components/schemas/QuotaDTO"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
@ -1704,7 +1704,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Model"
|
||||
"$ref": "#/components/schemas/Playlist"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3032,7 +3032,7 @@
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"parent_uid": {
|
||||
"parentUid": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
@ -4391,7 +4391,7 @@
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"parent_uid": {
|
||||
"parentUid": {
|
||||
"description": "only used if nested folders are enabled",
|
||||
"type": "string"
|
||||
},
|
||||
@ -4833,12 +4833,6 @@
|
||||
},
|
||||
"GettableNGalertConfig": {
|
||||
"properties": {
|
||||
"alertmanagers": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"alertmanagersChoice": {
|
||||
"enum": [
|
||||
"all",
|
||||
@ -5771,32 +5765,6 @@
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"Model": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"properties": {
|
||||
"interval": {
|
||||
"description": "Interval sets the time between switching views in a playlist.\nFIXME: Is this based on a standardized format or what options are available? Can datemath be used?",
|
||||
"type": "string"
|
||||
},
|
||||
"items": {
|
||||
"description": "The ordered list of items that the playlist will iterate over.\nFIXME! This should not be optional, but changing it makes the godegen awkward",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/PlaylistItem"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the playlist.",
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"description": "Unique playlist identifier. Generated on creation, either by the\ncreator of the playlist of by the application.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"title": "Model is the Go representation of a playlist.",
|
||||
"type": "object"
|
||||
},
|
||||
"MultiStatus": {
|
||||
"type": "object"
|
||||
},
|
||||
@ -6299,7 +6267,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -6393,12 +6361,15 @@
|
||||
"type": "integer"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval sets the time between switching views in a playlist.\nFIXME: Is this based on a standardized format or what options are available? Can datemath be used?",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the playlist.",
|
||||
"type": "string"
|
||||
},
|
||||
"uid": {
|
||||
"description": "Unique playlist identifier. Generated on creation, either by the\ncreator of the playlist of by the application.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
@ -6436,7 +6407,6 @@
|
||||
"type": "array"
|
||||
},
|
||||
"PlaylistItem": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"properties": {
|
||||
"title": {
|
||||
"description": "Title is an unused property -- it will be removed in the future",
|
||||
@ -6450,11 +6420,10 @@
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"title": "PlaylistItem is the Go representation of a playlist.Item.",
|
||||
"title": "PlaylistItem defines model for playlist.Item.",
|
||||
"type": "object"
|
||||
},
|
||||
"PlaylistItemType": {
|
||||
"description": "THIS TYPE IS INTENDED FOR INTERNAL USE BY THE GRAFANA BACKEND, AND IS SUBJECT TO BREAKING CHANGES.\nEquivalent Go types at stable import paths are provided in https://github.com/grafana/grok.",
|
||||
"title": "Type of the item.",
|
||||
"type": "string"
|
||||
},
|
||||
@ -6751,12 +6720,6 @@
|
||||
},
|
||||
"PostableNGalertConfig": {
|
||||
"properties": {
|
||||
"alertmanagers": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"alertmanagersChoice": {
|
||||
"enum": [
|
||||
"all",
|
||||
@ -6808,7 +6771,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -7250,6 +7213,30 @@
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"QuotaDTO": {
|
||||
"properties": {
|
||||
"limit": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"org_id": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
},
|
||||
"used": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"user_id": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"Receiver": {
|
||||
"properties": {
|
||||
"email_configs": {
|
||||
@ -8924,6 +8911,7 @@
|
||||
"type": "string"
|
||||
},
|
||||
"URL": {
|
||||
"description": "The general form represented is:\n\n[scheme:][//[userinfo@]host][/]path[?query][#fragment]\n\nURLs that do not start with a slash after the scheme are interpreted as:\n\nscheme:opaque[?query][#fragment]\n\nNote that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.\nA consequence is that it is impossible to tell which slashes in the Path were\nslashes in the raw URL and which were %2f. This distinction is rarely important,\nbut when it is, the code should use RawPath, an optional field which only gets\nset if the default encoding is different from Path.\n\nURL's String method uses the EscapedPath method to obtain the path. See the\nEscapedPath method for more details.",
|
||||
"properties": {
|
||||
"ForceQuery": {
|
||||
"type": "boolean"
|
||||
@ -8934,9 +8922,6 @@
|
||||
"Host": {
|
||||
"type": "string"
|
||||
},
|
||||
"OmitHost": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"Opaque": {
|
||||
"type": "string"
|
||||
},
|
||||
@ -8959,7 +8944,7 @@
|
||||
"$ref": "#/components/schemas/Userinfo"
|
||||
}
|
||||
},
|
||||
"title": "URL is a custom URL type that allows validation at configuration load time.",
|
||||
"title": "A URL represents a parsed URL (technically, a URI reference).",
|
||||
"type": "object"
|
||||
},
|
||||
"UpdateAlertNotificationCommand": {
|
||||
@ -9158,6 +9143,9 @@
|
||||
},
|
||||
"UpdateFolderCommand": {
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"overwrite": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@ -9205,18 +9193,6 @@
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UpdateOrgQuotaCmd": {
|
||||
"properties": {
|
||||
"limit": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UpdateOrgUserCommand": {
|
||||
"properties": {
|
||||
"role": {
|
||||
@ -9261,7 +9237,7 @@
|
||||
"homeDashboardUID": {
|
||||
"type": "string"
|
||||
},
|
||||
"locale": {
|
||||
"language": {
|
||||
"type": "string"
|
||||
},
|
||||
"navbar": {
|
||||
@ -9290,6 +9266,18 @@
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UpdateQuotaCmd": {
|
||||
"properties": {
|
||||
"limit": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UpdateRoleCommand": {
|
||||
"properties": {
|
||||
"description": {
|
||||
@ -9382,18 +9370,6 @@
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UpdateUserQuotaCmd": {
|
||||
"properties": {
|
||||
"limit": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UserIdDTO": {
|
||||
"properties": {
|
||||
"id": {
|
||||
@ -9498,26 +9474,6 @@
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UserQuotaDTO": {
|
||||
"properties": {
|
||||
"limit": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"target": {
|
||||
"type": "string"
|
||||
},
|
||||
"used": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"user_id": {
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"UserSearchHitDTO": {
|
||||
"properties": {
|
||||
"authLabels": {
|
||||
@ -9763,6 +9719,7 @@
|
||||
"type": "object"
|
||||
},
|
||||
"alertGroup": {
|
||||
"description": "AlertGroup alert group",
|
||||
"properties": {
|
||||
"alerts": {
|
||||
"description": "alerts",
|
||||
@ -9891,7 +9848,6 @@
|
||||
"type": "object"
|
||||
},
|
||||
"gettableAlert": {
|
||||
"description": "GettableAlert gettable alert",
|
||||
"properties": {
|
||||
"annotations": {
|
||||
"$ref": "#/components/schemas/labelSet"
|
||||
@ -9954,6 +9910,7 @@
|
||||
"type": "array"
|
||||
},
|
||||
"gettableSilence": {
|
||||
"description": "GettableSilence gettable silence",
|
||||
"properties": {
|
||||
"comment": {
|
||||
"description": "comment",
|
||||
@ -10002,6 +9959,7 @@
|
||||
"type": "object"
|
||||
},
|
||||
"gettableSilences": {
|
||||
"description": "GettableSilences gettable silences",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/gettableSilence"
|
||||
},
|
||||
@ -10152,6 +10110,7 @@
|
||||
"type": "array"
|
||||
},
|
||||
"postableSilence": {
|
||||
"description": "PostableSilence postable silence",
|
||||
"properties": {
|
||||
"comment": {
|
||||
"description": "comment",
|
||||
@ -10189,7 +10148,6 @@
|
||||
"type": "object"
|
||||
},
|
||||
"receiver": {
|
||||
"description": "Receiver receiver",
|
||||
"properties": {
|
||||
"active": {
|
||||
"description": "active",
|
||||
@ -11795,7 +11753,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/UpdateUserQuotaCmd"
|
||||
"$ref": "#/components/schemas/UpdateQuotaCmd"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -12929,6 +12887,15 @@
|
||||
"/api/v1/provisioning/alert-rules": {
|
||||
"post": {
|
||||
"operationId": "RoutePostAlertRule",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Disable-Provenance",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
@ -13035,6 +13002,13 @@
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Disable-Provenance",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
@ -13969,6 +13943,7 @@
|
||||
},
|
||||
"/dashboards/id/{DashboardID}/permissions": {
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/dashboard_permissions/getDashboardPermissionsListByUID) instead",
|
||||
"operationId": "getDashboardPermissionsListByID",
|
||||
"parameters": [
|
||||
@ -14005,6 +13980,7 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/dashboard_permissions/updateDashboardPermissionsByUID) instead\n\nThis operation will remove existing permissions if they’re not included in the request.",
|
||||
"operationId": "updateDashboardPermissionsByID",
|
||||
"parameters": [
|
||||
@ -14057,6 +14033,7 @@
|
||||
},
|
||||
"/dashboards/id/{DashboardID}/restore": {
|
||||
"post": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/dashboard_versions/restoreDashboardVersionByUID) instead",
|
||||
"operationId": "restoreDashboardVersionByID",
|
||||
"parameters": [
|
||||
@ -14106,6 +14083,7 @@
|
||||
},
|
||||
"/dashboards/id/{DashboardID}/versions": {
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/dashboard_versions/getDashboardVersionsByUID) instead",
|
||||
"operationId": "getDashboardVersionsByID",
|
||||
"parameters": [
|
||||
@ -14144,6 +14122,7 @@
|
||||
},
|
||||
"/dashboards/id/{DashboardID}/versions/{DashboardVersionID}": {
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/dashboard_versions/getDashboardVersionByUID) instead",
|
||||
"operationId": "getDashboardVersionByID",
|
||||
"parameters": [
|
||||
@ -14928,6 +14907,7 @@
|
||||
},
|
||||
"/datasources/proxy/{id}/{datasource_proxy_route}": {
|
||||
"delete": {
|
||||
"deprecated": true,
|
||||
"description": "Proxies all calls to the actual data source.\n\nPlease refer to [updated API](#/datasources/datasourceProxyDELETEByUIDcalls) instead",
|
||||
"operationId": "datasourceProxyDELETEcalls",
|
||||
"parameters": [
|
||||
@ -14974,6 +14954,7 @@
|
||||
]
|
||||
},
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Proxies all calls to the actual data source.\n\nPlease refer to [updated API](#/datasources/datasourceProxyGETByUIDcalls) instead",
|
||||
"operationId": "datasourceProxyGETcalls",
|
||||
"parameters": [
|
||||
@ -15020,6 +15001,7 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"deprecated": true,
|
||||
"description": "Proxies all calls to the actual data source. The data source should support POST methods for the specific path and role as defined\n\nPlease refer to [updated API](#/datasources/datasourceProxyPOSTByUIDcalls) instead",
|
||||
"operationId": "datasourceProxyPOSTcalls",
|
||||
"parameters": [
|
||||
@ -15732,6 +15714,7 @@
|
||||
},
|
||||
"/datasources/{id}": {
|
||||
"delete": {
|
||||
"deprecated": true,
|
||||
"description": "If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/deleteDataSourceByUID) instead",
|
||||
"operationId": "deleteDataSourceByID",
|
||||
"parameters": [
|
||||
@ -15767,6 +15750,7 @@
|
||||
]
|
||||
},
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/getDataSourceByUID) instead",
|
||||
"operationId": "getDataSourceByID",
|
||||
"parameters": [
|
||||
@ -15805,6 +15789,7 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"deprecated": true,
|
||||
"description": "Similar to creating a data source, `password` and `basicAuthPassword` should be defined under\nsecureJsonData in order to be stored securely as an encrypted blob in the database. Then, the\nencrypted fields are listed under secureJsonFields section in the response.\n\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:write` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/updateDataSourceByUID) instead",
|
||||
"operationId": "updateDataSourceByID",
|
||||
"parameters": [
|
||||
@ -15850,6 +15835,7 @@
|
||||
},
|
||||
"/datasources/{id}/health": {
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/datasources/checkDatasourceHealthWithUID) instead",
|
||||
"operationId": "checkDatasourceHealthByID",
|
||||
"parameters": [
|
||||
@ -15887,6 +15873,7 @@
|
||||
},
|
||||
"/datasources/{id}/resources/{datasource_proxy_route}": {
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [updated API](#/datasources/callDatasourceResourceWithUID) instead",
|
||||
"operationId": "callDatasourceResourceByID",
|
||||
"parameters": [
|
||||
@ -17140,6 +17127,33 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"/org/quotas": {
|
||||
"get": {
|
||||
"description": "If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `orgs.quotas:read` and scope `org:id:1` (orgIDScope).",
|
||||
"operationId": "getCurrentOrgQuota",
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/components/responses/getQuotaResponse"
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#/components/responses/unauthorisedError"
|
||||
},
|
||||
"403": {
|
||||
"$ref": "#/components/responses/forbiddenError"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/components/responses/notFoundError"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/internalServerError"
|
||||
}
|
||||
},
|
||||
"summary": "Fetch Organization quota.",
|
||||
"tags": [
|
||||
"getCurrentOrg"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/org/users": {
|
||||
"get": {
|
||||
"description": "Returns all org users within the current organization. Accessible to users with org admin role.\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `org.users:read` with scope `users:*`.",
|
||||
@ -17710,7 +17724,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/UpdateOrgQuotaCmd"
|
||||
"$ref": "#/components/schemas/UpdateQuotaCmd"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -18869,6 +18883,7 @@
|
||||
},
|
||||
"/reports/render/pdf/{dashboardID}": {
|
||||
"get": {
|
||||
"deprecated": true,
|
||||
"description": "Please refer to [reports enterprise](#/reports/renderReportPDFs) instead. This will be removed in Grafana 10.",
|
||||
"operationId": "renderReportPDF",
|
||||
"parameters": [
|
||||
@ -21070,6 +21085,7 @@
|
||||
},
|
||||
"/user/stars/dashboard/{dashboard_id}": {
|
||||
"delete": {
|
||||
"deprecated": true,
|
||||
"description": "Deletes the starring of the given Dashboard for the actual user.",
|
||||
"operationId": "unstarDashboard",
|
||||
"parameters": [
|
||||
@ -21105,6 +21121,7 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"deprecated": true,
|
||||
"description": "Stars the given Dashboard for the actual user.",
|
||||
"operationId": "starDashboard",
|
||||
"parameters": [
|
||||
|
Loading…
Reference in New Issue
Block a user