/
data.go
106 lines (93 loc) · 2.29 KB
/
data.go
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package design
import (
. "goa.design/goa/v3/dsl"
)
var _ = Service("data", func() {
Security(JWTAuth, func() {
Scope("api:access")
})
Method("device summary", func() {
Result(DeviceDataSummaryResponse)
Payload(func() {
Token("auth")
Attribute("deviceId", String)
Required("deviceId")
})
HTTP(func() {
GET("data/devices/{deviceId}/summary")
})
})
commonOptions()
})
var DeviceStreamSummary = Type("DeviceStreamSummary", func() {
Attribute("records", Int64)
Attribute("size", Int64)
})
var DeviceDataStreamsSummary = Type("DeviceDataStreamsSummary", func() {
Attribute("meta", DeviceStreamSummary)
Attribute("data", DeviceStreamSummary)
})
var DeviceProvisionSummary = ResultType("application/vnd.app.device.provision.summary+json", func() {
TypeName("DeviceProvisionSummary")
Attributes(func() {
Attribute("generation", String)
Attribute("created", Int64)
Attribute("updated", Int64)
Attribute("meta", DeviceMetaSummary)
Attribute("data", DeviceDataSummary)
Required("generation")
Required("created")
Required("updated")
Required("meta")
Required("data")
})
View("default", func() {
Attribute("generation")
Attribute("created")
Attribute("updated")
Attribute("meta")
Attribute("data")
})
})
var DeviceMetaSummary = ResultType("application/vnd.app.device.meta.summary+json", func() {
TypeName("DeviceMetaSummary")
Attributes(func() {
Attribute("size", Int64)
Attribute("first", Int64)
Attribute("last", Int64)
Required("size")
Required("first")
Required("last")
})
View("default", func() {
Attribute("size")
Attribute("first")
Attribute("last")
})
})
var DeviceDataSummary = ResultType("application/vnd.app.device.data.summary+json", func() {
TypeName("DeviceDataSummary")
Attributes(func() {
Attribute("size", Int64)
Attribute("first", Int64)
Attribute("last", Int64)
Required("size")
Required("first")
Required("last")
})
View("default", func() {
Attribute("size")
Attribute("first")
Attribute("last")
})
})
var DeviceDataSummaryResponse = ResultType("application/vnd.app.device.summary+json", func() {
TypeName("DeviceDataSummaryResponse")
Attributes(func() {
Attribute("provisions", CollectionOf(DeviceProvisionSummary))
Required("provisions")
})
View("default", func() {
Attribute("provisions")
})
})