2022-06-17 08:09:01 -05:00
package dashboardsnapshots
2015-03-21 07:53:16 -05:00
2016-03-12 03:13:49 -06:00
import (
"time"
2024-02-02 00:40:11 -06:00
dashboardsnapshot "github.com/grafana/grafana/pkg/apis/dashboardsnapshot/v0alpha1"
2016-03-12 03:13:49 -06:00
"github.com/grafana/grafana/pkg/components/simplejson"
2023-10-06 04:59:48 -05:00
"github.com/grafana/grafana/pkg/services/auth/identity"
2016-03-12 03:13:49 -06:00
)
2015-03-21 07:53:16 -05:00
// DashboardSnapshot model
type DashboardSnapshot struct {
2023-01-25 08:09:44 -06:00
ID int64 ` xorm:"pk autoincr 'id'" `
2018-12-10 15:36:32 -06:00
Name string
Key string
DeleteKey string
2023-01-25 08:09:44 -06:00
OrgID int64 ` xorm:"org_id" `
UserID int64 ` xorm:"user_id" `
2018-12-10 15:36:32 -06:00
External bool
2023-01-25 08:09:44 -06:00
ExternalURL string ` xorm:"external_url" `
ExternalDeleteURL string ` xorm:"external_delete_url" `
2015-03-21 07:53:16 -05:00
Expires time . Time
Created time . Time
Updated time . Time
2020-10-13 03:19:42 -05:00
Dashboard * simplejson . Json
2021-09-01 06:05:15 -05:00
DashboardEncrypted [ ] byte
2015-03-21 07:53:16 -05:00
}
2016-01-20 01:23:44 -06:00
// DashboardSnapshotDTO without dashboard map
type DashboardSnapshotDTO struct {
2023-11-06 08:53:52 -06:00
ID int64 ` json:"-" xorm:"id" `
2016-01-20 01:23:44 -06:00
Name string ` json:"name" `
Key string ` json:"key" `
2023-11-06 08:53:52 -06:00
OrgID int64 ` json:"-" xorm:"org_id" `
UserID int64 ` json:"-" xorm:"user_id" `
2016-01-20 01:23:44 -06:00
External bool ` json:"external" `
2023-01-25 08:09:44 -06:00
ExternalURL string ` json:"externalUrl" xorm:"external_url" `
2016-01-20 01:23:44 -06:00
Expires time . Time ` json:"expires" `
Created time . Time ` json:"created" `
Updated time . Time ` json:"updated" `
}
2015-03-21 07:53:16 -05:00
// -----------------
// COMMANDS
2022-02-08 06:38:43 -06:00
// swagger:model
2015-03-21 07:53:16 -05:00
type CreateDashboardSnapshotCommand struct {
2024-02-02 00:40:11 -06:00
// The "public" fields are defined in this struct while the private/SQL/response params are
// defied in the rest of this command
dashboardsnapshot . DashboardCreateCommand
2015-03-26 14:59:41 -05:00
2023-01-25 08:09:44 -06:00
ExternalURL string ` json:"-" `
ExternalDeleteURL string ` json:"-" `
2018-12-10 15:36:32 -06:00
2022-02-08 06:38:43 -06:00
// Define the unique key. Required if `external` is `true`.
// required:false
Key string ` json:"key" `
2024-02-02 00:40:11 -06:00
2022-02-08 06:38:43 -06:00
// 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 14:59:41 -05:00
DeleteKey string ` json:"deleteKey" `
2023-01-25 08:09:44 -06:00
OrgID int64 ` json:"-" `
UserID int64 ` json:"-" `
2015-03-21 07:53:16 -05:00
2021-09-01 06:05:15 -05:00
DashboardEncrypted [ ] byte ` json:"-" `
2015-03-21 07:53:16 -05:00
}
2015-03-26 14:34:58 -05:00
type DeleteDashboardSnapshotCommand struct {
DeleteKey string ` json:"-" `
}
2016-09-28 14:06:00 -05:00
type DeleteExpiredSnapshotsCommand struct {
2018-02-20 16:10:59 -06:00
DeletedRows int64
2016-09-28 14:06:00 -05:00
}
2015-03-21 07:53:16 -05:00
type GetDashboardSnapshotQuery struct {
2018-02-20 16:26:08 -06:00
Key string
DeleteKey string
2015-03-21 07:53:16 -05:00
}
2016-01-19 03:37:36 -06:00
2017-10-10 07:25:19 -05:00
type DashboardSnapshotsList [ ] * DashboardSnapshotDTO
2016-01-19 03:37:36 -06:00
type GetDashboardSnapshotsQuery struct {
2018-02-20 16:26:08 -06:00
Name string
Limit int
2023-01-25 08:09:44 -06:00
OrgID int64
2023-10-06 04:59:48 -05:00
SignedInUser identity . Requester
2016-01-19 03:37:36 -06:00
}
2024-02-02 00:40:11 -06:00
type CreateExternalSnapshotResponse struct {
Key string ` json:"key" `
DeleteKey string ` json:"deleteKey" `
Url string ` json:"url" `
DeleteUrl string ` json:"deleteUrl" `
}