redash

package
v0.6.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2024 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Overview

Package redash is a simple redash client library

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChartColumnsMapping added in v0.6.9

type ChartColumnsMapping map[string]string

type ChartErrorY added in v0.6.9

type ChartErrorY struct {
	Visible bool   `json:"visible"`
	Type    string `json:"type"`
}

type ChartLegend added in v0.6.9

type ChartLegend struct {
	Enabled bool `json:"enabled"`
}

type ChartOptions added in v0.6.9

type ChartOptions struct {
	// General
	GlobalSeriesType    string              `json:"globalSeriesType"`
	ColumnMapping       ChartColumnsMapping `json:"columnMapping"`
	ErrorY              ChartErrorY         `json:"error_y"`
	Legend              ChartLegend         `json:"legend"`
	Series              ChartSeries         `json:"series"`
	MissingValuesAsZero bool                `json:"missingValuesAsZero"`
	// X-Axis
	// -scale
	// -name
	XAxis ChartXAxis `json:"xAxis"`
	SortX bool       `json:"sortX"`
	// Y-Axis
	YAxis []ChartYAxis `json:"yAxis"`
	// Series
	SeriesOptions ChartSeriesOptions `json:"seriesOptions"`
	// Colors
	// Data Labels
	ShowDataLabels bool   `json:"showDataLabels"`
	NumberFormat   string `json:"numberFormat"`
	PercentFormat  string `json:"percentFormat"`
	DateTimeFormat string `json:"dateTimeFormat"`
	TextFormat     string `json:"textFormat"`
}

CHART Options

type ChartSeries added in v0.6.9

type ChartSeries struct {
	Stacking *string     `json:"stacking"`
	ErrorY   ChartErrorY `json:"error_y"`
}

type ChartSeriesOption added in v0.6.9

type ChartSeriesOption struct {
	ZIndex int    `json:"zIndex"`
	Index  int    `json:"index"`
	Type   string `json:"type"`
	YAxis  int    `json:"yAxis"`
}

type ChartSeriesOptions added in v0.6.9

type ChartSeriesOptions map[string]ChartSeriesOption

type ChartXAxis added in v0.6.9

type ChartXAxis struct {
	Type   string `json:"type"`
	Labels struct {
		Enabled bool `json:"enabled"`
	} `json:"labels"`
}

type ChartYAxis added in v0.6.9

type ChartYAxis struct {
	Type     string `json:"type"`
	Opposite bool   `json:"opposite"`
}

type Client

type Client struct {
	Config *Config
}

Client contains an active Redash API client

func NewClient

func NewClient(config *Config) (*Client, error)

NewClient returns a *Client from a valid *Config

func (*Client) ArchiveDashboard

func (c *Client) ArchiveDashboard(slug string) error

ArchiveDashboard archives an existing dashboard

func (*Client) ArchiveQuery

func (c *Client) ArchiveQuery(id int) error

ArchiveQuery archives an existing Redash query

func (*Client) CreateDashboard

func (c *Client) CreateDashboard(dashboard *DashboardCreatePayload) (*Dashboard, error)

CreateDashboard creates a new Redash dashboard

func (*Client) CreateDataSource

func (c *Client) CreateDataSource(dataSourcePayload *DataSource) (*DataSource, error)

CreateDataSource creates a new DataSource

func (*Client) CreateGroup

func (c *Client) CreateGroup(groupPayload *GroupCreatePayload) (*Group, error)

CreateGroup creates a new Redash group

func (*Client) CreateQuery

func (c *Client) CreateQuery(query *QueryCreatePayload) (*Query, error)

CreateQuery creates a new Redash query

func (*Client) CreateUser

func (c *Client) CreateUser(userCreatePayload *UserCreatePayload) (*User, error)

CreateUser creates a new Redash user

func (*Client) CreateVisualization

func (c *Client) CreateVisualization(visualizationCreatePayload *VisualizationCreatePayload) (*VisualizationQuery, error)

