2022-06-17 09:09:01 -04:00
package dashboardsnapshots
2015-03-21 08:53:16 -04:00
2016-03-12 10:13:49 +01:00
import (
"time"
"github.com/grafana/grafana/pkg/components/simplejson"
2022-08-10 11:56:48 +02:00
"github.com/grafana/grafana/pkg/services/user"
2016-03-12 10:13:49 +01:00
)
2015-03-21 08:53:16 -04:00
// DashboardSnapshot model
type DashboardSnapshot struct {
2018-12-10 16:36:32 -05:00
Id int64
Name string
Key string
DeleteKey string
OrgId int64
UserId int64
External bool
ExternalUrl string
ExternalDeleteUrl string
2015-03-21 08:53:16 -04:00
Expires time . Time
Created time . Time
Updated time . Time
2020-10-13 10:19:42 +02:00
Dashboard * simplejson . Json
2021-09-01 13:05:15 +02:00
DashboardEncrypted [] byte
2015-03-21 08:53:16 -04:00
}
2016-01-19 23:23:44 -08:00
// DashboardSnapshotDTO without dashboard map
type DashboardSnapshotDTO struct {
Id int64 `json:"id"`
Name string `json:"name"`
Key string `json:"key"`
OrgId int64 `json:"orgId"`
UserId int64 `json:"userId"`
External bool `json:"external"`
ExternalUrl string `json:"externalUrl"`
Expires time . Time `json:"expires"`
Created time . Time `json:"created"`
Updated time . Time `json:"updated"`
}
2015-03-21 08:53:16 -04:00
// -----------------
// COMMANDS
2022-02-08 14:38:43 +02:00
// swagger:model
2015-03-21 08:53:16 -04:00
type CreateDashboardSnapshotCommand struct {
2022-02-08 14:38:43 +02:00
// The complete dashboard model.
// required:true
2016-03-12 10:13:49 +01:00
Dashboard * simplejson . Json `json:"dashboard" binding:"Required"`
2022-02-08 14:38:43 +02:00
// Snapshot name
// required:false
Name string `json:"name"`
// When the snapshot should expire in seconds in seconds. Default is never to expire.
// required:false
// default:0
Expires int64 `json:"expires"`
2015-03-26 20:59:41 +01:00
// these are passed when storing an external snapshot ref
2022-02-08 14:38:43 +02:00
// Save the snapshot on an external server rather than locally.
// required:false
// default: false
2018-12-10 16:36:32 -05:00
External bool `json:"external"`
ExternalUrl string `json:"-"`
ExternalDeleteUrl string `json:"-"`
2022-02-08 14:38:43 +02:00
// Define the unique key. Required if `external` is `true`.
// required:false
Key string `json:"key"`
// Unique key used to delete the snapshot. It is different from the `key` so that only the creator can delete the snapshot. Required if `external` is `true`.
// required:false
2015-03-26 20:59:41 +01:00
DeleteKey string `json:"deleteKey"`
OrgId int64 `json:"-"`
UserId int64 `json:"-"`
2015-03-21 08:53:16 -04:00
2021-09-01 13:05:15 +02:00
DashboardEncrypted [] byte `json:"-"`
2015-03-21 08:53:16 -04:00
Result * DashboardSnapshot
}
2015-03-26 20:34:58 +01:00
type DeleteDashboardSnapshotCommand struct {
DeleteKey string `json:"-"`
}
2016-09-28 21:06:00 +02:00
type DeleteExpiredSnapshotsCommand struct {
2018-02-20 23:10:59 +01:00
DeletedRows int64
2016-09-28 21:06:00 +02:00
}
2015-03-21 08:53:16 -04:00
type GetDashboardSnapshotQuery struct {
2018-02-20 23:26:08 +01:00
Key string
DeleteKey string
2015-03-21 08:53:16 -04:00
Result * DashboardSnapshot
}
2016-01-19 01:37:36 -08:00
2017-10-10 15:25:19 +03:00
type DashboardSnapshotsList [] * DashboardSnapshotDTO
2016-01-19 01:37:36 -08:00
type GetDashboardSnapshotsQuery struct {
2018-02-20 23:26:08 +01:00
Name string
Limit int
OrgId int64
2022-08-10 11:56:48 +02:00
SignedInUser * user . SignedInUser
2016-01-19 01:37:36 -08:00
2017-10-10 15:25:19 +03:00
Result DashboardSnapshotsList
2016-01-19 01:37:36 -08:00
}