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 {
2023-01-25 15:09:44 +01:00
ID int64 ` xorm:"pk autoincr 'id'" `
2018-12-10 16:36:32 -05:00
Name string
Key string
DeleteKey string
2023-01-25 15:09:44 +01:00
OrgID int64 ` xorm:"org_id" `
UserID int64 ` xorm:"user_id" `
2018-12-10 16:36:32 -05:00
External bool
2023-01-25 15:09:44 +01:00
ExternalURL string ` xorm:"external_url" `
ExternalDeleteURL string ` xorm:"external_delete_url" `
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 {
2023-01-25 15:09:44 +01:00
ID int64 ` json:"id" xorm:"id" `
2016-01-19 23:23:44 -08:00
Name string ` json:"name" `
Key string ` json:"key" `
2023-01-25 15:09:44 +01:00
OrgID int64 ` json:"orgId" xorm:"org_id" `
UserID int64 ` json:"userId" xorm:"user_id" `
2016-01-19 23:23:44 -08:00
External bool ` json:"external" `
2023-01-25 15:09:44 +01:00
ExternalURL string ` json:"externalUrl" xorm:"external_url" `
2016-01-19 23:23:44 -08:00
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" `
2023-01-25 15:09:44 +01:00
ExternalURL string ` json:"-" `
ExternalDeleteURL string ` json:"-" `
2018-12-10 16:36:32 -05:00
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" `
2023-01-25 15:09:44 +01:00
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
}
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
}
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
2023-01-25 15:09:44 +01:00
OrgID int64
2022-08-10 11:56:48 +02:00
SignedInUser * user . SignedInUser
2016-01-19 01:37:36 -08:00
}