summaryrefslogtreecommitdiff
path: root/vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/resp.go
blob: 12d68e0d247e62b94dde64c2a7e22ce45b2ac2da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package profitbricks

import "net/http"
import "fmt"
import (
	"encoding/json"
)

func MkJson(i interface{}) string {
	jason, err := json.MarshalIndent(&i, "", "    ")
	if err != nil {
		panic(err)
	}
	//	fmt.Println(string(jason))
	return string(jason)
}

// MetaData is a map for metadata returned in a Resp.Body
type StringMap map[string]string

type StringIfaceMap map[string]interface{}

type StringCollectionMap map[string]Collection

// Resp is the struct returned by all Rest request functions
type Resp struct {
	Req        *http.Request
	StatusCode int
	Headers    http.Header
	Body       []byte
}

// PrintHeaders prints the http headers as k,v pairs
func (r *Resp) PrintHeaders() {
	for key, value := range r.Headers {
		fmt.Println(key, " : ", value[0])
	}

}

type Id_Type_Href struct {
	Id   string `json:"id"`
	Type string `json:"type"`
	Href string `json:"href"`
}

type MetaData StringIfaceMap

type Instance struct {
	Id_Type_Href
	MetaData   StringMap           `json:"metaData,omitempty"`
	Properties StringIfaceMap      `json:"properties,omitempty"`
	Entities   StringCollectionMap `json:"entities,omitempty"`
	Resp       Resp                `json:"-"`
}

type Collection struct {
	Id_Type_Href
	Items []Instance `json:"items,omitempty"`
	Resp  Resp       `json:"-"`
}