CreateVisualization creates a new Redash visualization

func (*Client) CreateWidget

func (c *Client) CreateWidget(widgetCreatePayload *WidgetCreatePayload) (*WidgetDashboard, error)

CreateWidget creates a new Redash widget

func (*Client) DeleteDataSource

func (c *Client) DeleteDataSource(id int) error

DeleteDataSource deletes a specific DataSource

func (*Client) DeleteGroup

func (c *Client) DeleteGroup(id int) error

DeleteGroup deletes a Redash group

func (*Client) DeleteVisualization

func (c *Client) DeleteVisualization(id int) error

DeleteVisualization deletes a Redash visualization

func (*Client) DeleteWidget

func (c *Client) DeleteWidget(id int) error

DeleteWidget deletes a Redash widget

func (*Client) DisableUser

func (c *Client) DisableUser(id int) error

DisableUser disables an active user.

func (*Client) GetDashboard

func (c *Client) GetDashboard(slug string) (*Dashboard, error)

GetDashboard gets a specific dashboard by its slug

func (*Client) GetDataSource

func (c *Client) GetDataSource(id int) (*DataSource, error)

GetDataSource gets a specific DataSource

func (*Client) GetDataSourceTypes

func (c *Client) GetDataSourceTypes() ([]DataSourceType, error)

GetDataSourceTypes gets all available types with configuration details

func (*Client) GetDataSources

func (c *Client) GetDataSources() (*[]DataSource, error)

GetDataSources gets an array of all DataSources available

func (*Client) GetGroup

func (c *Client) GetGroup(id int) (*Group, error)

GetGroup returns an individual Redash group

func (*Client) GetGroups

func (c *Client) GetGroups() (*[]Group, error)

GetGroups returns a list of Redash groups

func (*Client) GetQueries

func (c *Client) GetQueries() (*QueryList, error)

GetQueries returns a list of Redash queries

func (*Client) GetQuery

func (c *Client) GetQuery(id int) (*Query, error)

GetQuery returns a specific Redash query by its ID

func (*Client) GetUser

func (c *Client) GetUser(id int) (*User, error)

GetUser gets a specific User

func (*Client) GetUserByEmail

func (c *Client) GetUserByEmail(email string) (*User, error)

GetUserByEmail returns a single user from their email address

func (*Client) GetUsers

func (c *Client) GetUsers(page, pageSize int) (*UserList, error)

GetUsers returns a paginated list of users

func (*Client) GetVisualization

func (c *Client) GetVisualization(queryId, visualizationId int) (*VisualizationQuery, error)

GetVisualization gets a specific Redash visualization by its query and visualization ID

func (*Client) GetWidget

func (c *Client) GetWidget(dashboardSlug string, widgetId int) (*WidgetDashboard, error)

GetWidget returns a specific Widget by its dashboard slug and widget ID

func (*Client) GroupAddDataSource

func (c *Client) GroupAddDataSource(groupID int, dataSourceID int) error

GroupAddDataSource adds a Data Source to a Redash group

func (*Client) GroupAddUser

func (c *Client) GroupAddUser(groupID int, userID int) error

GroupAddUser adds a user to a Redash group

func (*Client) GroupRemoveDataSource

func (c *Client) GroupRemoveDataSource(groupID int, dataSourceID int) error

GroupRemoveDataSource removes a Data Source from a Redash group

func (*Client) GroupRemoveUser

func (c *Client) GroupRemoveUser(groupID int, userID int) error

GroupRemoveUser removes a user from a Redash group

func (*Client) IsStrict

func (c *Client) IsStrict() bool

IsStrict returns true if StrictMode is set. This currently causes data_source creates/updates to fail if extraneous properties are present in the payload.

func (*Client) SanitizeDataSourceOptions

func (c *Client) SanitizeDataSourceOptions(dataSource *DataSource) (*DataSource, error)

SanitizeDataSourceOptions checks the validity of the options field in a DataSource.Option against Redash's API and cleans up when possible

