1 package resourcegraph
2
3
4
5
6
7
8
9 import (
10 "encoding/json"
11 "github.com/Azure/go-autorest/autorest"
12 )
13
14
15 const fqdn = "github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2019-04-01/resourcegraph"
16
17
18 type Column struct {
19
20 Name *string `json:"name,omitempty"`
21
22 Type ColumnDataType `json:"type,omitempty"`
23 }
24
25
26 type Error struct {
27
28 Code *string `json:"code,omitempty"`
29
30 Message *string `json:"message,omitempty"`
31
32 Details *[]ErrorDetails `json:"details,omitempty"`
33 }
34
35
36 type ErrorDetails struct {
37
38 AdditionalProperties map[string]interface{} `json:""`
39
40 Code *string `json:"code,omitempty"`
41
42 Message *string `json:"message,omitempty"`
43 }
44
45
46 func (ed ErrorDetails) MarshalJSON() ([]byte, error) {
47 objectMap := make(map[string]interface{})
48 if ed.Code != nil {
49 objectMap["code"] = ed.Code
50 }
51 if ed.Message != nil {
52 objectMap["message"] = ed.Message
53 }
54 for k, v := range ed.AdditionalProperties {
55 objectMap[k] = v
56 }
57 return json.Marshal(objectMap)
58 }
59
60
61 func (ed *ErrorDetails) UnmarshalJSON(body []byte) error {
62 var m map[string]*json.RawMessage
63 err := json.Unmarshal(body, &m)
64 if err != nil {
65 return err
66 }
67 for k, v := range m {
68 switch k {
69 default:
70 if v != nil {
71 var additionalProperties interface{}
72 err = json.Unmarshal(*v, &additionalProperties)
73 if err != nil {
74 return err
75 }
76 if ed.AdditionalProperties == nil {
77 ed.AdditionalProperties = make(map[string]interface{})
78 }
79 ed.AdditionalProperties[k] = additionalProperties
80 }
81 case "code":
82 if v != nil {
83 var code string
84 err = json.Unmarshal(*v, &code)
85 if err != nil {
86 return err
87 }
88 ed.Code = &code
89 }
90 case "message":
91 if v != nil {
92 var message string
93 err = json.Unmarshal(*v, &message)
94 if err != nil {
95 return err
96 }
97 ed.Message = &message
98 }
99 }
100 }
101
102 return nil
103 }
104
105
106 type ErrorResponse struct {
107
108 Error *Error `json:"error,omitempty"`
109 }
110
111
112
113 type BasicFacet interface {
114 AsFacetResult() (*FacetResult, bool)
115 AsFacetError() (*FacetError, bool)
116 AsFacet() (*Facet, bool)
117 }
118
119
120
121 type Facet struct {
122
123 Expression *string `json:"expression,omitempty"`
124
125 ResultType ResultType `json:"resultType,omitempty"`
126 }
127
128 func unmarshalBasicFacet(body []byte) (BasicFacet, error) {
129 var m map[string]interface{}
130 err := json.Unmarshal(body, &m)
131 if err != nil {
132 return nil, err
133 }
134
135 switch m["resultType"] {
136 case string(ResultTypeFacetResult):
137 var fr FacetResult
138 err := json.Unmarshal(body, &fr)
139 return fr, err
140 case string(ResultTypeFacetError):
141 var fe FacetError
142 err := json.Unmarshal(body, &fe)
143 return fe, err
144 default:
145 var f Facet
146 err := json.Unmarshal(body, &f)
147 return f, err
148 }
149 }
150 func unmarshalBasicFacetArray(body []byte) ([]BasicFacet, error) {
151 var rawMessages []*json.RawMessage
152 err := json.Unmarshal(body, &rawMessages)
153 if err != nil {
154 return nil, err
155 }
156
157 fArray := make([]BasicFacet, len(rawMessages))
158
159 for index, rawMessage := range rawMessages {
160 f, err := unmarshalBasicFacet(*rawMessage)
161 if err != nil {
162 return nil, err
163 }
164 fArray[index] = f
165 }
166 return fArray, nil
167 }
168
169
170 func (f Facet) MarshalJSON() ([]byte, error) {
171 f.ResultType = ResultTypeFacet
172 objectMap := make(map[string]interface{})
173 if f.Expression != nil {
174 objectMap["expression"] = f.Expression
175 }
176 if f.ResultType != "" {
177 objectMap["resultType"] = f.ResultType
178 }
179 return json.Marshal(objectMap)
180 }
181
182
183 func (f Facet) AsFacetResult() (*FacetResult, bool) {
184 return nil, false
185 }
186
187
188 func (f Facet) AsFacetError() (*FacetError, bool) {
189 return nil, false
190 }
191
192
193 func (f Facet) AsFacet() (*Facet, bool) {
194 return &f, true
195 }
196
197
198 func (f Facet) AsBasicFacet() (BasicFacet, bool) {
199 return &f, true
200 }
201
202
203 type FacetError struct {
204
205 Errors *[]ErrorDetails `json:"errors,omitempty"`
206
207 Expression *string `json:"expression,omitempty"`
208
209 ResultType ResultType `json:"resultType,omitempty"`
210 }
211
212
213 func (fe FacetError) MarshalJSON() ([]byte, error) {
214 fe.ResultType = ResultTypeFacetError
215 objectMap := make(map[string]interface{})
216 if fe.Errors != nil {
217 objectMap["errors"] = fe.Errors
218 }
219 if fe.Expression != nil {
220 objectMap["expression"] = fe.Expression
221 }
222 if fe.ResultType != "" {
223 objectMap["resultType"] = fe.ResultType
224 }
225 return json.Marshal(objectMap)
226 }
227
228
229 func (fe FacetError) AsFacetResult() (*FacetResult, bool) {
230 return nil, false
231 }
232
233
234 func (fe FacetError) AsFacetError() (*FacetError, bool) {
235 return &fe, true
236 }
237
238
239 func (fe FacetError) AsFacet() (*Facet, bool) {
240 return nil, false
241 }
242
243
244 func (fe FacetError) AsBasicFacet() (BasicFacet, bool) {
245 return &fe, true
246 }
247
248
249 type FacetRequest struct {
250
251 Expression *string `json:"expression,omitempty"`
252
253 Options *FacetRequestOptions `json:"options,omitempty"`
254 }
255
256
257 type FacetRequestOptions struct {
258
259 SortBy *string `json:"sortBy,omitempty"`
260
261 SortOrder FacetSortOrder `json:"sortOrder,omitempty"`
262
263 Filter *string `json:"filter,omitempty"`
264
265 Top *int32 `json:"$top,omitempty"`
266 }
267
268
269 type FacetResult struct {
270
271 TotalRecords *int64 `json:"totalRecords,omitempty"`
272
273 Count *int32 `json:"count,omitempty"`
274
275 Data interface{} `json:"data,omitempty"`
276
277 Expression *string `json:"expression,omitempty"`
278
279 ResultType ResultType `json:"resultType,omitempty"`
280 }
281
282
283 func (fr FacetResult) MarshalJSON() ([]byte, error) {
284 fr.ResultType = ResultTypeFacetResult
285 objectMap := make(map[string]interface{})
286 if fr.TotalRecords != nil {
287 objectMap["totalRecords"] = fr.TotalRecords
288 }
289 if fr.Count != nil {
290 objectMap["count"] = fr.Count
291 }
292 if fr.Data != nil {
293 objectMap["data"] = fr.Data
294 }
295 if fr.Expression != nil {
296 objectMap["expression"] = fr.Expression
297 }
298 if fr.ResultType != "" {
299 objectMap["resultType"] = fr.ResultType
300 }
301 return json.Marshal(objectMap)
302 }
303
304
305 func (fr FacetResult) AsFacetResult() (*FacetResult, bool) {
306 return &fr, true
307 }
308
309
310 func (fr FacetResult) AsFacetError() (*FacetError, bool) {
311 return nil, false
312 }
313
314
315 func (fr FacetResult) AsFacet() (*Facet, bool) {
316 return nil, false
317 }
318
319
320 func (fr FacetResult) AsBasicFacet() (BasicFacet, bool) {
321 return &fr, true
322 }
323
324
325 type Operation struct {
326
327 Name *string `json:"name,omitempty"`
328
329 Display *OperationDisplay `json:"display,omitempty"`
330
331 Origin *string `json:"origin,omitempty"`
332 }
333
334
335 type OperationDisplay struct {
336
337 Provider *string `json:"provider,omitempty"`
338
339 Resource *string `json:"resource,omitempty"`
340
341 Operation *string `json:"operation,omitempty"`
342
343 Description *string `json:"description,omitempty"`
344 }
345
346
347
348 type OperationListResult struct {
349 autorest.Response `json:"-"`
350
351 Value *[]Operation `json:"value,omitempty"`
352 }
353
354
355 type QueryRequest struct {
356
357 Subscriptions *[]string `json:"subscriptions,omitempty"`
358
359 Query *string `json:"query,omitempty"`
360
361 Options *QueryRequestOptions `json:"options,omitempty"`
362
363 Facets *[]FacetRequest `json:"facets,omitempty"`
364 }
365
366
367 type QueryRequestOptions struct {
368
369 SkipToken *string `json:"$skipToken,omitempty"`
370
371 Top *int32 `json:"$top,omitempty"`
372
373 Skip *int32 `json:"$skip,omitempty"`
374
375 ResultFormat ResultFormat `json:"resultFormat,omitempty"`
376 }
377
378
379 type QueryResponse struct {
380 autorest.Response `json:"-"`
381
382 TotalRecords *int64 `json:"totalRecords,omitempty"`
383
384 Count *int64 `json:"count,omitempty"`
385
386 ResultTruncated ResultTruncated `json:"resultTruncated,omitempty"`
387
388 SkipToken *string `json:"$skipToken,omitempty"`
389
390 Data interface{} `json:"data,omitempty"`
391
392 Facets *[]BasicFacet `json:"facets,omitempty"`
393 }
394
395
396 func (qr *QueryResponse) UnmarshalJSON(body []byte) error {
397 var m map[string]*json.RawMessage
398 err := json.Unmarshal(body, &m)
399 if err != nil {
400 return err
401 }
402 for k, v := range m {
403 switch k {
404 case "totalRecords":
405 if v != nil {
406 var totalRecords int64
407 err = json.Unmarshal(*v, &totalRecords)
408 if err != nil {
409 return err
410 }
411 qr.TotalRecords = &totalRecords
412 }
413 case "count":
414 if v != nil {
415 var count int64
416 err = json.Unmarshal(*v, &count)
417 if err != nil {
418 return err
419 }
420 qr.Count = &count
421 }
422 case "resultTruncated":
423 if v != nil {
424 var resultTruncated ResultTruncated
425 err = json.Unmarshal(*v, &resultTruncated)
426 if err != nil {
427 return err
428 }
429 qr.ResultTruncated = resultTruncated
430 }
431 case "$skipToken":
432 if v != nil {
433 var skipToken string
434 err = json.Unmarshal(*v, &skipToken)
435 if err != nil {
436 return err
437 }
438 qr.SkipToken = &skipToken
439 }
440 case "data":
441 if v != nil {
442 var data interface{}
443 err = json.Unmarshal(*v, &data)
444 if err != nil {
445 return err
446 }
447 qr.Data = data
448 }
449 case "facets":
450 if v != nil {
451 facets, err := unmarshalBasicFacetArray(*v)
452 if err != nil {
453 return err
454 }
455 qr.Facets = &facets
456 }
457 }
458 }
459
460 return nil
461 }
462
463
464 type Table struct {
465
466 Columns *[]Column `json:"columns,omitempty"`
467
468 Rows *[][]interface{} `json:"rows,omitempty"`
469 }
470
View as plain text