-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenapi.yaml
More file actions
341 lines (341 loc) · 8.39 KB
/
openapi.yaml
File metadata and controls
341 lines (341 loc) · 8.39 KB
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
openapi: 3.0.0
info:
title: Enyday API
description: |
This API allows integration with the Enyday platform, providing access to user authentication,
user details, authorization data, address information, and power consumption data. It helps
in integrating Enyday into platforms like Home Assistant.
version: 1.0.0
servers:
- url: https://app.enyday.com/connected/api
paths:
/1.0/user/user:
get:
summary: Get User Details
operationId: getUserDetails
responses:
"200":
description: User details fetched successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UserDetailsResponse'
security:
- api_key: []
post:
summary: Get User Auth Token
operationId: getUserAuthToken
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/user_user_body'
required: true
responses:
"200":
description: Auth token successfully generated
content:
application/json:
schema:
$ref: '#/components/schemas/AuthTokenResponse'
security: []
/1.0/eloverblik/authorization:
get:
summary: Get Eloverblik Authorizations
operationId: getEloverblikAuthorizations
parameters:
- name: user_id
in: query
description: The user ID to fetch authorizations
required: true
style: form
explode: true
schema:
type: integer
responses:
"200":
description: Eloverblik authorizations fetched
content:
application/json:
schema:
$ref: '#/components/schemas/EloverblikAuthorizationResponse'
security:
- api_key: []
/2.0/address/address:
get:
summary: Get Addresses By UserId
operationId: getAddressesByUserId
parameters:
- name: user_id
in: query
description: The user ID to fetch addresses
required: true
style: form
explode: true
schema:
type: integer
responses:
"200":
description: Addresses retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/AddressResponse'
security:
- api_key: []
/1.0/btm/invoice-line-graph:
get:
summary: Get Hourly Power Internal and External By UserId and AddressId
operationId: getHourlyPowerData
parameters:
- name: user_id
in: query
description: The user ID for the data
required: true
style: form
explode: true
schema:
type: integer
- name: address_id
in: query
description: The address ID for the data
required: true
style: form
explode: true
schema:
type: integer
- name: begin
in: query
description: Start time for the data
required: true
style: form
explode: true
schema:
type: string
format: date-time
- name: end
in: query
description: End time for the data
required: true
style: form
explode: true
schema:
type: string
format: date-time
responses:
"200":
description: Power consumption data retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/PowerConsumptionResponse'
security:
- api_key: []
components:
schemas:
AuthTokenResponse:
type: object
properties:
status:
type: string
message:
type: string
auth_token:
type: string
UserDetailsResponse:
type: object
properties:
id:
type: integer
firstName:
type: string
lastName:
type: string
email:
type: string
last_changed_password:
type: string
nullable: true
completeProfile:
type: string
nullable: true
hasUserRegisteredHisDevices:
type: boolean
nrOfDevices:
type: integer
roles:
type: array
items:
$ref: '#/components/schemas/UserDetailsResponse_roles'
eloverblik_customer_key:
type: string
nullable: true
user_btms:
type: array
items:
$ref: '#/components/schemas/UserDetailsResponse_user_btms'
admin_btms:
type: array
items:
type: object
reg_date:
type: string
nullable: true
PostNumber:
type: string
nullable: true
PhoneNumber:
type: string
hasBattery:
type: boolean
hasEV:
type: boolean
subscription:
type: boolean
customer_id:
type: string
nullable: true
is_bot:
type: boolean
address_id:
type: integer
nullable: true
submeter_id:
type: integer
last_login:
type: string
format: date-time
expo_push_token:
type: string
nullable: true
EloverblikAuthorizationResponse:
type: object
properties:
eloverblik_authorizations:
type: array
items:
type: object
AddressResponse:
type: object
properties:
addresses:
type: array
items:
$ref: '#/components/schemas/AddressResponse_addresses'
PowerConsumptionResponse:
type: object
properties:
invoiced:
type: array
items:
$ref: '#/components/schemas/PowerConsumptionResponse_invoiced'
user_user_body:
type: object
properties:
email:
type: string
password:
type: string
UserDetailsResponse_roles:
type: object
properties:
name:
type: string
UserDetailsResponse_periods:
type: object
properties:
period_begin:
type: string
format: date-time
period_end:
type: string
format: date-time
nullable: true
UserDetailsResponse_user_btms:
type: object
properties:
btm_id:
type: integer
btm_name:
type: string
access_address_id:
type: integer
access_address:
type: string
use_buildings:
type: integer
nordpool_area:
type: string
periods:
type: array
items:
$ref: '#/components/schemas/UserDetailsResponse_periods'
new_price_model:
type: boolean
AddressResponse_submeters:
type: object
properties:
submeter_id:
type: integer
submeter_external_id:
type: string
submeter_name:
type: string
submeter_direction:
type: integer
submeter_box_id:
type: integer
submeter_box_external_id:
type: string
submeter_box_name:
type: string
AddressResponse_addresses:
type: object
properties:
id:
type: integer
access_address_id:
type: integer
external_id:
type: string
address:
type: string
floor:
type: string
side:
type: string
is_virtual:
type: integer
door_number:
type: integer
total_doors_on_floor:
type: integer
building_id:
type: integer
nullable: true
btm_id:
type: integer
submeters:
type: array
items:
$ref: '#/components/schemas/AddressResponse_submeters'
PowerConsumptionResponse_invoiced:
type: object
properties:
period_begin:
type: string
format: date-time
period_end:
type: string
format: date-time
power_internal:
type: number
format: float
power_external:
type: number
format: float
securitySchemes:
api_key:
type: apiKey
name: Authorization
in: header