// This file was generated by https://github.com/grafana/dashboard-spec

{
  new(
    content=null,
    datasource='default',
    description=null,
    mode='markdown',
    repeat=null,
    repeatDirection=null,
    title=null,
    transparent=false,
  ):: {
    [if content != null then 'content']: content,
    [if datasource != null then 'datasource']: datasource,
    [if description != null then 'description']: description,
    [if mode != null then 'mode']: mode,
    [if repeat != null then 'repeat']: repeat,
    [if repeatDirection != null then 'repeatDirection']: repeatDirection,
    [if title != null then 'title']: title,
    [if transparent != null then 'transparent']: transparent,
    type: 'text',

    setGridPos(
      h=8,
      w=12,
      x=null,
      y=null,
    ):: self {}
        + { gridPos+: { [if h != null then 'h']: h } }
        + { gridPos+: { [if w != null then 'w']: w } }
        + { gridPos+: { [if x != null then 'x']: x } }
        + { gridPos+: { [if y != null then 'y']: y } }
    ,


    addPanelLink(
      targetBlank=true,
      title=null,
      url=null,
    ):: self {}
        + { links+: [
          {
            [if targetBlank != null then 'targetBlank']: targetBlank,
            [if title != null then 'title']: title,
            [if url != null then 'url']: url,
          },
        ] },

    addTarget(
      target
    ):: self {}
        + { targets+: [
          target,
        ] },

  },
}
