github.com/GoogleCloudPlatform/terraformer@v0.8.18/providers/grafana/folder.go (about) 1 package grafana 2 3 import ( 4 "fmt" 5 6 "github.com/GoogleCloudPlatform/terraformer/terraformutils" 7 gapi "github.com/grafana/grafana-api-golang-client" 8 ) 9 10 type FolderGenerator struct { 11 GrafanaService 12 } 13 14 func (g *FolderGenerator) InitResources() error { 15 client, err := g.buildClient() 16 if err != nil { 17 return fmt.Errorf("unable to build grafana client: %v", err) 18 } 19 20 err = g.createFolderResources(client) 21 if err != nil { 22 return err 23 } 24 25 return nil 26 } 27 28 func (g *FolderGenerator) createFolderResources(client *gapi.Client) error { 29 folders, err := client.Folders() 30 if err != nil { 31 return fmt.Errorf("unable to list grafana folders: %v", err) 32 } 33 34 for _, folder := range folders { 35 g.Resources = append(g.Resources, terraformutils.NewResource( 36 fmt.Sprint(folder.ID), 37 folder.Title, 38 "grafana_folder", 39 "grafana", 40 map[string]string{ 41 "uid": folder.UID, 42 }, 43 []string{}, 44 map[string]interface{}{}, 45 )) 46 } 47 48 return nil 49 }