func (*Client) SearchUsers

func (c *Client) SearchUsers(term string) (*UserList, error)

SearchUsers finds a list of users matching a string (searches `name` and `email` fields)

func (*Client) UpdateDashboard

func (c *Client) UpdateDashboard(id int, dashboard *DashboardUpdatePayload) (*Dashboard, error)

UpdateDashboard updates an existing Redash dashboard

func (*Client) UpdateDataSource

func (c *Client) UpdateDataSource(id int, dataSourcePayload *DataSource) (*DataSource, error)

UpdateDataSource Updates an existing DataSource

func (*Client) UpdateGroup

func (c *Client) UpdateGroup(id int, group *Group) (*Group, error)

UpdateGroup updates an existing Redash group

func (*Client) UpdateQuery

func (c *Client) UpdateQuery(id int, query *QueryUpdatePayload) (*Query, error)

UpdateQuery updates an existing Redash query

func (*Client) UpdateUser

func (c *Client) UpdateUser(id int, userUpdatePayload *UserUpdatePayload) (*User, error)

UpdateUser updates an existing Redash user

func (*Client) UpdateVisualization

func (c *Client) UpdateVisualization(id int, visualizationUpdatePayload *VisualizationUpdatePayload) (*VisualizationQuery, error)

UpdateVisualization updates an existing Redash visualization

func (*Client) UpdateWidget

func (c *Client) UpdateWidget(id int, widgetUpdatePayload *WidgetUpdatePayload) (*WidgetDashboard, error)

UpdateWidget updates an existing Redash widget

type Config

type Config struct {
	RedashURI  string
	APIKey     string
	StrictMode bool
}

Config holds the necessary setup vars

type Dashboard

type Dashboard struct {
	// Base Data
	ID   int    `json:"id"`
	Name string `json:"name"`
	Slug string `json:"slug"`

	// Options
	Layout []interface{} `json:"layout"`

	// State
	IsFavorite              bool `json:"is_favorite"`
	IsArchived              bool `json:"is_archived"`
	IsDraft                 bool `json:"is_draft"`
	DashboardFiltersEnabled bool `json:"dashboard_filters_enabled"`
	Version                 int  `json:"version"`

	// User
	UserID int  `json:"user_id"`
	User   User `json:"user"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`

	// Metadata
	Tags []string `json:"tags"`

	// Dashboard Specific
	PublicUrl string            `json:"public_url"`
	CanEdit   bool              `json:"can_edit"`
	Widgets   []WidgetDashboard `json:"widgets"`
	APIKey    string            `json:"api_key"`
}

Dashboard object structure from Redash's /api/dashboards/<SLUG> endpoint

type DashboardCreatePayload

type DashboardCreatePayload struct {
	// Base Data
	Name string `json:"name"`
	Slug string `json:"slug"`

	// State
	IsFavorite              bool `json:"is_favorite"`
	IsArchived              bool `json:"is_archived"`
	IsDraft                 bool `json:"is_draft"`
	DashboardFiltersEnabled bool `json:"dashboard_filters_enabled"`

	// Metadata
	Tags []string `json:"tags"`
}

DashboardCreatePayload defines the schema for creating a Redash dashboards

type DashboardList added in v0.6.9

type DashboardList struct {
	Count    int `json:"count"`
	Page     int `json:"page"`
	PageSize int `json:"page_size"`
	Results  []DashboardListItem
}

DashboardList object structure from Redash's /api/dashboards endpoint

type DashboardListItem added in v0.6.9

type DashboardListItem struct {
	// Base Data
	ID   int    `json:"id"`
	Name string `json:"name"`
	Slug string `json:"slug"`

	// Options
	Layout []interface{} `json:"layout"`

	// State
	IsFavorite              bool `json:"is_favorite"`
	IsArchived              bool `json:"is_archived"`
	IsDraft                 bool `json:"is_draft"`
	DashboardFiltersEnabled bool `json:"dashboard_filters_enabled"`
	Version                 int  `json:"version"`

	// User
	UserID int  `json:"user_id"`
	User   User `json:"user"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`

	// Metadata
	Tags []string `json:"tags"`
}

