moira

Форк
0
/
dto.go 
147 строк · 5.4 Кб
1
package netbox
2

3
// list is plain JSON list having structure nobody cares about
4
type list []interface{}
5

6
// Object is plain JSON object having structure nobody cares about
7
type object map[string]interface{}
8

9
// ContainerBrief is DTO definition of brief container's data, part of DeviceBrief
10
type ContainerBrief struct {
11
	Id   int    `json:"id"`
12
	Name string `json:"name"`
13
}
14

15
// ContainerBriefList is DTO definition of result structure returned by method /api/virtualization/containers/
16
type ContainerBriefList struct {
17
	Count    int              `json:"count"`
18
	List     []ContainerBrief `json:"results,omitempty"`
19
	Next     *string          `json:"next,omitempty"`
20
	Previous *string          `json:"previous,omitempty"`
21
}
22

23
// Device is DTO definition of single device, part of DeviceList
24
type Device struct {
25
	Id   int         `json:"id"`
26
	Name string      `json:"name"`
27
	Role *DeviceRole `json:"device_role,omitempty"`
28

29
	// some simple data we are not (yet) interested in
30
	AssetTag     *string `json:"asset_tag,omitempty"`
31
	Comments     *string `json:"comments,omitempty"`
32
	Created      *string `json:"created,omitempty"`
33
	DisplayName  *string `json:"display_name,omitempty"`
34
	LastUpdated  *string `json:"last_updated,omitempty"`
35
	Position     *int    `json:"position,omitempty"`
36
	Serial       *string `json:"serial,omitempty"`
37
	VcPosition   *int    `json:"vc_position,omitempty"`
38
	VcPriority   *int    `json:"vc_priority,omitempty"`
39
	WarrantyDesc *string `json:"warranty_description,omitempty"`
40
	WarrantyEnd  *string `json:"warranty_end,omitempty"`
41

42
	// some complex data we are not (yet) interested in
43
	Cluster        *object `json:"cluster,omitempty"`
44
	CustomFields   *object `json:"custom_fields,omitempty"`
45
	DeviceType     *object `json:"device_type,omitempty"`
46
	Face           *object `json:"face,omitempty"`
47
	ParentDevice   *object `json:"parent_device,omitempty"`
48
	Platform       *object `json:"platform,omitempty"`
49
	PrimaryIp      *object `json:"primary_ip,omitempty"`
50
	PrimaryIp4     *object `json:"primary_ip4,omitempty"`
51
	PrimaryIp6     *object `json:"primary_ip6,omitempty"`
52
	Rack           *object `json:"rack,omitempty"`
53
	Site           *object `json:"site,omitempty"`
54
	Status         *object `json:"status,omitempty"`
55
	Tags           *list   `json:"tags,omitempty"`
56
	Tenant         *object `json:"tenant,omitempty"`
57
	VirtualChassis *object `json:"virtual_chassis,omitempty"`
58
}
59

60
// DeviceBrief is DTO definition of brief device's data
61
type DeviceBrief struct {
62
	Id           int               `json:"id"`
63
	Name         string            `json:"name"`
64
	NamePrevious string            `json:"name_previous"`
65
	Containers   []ContainerBrief  `json:"containers"`
66
	Status       DeviceStatusBrief `json:"status"`
67
}
68

69
// DeviceBriefList is DTO definition of result structure returned by method /api/dcim/devices-inactive/
70
type DeviceBriefList struct {
71
	Count    int           `json:"count"`
72
	List     []DeviceBrief `json:"results,omitempty"`
73
	Next     *string       `json:"next,omitempty"`
74
	Previous *string       `json:"previous,omitempty"`
75
}
76

77
// DeviceList is DTO definition of result structure returned by method /api/dcim/devices/
78
type DeviceList struct {
79
	Count    int      `json:"count"`
80
	List     []Device `json:"results,omitempty"`
81
	Next     *string  `json:"next,omitempty"`
82
	Previous *string  `json:"previous,omitempty"`
83
}
84

85
// DeviceRole is DTO definition of the role of single device, part of Device
86
type DeviceRole struct {
87
	Id   int     `json:"id"`
88
	Name string  `json:"name"`
89
	Slug string  `json:"slug"`
90
	Url  *string `json:"url,omitempty"`
91
}
92

93
// DeviceStatusBrief is DTO definition of brief status of the device
94
type DeviceStatusBrief struct {
95
	Label string `json:"label"`
96
	Value int    `json:"value"`
97
}
98

99
// Rack is DTO definition of single rack, part of RackList
100
type Rack struct {
101
	Id   int    `json:"id"`
102
	Name string `json:"name"`
103

104
	// some simple data we are not (yet) interested in
105
	Comments    *string `json:"comments,omitempty"`
106
	Created     *string `json:"created,omitempty"`
107
	DescUnits   *bool   `json:"desc_units,omitempty"`
108
	DisplayName *string `json:"display_name,omitempty"`
109
	FacilityId  *string `json:"facility_id,omitempty"`
110
	LastUpdated *string `json:"last_updated,omitempty"`
111
	Serial      *string `json:"serial,omitempty"`
112
	UHeight     *int    `json:"u_height,omitempty"`
113

114
	// some complex data we are not (yet) interested in
115
	CustomFields *object `json:"custom_fields,omitempty"`
116
	Group        *object `json:"group,omitempty"`
117
	Role         *object `json:"role,omitempty"`
118
	Site         *object `json:"site,omitempty"`
119
	Tags         *list   `json:"tags,omitempty"`
120
	Tenant       *object `json:"tenant,omitempty"`
121
	Type         *object `json:"type,omitempty"`
122
	Width        *object `json:"width,omitempty"`
123
}
124

125
// RackList is DTO definition of result structure returned by method /api/dcim/racks/
126
type RackList struct {
127
	Count    int     `json:"count"`
128
	Next     *string `json:"next,omitempty"`
129
	Previous *string `json:"previous,omitempty"`
130
	List     []*Rack `json:"results,omitempty"`
131
}
132

133
// RackGroup is DTO definition of single rack group, part of RackGroupList
134
type RackGroup struct {
135
	Id   int     `json:"id"`
136
	Name string  `json:"name"`
137
	Slug string  `json:"slug"`
138
	Site *object `json:"site,omitempty"`
139
}
140

141
// RackGroupList is DTO definition of result structure returned by method /api/dcim/rack-groups/
142
type RackGroupList struct {
143
	Count    int          `json:"count"`
144
	Next     *string      `json:"next,omitempty"`
145
	Previous *string      `json:"previous,omitempty"`
146
	List     []*RackGroup `json:"results,omitempty"`
147
}
148

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.