DashboardListItem object structure for DashboardList items

type DashboardUpdatePayload

type DashboardUpdatePayload struct {
	// Base Data
	Name string `json:"name"`
	Slug string `json:"slug"`

	// State
	IsFavorite              bool `json:"is_favorite"`
	IsArchived              bool `json:"is_archived"`
	IsDraft                 bool `json:"is_draft"`
	DashboardFiltersEnabled bool `json:"dashboard_filters_enabled"`

	// Metadata
	Tags []string `json:"tags"`
}

DashboardUpdatePayload defines the schema for updating a Redash dashboards

type DataSource

type DataSource struct {
	ID                 int                    `json:"id,omitempty"`
	Name               string                 `json:"name,omitempty"`
	ScheduledQueueName string                 `json:"scheduled_queue_name,omitempty"`
	QueueName          string                 `json:"queue_name,omitempty"`
	Options            map[string]interface{} `json:"options,omitempty"`
	Paused             int                    `json:"paused,omitempty"`
	PauseReason        string                 `json:"pause_reason,omitempty"`
	Type               string                 `json:"type,omitempty"`
	Syntax             string                 `json:"syntax,omitempty"`
	Groups             map[int]bool           `json:"groups,omitempty"`
}

DataSource struct

type DataSourceType

type DataSourceType struct {
	Type                string `json:"type"`
	Name                string `json:"name,omitempty"`
	ConfigurationSchema struct {
		Secret     []string                               `json:"secret,omitempty"`
		Required   []string                               `json:"required,omitempty"`
		Type       string                                 `json:"type,omitempty"`
		Order      []string                               `json:"order,omitempty"`
		Properties map[string]DataSourceTypePropertyField `json:"properties,omitempty"`
	} `json:"configuration_schema,omitempty"`
}

DataSourceType struct

type DataSourceTypePropertyField

type DataSourceTypePropertyField struct {
	Type    string
	Title   string
	Default interface{}
}

DataSourceTypePropertyField struct

type Group

type Group struct {
	CreatedAt   time.Time `json:"created_at,omitempty"`
	Permissions []string  `json:"permissions,omitempty"`
	Type        string    `json:"type,omitempty"`
	ID          int       `json:"id,omitempty"`
	Name        string    `json:"name,omitempty"`
}

Group struct

type GroupCreatePayload

type GroupCreatePayload struct {
	Name string `json:"name"`
}

GroupCreatePayload struct

type GroupDataSource

type GroupDataSource struct {
	DataSourceID int `json:"data_source_id"`
}

GroupDataSource struct

type GroupUser

type GroupUser struct {
	MemberID int `json:"user_id"`
}

GroupUser struct

type Query

type Query struct {
	// Base Data
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`

	// Query
	DataSourceID int    `json:"data_source_id"`
	Query        string `json:"query"`
	QueryHash    string `json:"query_hash"`

	// Options
	Options QueryOptions `json:"options"`

	// State
	IsDraft    bool `json:"is_draft"`
	IsArchived bool `json:"is_archived"`
	IsSafe     bool `json:"is_safe"`
	Version    int  `json:"version"`

	// User
	User User `json:"user"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`

	// Metadata
	APIKey            string        `json:"api_key"`
	Tags              []string      `json:"tags"`
	LatestQueryDataID int           `json:"latest_query_data_id"`
	Schedule          QuerySchedule `json:"schedule"`

	// Query Specific
	LastModifiedBy User                 `json:"last_modified_by"`
	IsFavorite     bool                 `json:"is_favorite"`
	CanEdit        bool                 `json:"can_edit"`
	Visualizations []VisualizationQuery `json:"visualizations"`
}

Query object structure from Redash's /api/queries/<ID> endpoint

type QueryCreatePayload

type QueryCreatePayload struct {
	// Base Data
	Name        string `json:"name"`
	Description string `json:"description"`

	// Query
	DataSourceID int    `json:"data_source_id"`
	Query        string `json:"query"`
	QueryHash    string `json:"query_hash"`

	// Options
	Options QueryOptions `json:"options"`

	// State
	IsDraft    bool `json:"is_draft"`
	IsArchived bool `json:"is_archived"`
	Version    int  `json:"version"`

	// Metadata
	Tags     []string       `json:"tags"`
	Schedule *QuerySchedule `json:"schedule"`
}

QueryCreatePayload defines the schema for creating a new Redash query

type QueryDashboard added in v0.6.9

type QueryDashboard struct {
	// Base Data
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`

	// Query
	DataSourceID int    `json:"data_source_id"`
	Query        string `json:"query"`
	QueryHash    string `json:"query_hash"`

	// Options
	Options QueryOptions `json:"options"`

	// State
	IsDraft    bool `json:"is_draft"`
	IsArchived bool `json:"is_archived"`
	IsSafe     bool `json:"is_safe"`
	Version    int  `json:"version"`

	// User
	User User `json:"user"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`

	// Metadata
	APIKey            string        `json:"api_key"`
	Tags              []string      `json:"tags"`
	LatestQueryDataID int           `json:"latest_query_data_id"`
	Schedule          QuerySchedule `json:"schedule"`

	// Dashboard Specific
	LastModifiedBy User `json:"last_modified_by"`
}

Query object structure for Dashboard Widget Visualizations

type QueryList added in v0.6.9

type QueryList struct {
	Count    int `json:"count"`
	Page     int `json:"page"`
	PageSize int `json:"page_size"`
	Results  []QueryListItem
}

QueryList object structure from Redash's /api/queries endpoint

type QueryListItem added in v0.6.9

type QueryListItem struct {
	// Base Data
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`

	// Query
	DataSourceID int    `json:"data_source_id"`
	Query        string `json:"query"`
	QueryHash    string `json:"query_hash"`

	// Options
	Options QueryOptions `json:"options"`

	// State
	IsDraft    bool `json:"is_draft"`
	IsArchived bool `json:"is_archived"`
	IsSafe     bool `json:"is_safe"`
	Version    int  `json:"version"`

	// User
	User User `json:"user"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`

	// Metadata
	APIKey            string        `json:"api_key"`
	Tags              []string      `json:"tags"`
	LatestQueryDataID int           `json:"latest_query_data_id"`
	Schedule          QuerySchedule `json:"schedule"`

	// List Item Specific
	LastModifiedByID int       `json:"last_modified_by_id"`
	IsFavorite       bool      `json:"is_favorite"`
	RetrievedAt      time.Time `json:"retrieved_at"`
	Runtime          float32   `json:"runtime"`
}

Query object structure for QueryList items

type QueryOptions

type QueryOptions struct {
	Parameters []QueryOptionsParameter `json:"parameters"`
}

type QueryOptionsParameter

type QueryOptionsParameter struct {
	Name  string `json:"name"`
	Title string `json:"title"`

	ParentQueryId int `json:"parentQueryId"`

	Locals []interface{} `json:"locals"`

	Type        string      `json:"type"`
	Value       interface{} `json:"value"`
	EnumOptions string      `json:"enumOptions,omitempty"`

	Global bool `json:"global"`
}

type QuerySchedule

type QuerySchedule struct {
	Interval  int         `json:"interval"`
	Time      string      `json:"time"`
	DayOfWeek string      `json:"day_of_week"`
	Until     interface{} `json:"until"`
}

type QueryUpdatePayload

type QueryUpdatePayload struct {
	// Base Data
	Name        string `json:"name"`
	Description string `json:"description"`

	// Query
	DataSourceID int    `json:"data_source_id"`
	Query        string `json:"query"`
	QueryHash    string `json:"query_hash"`

	// Options
	Options QueryOptions `json:"options"`

	// State
	IsDraft    bool `json:"is_draft"`
	IsArchived bool `json:"is_archived"`
	Version    int  `json:"version"`

	// Metadata
	Tags     []string       `json:"tags"`
	Schedule *QuerySchedule `json:"schedule"`
}

QueryUpdatePayload defines the schema for updating a Redash query

type TableColumn added in v0.6.9

type TableColumn struct {
	// Shared
	Visible bool   `json:"visible"`
	Name    string `json:"name"`
	Title   string `json:"title"`
	// Type
	Type         string `json:"type"`
	DisplayAs    string `json:"displayAs"`
	AlignContent string `json:"alignContent"`
	AllowSearch  bool   `json:"allowSearch"`
	Order        int    `json:"order"`
	// Text
	AllowHTML      bool `json:"allowHTML"`
	HighlightLinks bool `json:"highlightLinks"`
	// Number
	NumberFormat string `json:"numberFormat,omitempty"`
	// Date/Time
	DateTimeFormat string `json:"dateTimeFormat,omitempty"`
	// Boolean
	BooleanValues []string `json:"booleanValues"`
	// Link
	LinkUrlTemplate   string `json:"linkUrlTemplate"`
	LinkTitleTemplate string `json:"linkTitleTemplate"`
	LinkTextTemplate  string `json:"linkTextTemplate"`
	LinkOpenInNewTab  bool   `json:"linkOpenInNewTab"`
	// Image
	ImageUrlTemplate   string `json:"imageUrlTemplate"`
	ImageTitleTemplate string `json:"imageTitleTemplate"`
	ImageWidth         string `json:"imageWidth"`
	ImageHeight        string `json:"imageHeight"`
}

type TableOptions added in v0.6.9

type TableOptions struct {
	ItemsPerPage int           `json:"itemsPerPage"`
	Columns      []TableColumn `json:"columns"`
}

TABLE Options

type User

type User struct {
	AuthType            string      `json:"auth_type,omitempty"`
	IsDisabled          bool        `json:"is_disabled,omitempty"`
	UpdatedAt           time.Time   `json:"updated_at,omitempty"`
	ProfileImageURL     string      `json:"profile_image_url,omitempty"`
	IsInvitationPending bool        `json:"is_invitation_pending,omitempty"`
	Groups              []int       `json:"groups,omitempty"`
	ID                  int         `json:"id,omitempty"`
	Name                string      `json:"name,omitempty"`
	CreatedAt           time.Time   `json:"created_at,omitempty"`
	DisabledAt          interface{} `json:"disabled_at,omitempty"`
	IsEmailVerified     bool        `json:"is_email_verified,omitempty"`
	ActiveAt            time.Time   `json:"active_at,omitempty"`
	Email               string      `json:"email,omitempty"`
}

User representation

type UserCreatePayload

type UserCreatePayload struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

UserCreatePayload struct for mutating users.

type UserList

type UserList struct {
	Count    int `json:"count"`
	Page     int `json:"page"`
	PageSize int `json:"page_size"`
	Results  []struct {
		AuthType            string    `json:"auth_type,omitempty"`
		IsDisabled          bool      `json:"is_disabled,omitempty"`
		UpdatedAt           time.Time `json:"updated_at,omitempty"`
		ProfileImageURL     string    `json:"profile_image_url,omitempty"`
		IsInvitationPending bool      `json:"is_invitation_pending,omitempty"`
		Groups              []struct {
			ID   int    `json:"id,omitempty"`
			Name string `json:"name,omitempty"`
		} `json:"groups,omitempty"`
		ID              int         `json:"id,omitempty"`
		Name            string      `json:"name,omitempty"`
		CreatedAt       time.Time   `json:"created_at,omitempty"`
		DisabledAt      interface{} `json:"disabled_at,omitempty"`
		IsEmailVerified bool        `json:"is_email_verified,omitempty"`
		ActiveAt        time.Time   `json:"active_at,omitempty"`
		Email           string      `json:"email,omitempty"`
	} `json:"results,omitempty"`
}

UserList struct

type UserUpdatePayload

type UserUpdatePayload struct {
	Name   string `json:"name"`
	Email  string `json:"email"`
	Groups []int  `json:"group_ids"`
}

UserUpdatePayload struct for mutating users.

type VisualizationCreatePayload

type VisualizationCreatePayload struct {
	// Base Data
	Name        string `json:"name"`
	Description string `json:"description"`

	// Options
	Type    string      `json:"type"`
	Options interface{} `json:"options"`

	// References
	QueryId int `json:"query_id"`
}

VisualizationCreatePayload defines the schema for creating a Redash visualizations

type VisualizationDashboard added in v0.6.9

type VisualizationDashboard struct {
	// Base Data
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`

	// Options
	Type    string      `json:"type"`
	Options interface{} `json:"options"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`

	// Dashboard Specific
	Query QueryDashboard `json:"query"`
}

Visualization object structure for Dashboard Widget

type VisualizationQuery added in v0.6.9

type VisualizationQuery struct {
	// Base Data
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`

	// Options
	Type    string      `json:"type"`
	Options interface{} `json:"options"`

	// Timestamps
	UpdatedAt time.Time `json:"updated_at"`
	CreatedAt time.Time `json:"created_at"`
}

Visualization object structure for Queries

type VisualizationUpdatePayload

type VisualizationUpdatePayload struct {
	// Base Data
	Name        string `json:"name"`
	Description string `json:"description"`

	// Options
	Type    string      `json:"type"`
	Options interface{} `json:"options"`
}

VisualizationUpdatePayload defines the schema for updating a Redash visualizations

type WidgetCreatePayload

type WidgetCreatePayload struct {
	// Base Data
	DashboardID int `json:"dashboard_id"`

	//
	Text  string `json:"text"`
	Width int    `json:"width"`

	// References
	VisualizationID *int `json:"visualization_id"`

	// Options
	Options WidgetOptions `json:"options"`
}

WidgetCreatePayload defines the schema for creating a Redash widget

type WidgetDashboard added in v0.6.9

type WidgetDashboard struct {
	// Base Data
	ID          int `json:"id"`
	DashboardID int `json:"dashboard_id"`

	//
	Text  string `json:"text"`
	Width int    `json:"width"`

	// References
	Visualization VisualizationDashboard `json:"visualization,omitempty"`

	// Options
	Options WidgetOptions `json:"options"`

	// Timestamps
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

Widget object structure for Dashboards

type WidgetOptions

type WidgetOptions struct {
	IsHidden          bool                              `json:"isHidden"`
	ParameterMappings map[string]WidgetParameterMapping `json:"parameterMappings"`
	Position          WidgetPosition                    `json:"position"`
}

type WidgetParameterMapping

type WidgetParameterMapping struct {
	Name  string `json:"name"`
	Type  string `json:"type"`
	MapTo string `json:"mapTo"`
	Value string `json:"value"`
	Title string `json:"title"`
}

type WidgetPosition

type WidgetPosition struct {
	AutoHeight bool `json:"autoHeight"`
	SizeX      int  `json:"sizeX"`
	SizeY      int  `json:"sizeY"`
	MaxSizeY   int  `json:"maxSizeY"`
	MaxSizeX   int  `json:"maxSizeX"`
	MinSizeY   int  `json:"minSizeY"`
	MinSizeX   int  `json:"minSizeX"`
	Col        int  `json:"col"`
	Row        int  `json:"row"`
}

type WidgetUpdatePayload

type WidgetUpdatePayload struct {
	//
	Text  string `json:"text"`
	Width int    `json:"width"`

	// References
	VisualizationID *int `json:"visualization_id"`

	// Options
	Options WidgetOptions `json:"options"`
}

WidgetUpdatePayload defines the schema for updating a Redash widget

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL