1 package videosearch
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/cognitiveservices/v1.0/videosearch"
16
17
18 type BasicAnswer interface {
19 AsVideos() (*Videos, bool)
20 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
21 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
22 AsAnswer() (*Answer, bool)
23 }
24
25
26 type Answer struct {
27
28 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
29
30 WebSearchURL *string `json:"webSearchUrl,omitempty"`
31
32 ID *string `json:"id,omitempty"`
33
34 Type Type `json:"_type,omitempty"`
35 }
36
37 func unmarshalBasicAnswer(body []byte) (BasicAnswer, error) {
38 var m map[string]interface{}
39 err := json.Unmarshal(body, &m)
40 if err != nil {
41 return nil, err
42 }
43
44 switch m["_type"] {
45 case string(TypeVideos):
46 var vVar Videos
47 err := json.Unmarshal(body, &vVar)
48 return vVar, err
49 case string(TypeSearchResultsAnswer):
50 var sra SearchResultsAnswer
51 err := json.Unmarshal(body, &sra)
52 return sra, err
53 default:
54 var a Answer
55 err := json.Unmarshal(body, &a)
56 return a, err
57 }
58 }
59 func unmarshalBasicAnswerArray(body []byte) ([]BasicAnswer, error) {
60 var rawMessages []*json.RawMessage
61 err := json.Unmarshal(body, &rawMessages)
62 if err != nil {
63 return nil, err
64 }
65
66 aArray := make([]BasicAnswer, len(rawMessages))
67
68 for index, rawMessage := range rawMessages {
69 a, err := unmarshalBasicAnswer(*rawMessage)
70 if err != nil {
71 return nil, err
72 }
73 aArray[index] = a
74 }
75 return aArray, nil
76 }
77
78
79 func (a Answer) MarshalJSON() ([]byte, error) {
80 a.Type = TypeAnswer
81 objectMap := make(map[string]interface{})
82 if a.Type != "" {
83 objectMap["_type"] = a.Type
84 }
85 return json.Marshal(objectMap)
86 }
87
88
89 func (a Answer) AsImageObject() (*ImageObject, bool) {
90 return nil, false
91 }
92
93
94 func (a Answer) AsVideoObject() (*VideoObject, bool) {
95 return nil, false
96 }
97
98
99 func (a Answer) AsVideos() (*Videos, bool) {
100 return nil, false
101 }
102
103
104 func (a Answer) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
105 return nil, false
106 }
107
108
109 func (a Answer) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
110 return nil, false
111 }
112
113
114 func (a Answer) AsAnswer() (*Answer, bool) {
115 return &a, true
116 }
117
118
119 func (a Answer) AsBasicAnswer() (BasicAnswer, bool) {
120 return &a, true
121 }
122
123
124 func (a Answer) AsMediaObject() (*MediaObject, bool) {
125 return nil, false
126 }
127
128
129 func (a Answer) AsBasicMediaObject() (BasicMediaObject, bool) {
130 return nil, false
131 }
132
133
134 func (a Answer) AsResponse() (*Response, bool) {
135 return nil, false
136 }
137
138
139 func (a Answer) AsBasicResponse() (BasicResponse, bool) {
140 return &a, true
141 }
142
143
144 func (a Answer) AsThing() (*Thing, bool) {
145 return nil, false
146 }
147
148
149 func (a Answer) AsBasicThing() (BasicThing, bool) {
150 return nil, false
151 }
152
153
154 func (a Answer) AsCreativeWork() (*CreativeWork, bool) {
155 return nil, false
156 }
157
158
159 func (a Answer) AsBasicCreativeWork() (BasicCreativeWork, bool) {
160 return nil, false
161 }
162
163
164 func (a Answer) AsIdentifiable() (*Identifiable, bool) {
165 return nil, false
166 }
167
168
169 func (a Answer) AsBasicIdentifiable() (BasicIdentifiable, bool) {
170 return &a, true
171 }
172
173
174 func (a Answer) AsErrorResponse() (*ErrorResponse, bool) {
175 return nil, false
176 }
177
178
179 func (a Answer) AsTrendingVideos() (*TrendingVideos, bool) {
180 return nil, false
181 }
182
183
184 func (a Answer) AsVideoDetails() (*VideoDetails, bool) {
185 return nil, false
186 }
187
188
189 func (a Answer) AsResponseBase() (*ResponseBase, bool) {
190 return nil, false
191 }
192
193
194 func (a Answer) AsBasicResponseBase() (BasicResponseBase, bool) {
195 return &a, true
196 }
197
198
199 type BasicCreativeWork interface {
200 AsImageObject() (*ImageObject, bool)
201 AsVideoObject() (*VideoObject, bool)
202 AsMediaObject() (*MediaObject, bool)
203 AsBasicMediaObject() (BasicMediaObject, bool)
204 AsCreativeWork() (*CreativeWork, bool)
205 }
206
207
208 type CreativeWork struct {
209
210 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
211
212 Provider *[]BasicThing `json:"provider,omitempty"`
213
214 Text *string `json:"text,omitempty"`
215
216 Name *string `json:"name,omitempty"`
217
218 URL *string `json:"url,omitempty"`
219
220 Image *ImageObject `json:"image,omitempty"`
221
222 Description *string `json:"description,omitempty"`
223
224 AlternateName *string `json:"alternateName,omitempty"`
225
226 BingID *string `json:"bingId,omitempty"`
227
228 WebSearchURL *string `json:"webSearchUrl,omitempty"`
229
230 ID *string `json:"id,omitempty"`
231
232 Type Type `json:"_type,omitempty"`
233 }
234
235 func unmarshalBasicCreativeWork(body []byte) (BasicCreativeWork, error) {
236 var m map[string]interface{}
237 err := json.Unmarshal(body, &m)
238 if err != nil {
239 return nil, err
240 }
241
242 switch m["_type"] {
243 case string(TypeImageObject):
244 var ioVar ImageObject
245 err := json.Unmarshal(body, &ioVar)
246 return ioVar, err
247 case string(TypeVideoObject):
248 var vo VideoObject
249 err := json.Unmarshal(body, &vo)
250 return vo, err
251 case string(TypeMediaObject):
252 var mo MediaObject
253 err := json.Unmarshal(body, &mo)
254 return mo, err
255 default:
256 var cw CreativeWork
257 err := json.Unmarshal(body, &cw)
258 return cw, err
259 }
260 }
261 func unmarshalBasicCreativeWorkArray(body []byte) ([]BasicCreativeWork, error) {
262 var rawMessages []*json.RawMessage
263 err := json.Unmarshal(body, &rawMessages)
264 if err != nil {
265 return nil, err
266 }
267
268 cwArray := make([]BasicCreativeWork, len(rawMessages))
269
270 for index, rawMessage := range rawMessages {
271 cw, err := unmarshalBasicCreativeWork(*rawMessage)
272 if err != nil {
273 return nil, err
274 }
275 cwArray[index] = cw
276 }
277 return cwArray, nil
278 }
279
280
281 func (cw CreativeWork) MarshalJSON() ([]byte, error) {
282 cw.Type = TypeCreativeWork
283 objectMap := make(map[string]interface{})
284 if cw.Type != "" {
285 objectMap["_type"] = cw.Type
286 }
287 return json.Marshal(objectMap)
288 }
289
290
291 func (cw CreativeWork) AsImageObject() (*ImageObject, bool) {
292 return nil, false
293 }
294
295
296 func (cw CreativeWork) AsVideoObject() (*VideoObject, bool) {
297 return nil, false
298 }
299
300
301 func (cw CreativeWork) AsVideos() (*Videos, bool) {
302 return nil, false
303 }
304
305
306 func (cw CreativeWork) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
307 return nil, false
308 }
309
310
311 func (cw CreativeWork) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
312 return nil, false
313 }
314
315
316 func (cw CreativeWork) AsAnswer() (*Answer, bool) {
317 return nil, false
318 }
319
320
321 func (cw CreativeWork) AsBasicAnswer() (BasicAnswer, bool) {
322 return nil, false
323 }
324
325
326 func (cw CreativeWork) AsMediaObject() (*MediaObject, bool) {
327 return nil, false
328 }
329
330
331 func (cw CreativeWork) AsBasicMediaObject() (BasicMediaObject, bool) {
332 return nil, false
333 }
334
335
336 func (cw CreativeWork) AsResponse() (*Response, bool) {
337 return nil, false
338 }
339
340
341 func (cw CreativeWork) AsBasicResponse() (BasicResponse, bool) {
342 return &cw, true
343 }
344
345
346 func (cw CreativeWork) AsThing() (*Thing, bool) {
347 return nil, false
348 }
349
350
351 func (cw CreativeWork) AsBasicThing() (BasicThing, bool) {
352 return &cw, true
353 }
354
355
356 func (cw CreativeWork) AsCreativeWork() (*CreativeWork, bool) {
357 return &cw, true
358 }
359
360
361 func (cw CreativeWork) AsBasicCreativeWork() (BasicCreativeWork, bool) {
362 return &cw, true
363 }
364
365
366 func (cw CreativeWork) AsIdentifiable() (*Identifiable, bool) {
367 return nil, false
368 }
369
370
371 func (cw CreativeWork) AsBasicIdentifiable() (BasicIdentifiable, bool) {
372 return &cw, true
373 }
374
375
376 func (cw CreativeWork) AsErrorResponse() (*ErrorResponse, bool) {
377 return nil, false
378 }
379
380
381 func (cw CreativeWork) AsTrendingVideos() (*TrendingVideos, bool) {
382 return nil, false
383 }
384
385
386 func (cw CreativeWork) AsVideoDetails() (*VideoDetails, bool) {
387 return nil, false
388 }
389
390
391 func (cw CreativeWork) AsResponseBase() (*ResponseBase, bool) {
392 return nil, false
393 }
394
395
396 func (cw CreativeWork) AsBasicResponseBase() (BasicResponseBase, bool) {
397 return &cw, true
398 }
399
400
401 func (cw *CreativeWork) UnmarshalJSON(body []byte) error {
402 var m map[string]*json.RawMessage
403 err := json.Unmarshal(body, &m)
404 if err != nil {
405 return err
406 }
407 for k, v := range m {
408 switch k {
409 case "thumbnailUrl":
410 if v != nil {
411 var thumbnailURL string
412 err = json.Unmarshal(*v, &thumbnailURL)
413 if err != nil {
414 return err
415 }
416 cw.ThumbnailURL = &thumbnailURL
417 }
418 case "provider":
419 if v != nil {
420 provider, err := unmarshalBasicThingArray(*v)
421 if err != nil {
422 return err
423 }
424 cw.Provider = &provider
425 }
426 case "text":
427 if v != nil {
428 var textVar string
429 err = json.Unmarshal(*v, &textVar)
430 if err != nil {
431 return err
432 }
433 cw.Text = &textVar
434 }
435 case "name":
436 if v != nil {
437 var name string
438 err = json.Unmarshal(*v, &name)
439 if err != nil {
440 return err
441 }
442 cw.Name = &name
443 }
444 case "url":
445 if v != nil {
446 var URL string
447 err = json.Unmarshal(*v, &URL)
448 if err != nil {
449 return err
450 }
451 cw.URL = &URL
452 }
453 case "image":
454 if v != nil {
455 var imageVar ImageObject
456 err = json.Unmarshal(*v, &imageVar)
457 if err != nil {
458 return err
459 }
460 cw.Image = &imageVar
461 }
462 case "description":
463 if v != nil {
464 var description string
465 err = json.Unmarshal(*v, &description)
466 if err != nil {
467 return err
468 }
469 cw.Description = &description
470 }
471 case "alternateName":
472 if v != nil {
473 var alternateName string
474 err = json.Unmarshal(*v, &alternateName)
475 if err != nil {
476 return err
477 }
478 cw.AlternateName = &alternateName
479 }
480 case "bingId":
481 if v != nil {
482 var bingID string
483 err = json.Unmarshal(*v, &bingID)
484 if err != nil {
485 return err
486 }
487 cw.BingID = &bingID
488 }
489 case "webSearchUrl":
490 if v != nil {
491 var webSearchURL string
492 err = json.Unmarshal(*v, &webSearchURL)
493 if err != nil {
494 return err
495 }
496 cw.WebSearchURL = &webSearchURL
497 }
498 case "id":
499 if v != nil {
500 var ID string
501 err = json.Unmarshal(*v, &ID)
502 if err != nil {
503 return err
504 }
505 cw.ID = &ID
506 }
507 case "_type":
508 if v != nil {
509 var typeVar Type
510 err = json.Unmarshal(*v, &typeVar)
511 if err != nil {
512 return err
513 }
514 cw.Type = typeVar
515 }
516 }
517 }
518
519 return nil
520 }
521
522
523 type Error struct {
524
525 Code ErrorCode `json:"code,omitempty"`
526
527 SubCode ErrorSubCode `json:"subCode,omitempty"`
528
529 Message *string `json:"message,omitempty"`
530
531 MoreDetails *string `json:"moreDetails,omitempty"`
532
533 Parameter *string `json:"parameter,omitempty"`
534
535 Value *string `json:"value,omitempty"`
536 }
537
538
539 func (e Error) MarshalJSON() ([]byte, error) {
540 objectMap := make(map[string]interface{})
541 if e.Code != "" {
542 objectMap["code"] = e.Code
543 }
544 if e.Message != nil {
545 objectMap["message"] = e.Message
546 }
547 return json.Marshal(objectMap)
548 }
549
550
551 type ErrorResponse struct {
552
553 Errors *[]Error `json:"errors,omitempty"`
554
555 WebSearchURL *string `json:"webSearchUrl,omitempty"`
556
557 ID *string `json:"id,omitempty"`
558
559 Type Type `json:"_type,omitempty"`
560 }
561
562
563 func (er ErrorResponse) MarshalJSON() ([]byte, error) {
564 er.Type = TypeErrorResponse
565 objectMap := make(map[string]interface{})
566 if er.Errors != nil {
567 objectMap["errors"] = er.Errors
568 }
569 if er.Type != "" {
570 objectMap["_type"] = er.Type
571 }
572 return json.Marshal(objectMap)
573 }
574
575
576 func (er ErrorResponse) AsImageObject() (*ImageObject, bool) {
577 return nil, false
578 }
579
580
581 func (er ErrorResponse) AsVideoObject() (*VideoObject, bool) {
582 return nil, false
583 }
584
585
586 func (er ErrorResponse) AsVideos() (*Videos, bool) {
587 return nil, false
588 }
589
590
591 func (er ErrorResponse) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
592 return nil, false
593 }
594
595
596 func (er ErrorResponse) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
597 return nil, false
598 }
599
600
601 func (er ErrorResponse) AsAnswer() (*Answer, bool) {
602 return nil, false
603 }
604
605
606 func (er ErrorResponse) AsBasicAnswer() (BasicAnswer, bool) {
607 return nil, false
608 }
609
610
611 func (er ErrorResponse) AsMediaObject() (*MediaObject, bool) {
612 return nil, false
613 }
614
615
616 func (er ErrorResponse) AsBasicMediaObject() (BasicMediaObject, bool) {
617 return nil, false
618 }
619
620
621 func (er ErrorResponse) AsResponse() (*Response, bool) {
622 return nil, false
623 }
624
625
626 func (er ErrorResponse) AsBasicResponse() (BasicResponse, bool) {
627 return &er, true
628 }
629
630
631 func (er ErrorResponse) AsThing() (*Thing, bool) {
632 return nil, false
633 }
634
635
636 func (er ErrorResponse) AsBasicThing() (BasicThing, bool) {
637 return nil, false
638 }
639
640
641 func (er ErrorResponse) AsCreativeWork() (*CreativeWork, bool) {
642 return nil, false
643 }
644
645
646 func (er ErrorResponse) AsBasicCreativeWork() (BasicCreativeWork, bool) {
647 return nil, false
648 }
649
650
651 func (er ErrorResponse) AsIdentifiable() (*Identifiable, bool) {
652 return nil, false
653 }
654
655
656 func (er ErrorResponse) AsBasicIdentifiable() (BasicIdentifiable, bool) {
657 return &er, true
658 }
659
660
661 func (er ErrorResponse) AsErrorResponse() (*ErrorResponse, bool) {
662 return &er, true
663 }
664
665
666 func (er ErrorResponse) AsTrendingVideos() (*TrendingVideos, bool) {
667 return nil, false
668 }
669
670
671 func (er ErrorResponse) AsVideoDetails() (*VideoDetails, bool) {
672 return nil, false
673 }
674
675
676 func (er ErrorResponse) AsResponseBase() (*ResponseBase, bool) {
677 return nil, false
678 }
679
680
681 func (er ErrorResponse) AsBasicResponseBase() (BasicResponseBase, bool) {
682 return &er, true
683 }
684
685
686 type BasicIdentifiable interface {
687 AsImageObject() (*ImageObject, bool)
688 AsVideoObject() (*VideoObject, bool)
689 AsVideos() (*Videos, bool)
690 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
691 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
692 AsAnswer() (*Answer, bool)
693 AsBasicAnswer() (BasicAnswer, bool)
694 AsMediaObject() (*MediaObject, bool)
695 AsBasicMediaObject() (BasicMediaObject, bool)
696 AsResponse() (*Response, bool)
697 AsBasicResponse() (BasicResponse, bool)
698 AsThing() (*Thing, bool)
699 AsBasicThing() (BasicThing, bool)
700 AsCreativeWork() (*CreativeWork, bool)
701 AsBasicCreativeWork() (BasicCreativeWork, bool)
702 AsErrorResponse() (*ErrorResponse, bool)
703 AsTrendingVideos() (*TrendingVideos, bool)
704 AsVideoDetails() (*VideoDetails, bool)
705 AsIdentifiable() (*Identifiable, bool)
706 }
707
708
709 type Identifiable struct {
710
711 ID *string `json:"id,omitempty"`
712
713 Type Type `json:"_type,omitempty"`
714 }
715
716 func unmarshalBasicIdentifiable(body []byte) (BasicIdentifiable, error) {
717 var m map[string]interface{}
718 err := json.Unmarshal(body, &m)
719 if err != nil {
720 return nil, err
721 }
722
723 switch m["_type"] {
724 case string(TypeImageObject):
725 var ioVar ImageObject
726 err := json.Unmarshal(body, &ioVar)
727 return ioVar, err
728 case string(TypeVideoObject):
729 var vo VideoObject
730 err := json.Unmarshal(body, &vo)
731 return vo, err
732 case string(TypeVideos):
733 var vVar Videos
734 err := json.Unmarshal(body, &vVar)
735 return vVar, err
736 case string(TypeSearchResultsAnswer):
737 var sra SearchResultsAnswer
738 err := json.Unmarshal(body, &sra)
739 return sra, err
740 case string(TypeAnswer):
741 var a Answer
742 err := json.Unmarshal(body, &a)
743 return a, err
744 case string(TypeMediaObject):
745 var mo MediaObject
746 err := json.Unmarshal(body, &mo)
747 return mo, err
748 case string(TypeResponse):
749 var r Response
750 err := json.Unmarshal(body, &r)
751 return r, err
752 case string(TypeThing):
753 var t Thing
754 err := json.Unmarshal(body, &t)
755 return t, err
756 case string(TypeCreativeWork):
757 var cw CreativeWork
758 err := json.Unmarshal(body, &cw)
759 return cw, err
760 case string(TypeErrorResponse):
761 var er ErrorResponse
762 err := json.Unmarshal(body, &er)
763 return er, err
764 case string(TypeTrendingVideos):
765 var tv TrendingVideos
766 err := json.Unmarshal(body, &tv)
767 return tv, err
768 case string(TypeVideoDetails):
769 var vd VideoDetails
770 err := json.Unmarshal(body, &vd)
771 return vd, err
772 default:
773 var i Identifiable
774 err := json.Unmarshal(body, &i)
775 return i, err
776 }
777 }
778 func unmarshalBasicIdentifiableArray(body []byte) ([]BasicIdentifiable, error) {
779 var rawMessages []*json.RawMessage
780 err := json.Unmarshal(body, &rawMessages)
781 if err != nil {
782 return nil, err
783 }
784
785 iArray := make([]BasicIdentifiable, len(rawMessages))
786
787 for index, rawMessage := range rawMessages {
788 i, err := unmarshalBasicIdentifiable(*rawMessage)
789 if err != nil {
790 return nil, err
791 }
792 iArray[index] = i
793 }
794 return iArray, nil
795 }
796
797
798 func (i Identifiable) MarshalJSON() ([]byte, error) {
799 i.Type = TypeIdentifiable
800 objectMap := make(map[string]interface{})
801 if i.Type != "" {
802 objectMap["_type"] = i.Type
803 }
804 return json.Marshal(objectMap)
805 }
806
807
808 func (i Identifiable) AsImageObject() (*ImageObject, bool) {
809 return nil, false
810 }
811
812
813 func (i Identifiable) AsVideoObject() (*VideoObject, bool) {
814 return nil, false
815 }
816
817
818 func (i Identifiable) AsVideos() (*Videos, bool) {
819 return nil, false
820 }
821
822
823 func (i Identifiable) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
824 return nil, false
825 }
826
827
828 func (i Identifiable) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
829 return nil, false
830 }
831
832
833 func (i Identifiable) AsAnswer() (*Answer, bool) {
834 return nil, false
835 }
836
837
838 func (i Identifiable) AsBasicAnswer() (BasicAnswer, bool) {
839 return nil, false
840 }
841
842
843 func (i Identifiable) AsMediaObject() (*MediaObject, bool) {
844 return nil, false
845 }
846
847
848 func (i Identifiable) AsBasicMediaObject() (BasicMediaObject, bool) {
849 return nil, false
850 }
851
852
853 func (i Identifiable) AsResponse() (*Response, bool) {
854 return nil, false
855 }
856
857
858 func (i Identifiable) AsBasicResponse() (BasicResponse, bool) {
859 return nil, false
860 }
861
862
863 func (i Identifiable) AsThing() (*Thing, bool) {
864 return nil, false
865 }
866
867
868 func (i Identifiable) AsBasicThing() (BasicThing, bool) {
869 return nil, false
870 }
871
872
873 func (i Identifiable) AsCreativeWork() (*CreativeWork, bool) {
874 return nil, false
875 }
876
877
878 func (i Identifiable) AsBasicCreativeWork() (BasicCreativeWork, bool) {
879 return nil, false
880 }
881
882
883 func (i Identifiable) AsIdentifiable() (*Identifiable, bool) {
884 return &i, true
885 }
886
887
888 func (i Identifiable) AsBasicIdentifiable() (BasicIdentifiable, bool) {
889 return &i, true
890 }
891
892
893 func (i Identifiable) AsErrorResponse() (*ErrorResponse, bool) {
894 return nil, false
895 }
896
897
898 func (i Identifiable) AsTrendingVideos() (*TrendingVideos, bool) {
899 return nil, false
900 }
901
902
903 func (i Identifiable) AsVideoDetails() (*VideoDetails, bool) {
904 return nil, false
905 }
906
907
908 func (i Identifiable) AsResponseBase() (*ResponseBase, bool) {
909 return nil, false
910 }
911
912
913 func (i Identifiable) AsBasicResponseBase() (BasicResponseBase, bool) {
914 return &i, true
915 }
916
917
918 type ImageObject struct {
919
920 Thumbnail *ImageObject `json:"thumbnail,omitempty"`
921
922 ContentURL *string `json:"contentUrl,omitempty"`
923
924 HostPageURL *string `json:"hostPageUrl,omitempty"`
925
926 Width *int32 `json:"width,omitempty"`
927
928 Height *int32 `json:"height,omitempty"`
929
930 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
931
932 Provider *[]BasicThing `json:"provider,omitempty"`
933
934 Text *string `json:"text,omitempty"`
935
936 Name *string `json:"name,omitempty"`
937
938 URL *string `json:"url,omitempty"`
939
940 Image *ImageObject `json:"image,omitempty"`
941
942 Description *string `json:"description,omitempty"`
943
944 AlternateName *string `json:"alternateName,omitempty"`
945
946 BingID *string `json:"bingId,omitempty"`
947
948 WebSearchURL *string `json:"webSearchUrl,omitempty"`
949
950 ID *string `json:"id,omitempty"`
951
952 Type Type `json:"_type,omitempty"`
953 }
954
955
956 func (ioVar ImageObject) MarshalJSON() ([]byte, error) {
957 ioVar.Type = TypeImageObject
958 objectMap := make(map[string]interface{})
959 if ioVar.Type != "" {
960 objectMap["_type"] = ioVar.Type
961 }
962 return json.Marshal(objectMap)
963 }
964
965
966 func (ioVar ImageObject) AsImageObject() (*ImageObject, bool) {
967 return &ioVar, true
968 }
969
970
971 func (ioVar ImageObject) AsVideoObject() (*VideoObject, bool) {
972 return nil, false
973 }
974
975
976 func (ioVar ImageObject) AsVideos() (*Videos, bool) {
977 return nil, false
978 }
979
980
981 func (ioVar ImageObject) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
982 return nil, false
983 }
984
985
986 func (ioVar ImageObject) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
987 return nil, false
988 }
989
990
991 func (ioVar ImageObject) AsAnswer() (*Answer, bool) {
992 return nil, false
993 }
994
995
996 func (ioVar ImageObject) AsBasicAnswer() (BasicAnswer, bool) {
997 return nil, false
998 }
999
1000
1001 func (ioVar ImageObject) AsMediaObject() (*MediaObject, bool) {
1002 return nil, false
1003 }
1004
1005
1006 func (ioVar ImageObject) AsBasicMediaObject() (BasicMediaObject, bool) {
1007 return &ioVar, true
1008 }
1009
1010
1011 func (ioVar ImageObject) AsResponse() (*Response, bool) {
1012 return nil, false
1013 }
1014
1015
1016 func (ioVar ImageObject) AsBasicResponse() (BasicResponse, bool) {
1017 return &ioVar, true
1018 }
1019
1020
1021 func (ioVar ImageObject) AsThing() (*Thing, bool) {
1022 return nil, false
1023 }
1024
1025
1026 func (ioVar ImageObject) AsBasicThing() (BasicThing, bool) {
1027 return &ioVar, true
1028 }
1029
1030
1031 func (ioVar ImageObject) AsCreativeWork() (*CreativeWork, bool) {
1032 return nil, false
1033 }
1034
1035
1036 func (ioVar ImageObject) AsBasicCreativeWork() (BasicCreativeWork, bool) {
1037 return &ioVar, true
1038 }
1039
1040
1041 func (ioVar ImageObject) AsIdentifiable() (*Identifiable, bool) {
1042 return nil, false
1043 }
1044
1045
1046 func (ioVar ImageObject) AsBasicIdentifiable() (BasicIdentifiable, bool) {
1047 return &ioVar, true
1048 }
1049
1050
1051 func (ioVar ImageObject) AsErrorResponse() (*ErrorResponse, bool) {
1052 return nil, false
1053 }
1054
1055
1056 func (ioVar ImageObject) AsTrendingVideos() (*TrendingVideos, bool) {
1057 return nil, false
1058 }
1059
1060
1061 func (ioVar ImageObject) AsVideoDetails() (*VideoDetails, bool) {
1062 return nil, false
1063 }
1064
1065
1066 func (ioVar ImageObject) AsResponseBase() (*ResponseBase, bool) {
1067 return nil, false
1068 }
1069
1070
1071 func (ioVar ImageObject) AsBasicResponseBase() (BasicResponseBase, bool) {
1072 return &ioVar, true
1073 }
1074
1075
1076 func (ioVar *ImageObject) UnmarshalJSON(body []byte) error {
1077 var m map[string]*json.RawMessage
1078 err := json.Unmarshal(body, &m)
1079 if err != nil {
1080 return err
1081 }
1082 for k, v := range m {
1083 switch k {
1084 case "thumbnail":
1085 if v != nil {
1086 var thumbnail ImageObject
1087 err = json.Unmarshal(*v, &thumbnail)
1088 if err != nil {
1089 return err
1090 }
1091 ioVar.Thumbnail = &thumbnail
1092 }
1093 case "contentUrl":
1094 if v != nil {
1095 var contentURL string
1096 err = json.Unmarshal(*v, &contentURL)
1097 if err != nil {
1098 return err
1099 }
1100 ioVar.ContentURL = &contentURL
1101 }
1102 case "hostPageUrl":
1103 if v != nil {
1104 var hostPageURL string
1105 err = json.Unmarshal(*v, &hostPageURL)
1106 if err != nil {
1107 return err
1108 }
1109 ioVar.HostPageURL = &hostPageURL
1110 }
1111 case "width":
1112 if v != nil {
1113 var width int32
1114 err = json.Unmarshal(*v, &width)
1115 if err != nil {
1116 return err
1117 }
1118 ioVar.Width = &width
1119 }
1120 case "height":
1121 if v != nil {
1122 var height int32
1123 err = json.Unmarshal(*v, &height)
1124 if err != nil {
1125 return err
1126 }
1127 ioVar.Height = &height
1128 }
1129 case "thumbnailUrl":
1130 if v != nil {
1131 var thumbnailURL string
1132 err = json.Unmarshal(*v, &thumbnailURL)
1133 if err != nil {
1134 return err
1135 }
1136 ioVar.ThumbnailURL = &thumbnailURL
1137 }
1138 case "provider":
1139 if v != nil {
1140 provider, err := unmarshalBasicThingArray(*v)
1141 if err != nil {
1142 return err
1143 }
1144 ioVar.Provider = &provider
1145 }
1146 case "text":
1147 if v != nil {
1148 var textVar string
1149 err = json.Unmarshal(*v, &textVar)
1150 if err != nil {
1151 return err
1152 }
1153 ioVar.Text = &textVar
1154 }
1155 case "name":
1156 if v != nil {
1157 var name string
1158 err = json.Unmarshal(*v, &name)
1159 if err != nil {
1160 return err
1161 }
1162 ioVar.Name = &name
1163 }
1164 case "url":
1165 if v != nil {
1166 var URL string
1167 err = json.Unmarshal(*v, &URL)
1168 if err != nil {
1169 return err
1170 }
1171 ioVar.URL = &URL
1172 }
1173 case "image":
1174 if v != nil {
1175 var imageVar ImageObject
1176 err = json.Unmarshal(*v, &imageVar)
1177 if err != nil {
1178 return err
1179 }
1180 ioVar.Image = &imageVar
1181 }
1182 case "description":
1183 if v != nil {
1184 var description string
1185 err = json.Unmarshal(*v, &description)
1186 if err != nil {
1187 return err
1188 }
1189 ioVar.Description = &description
1190 }
1191 case "alternateName":
1192 if v != nil {
1193 var alternateName string
1194 err = json.Unmarshal(*v, &alternateName)
1195 if err != nil {
1196 return err
1197 }
1198 ioVar.AlternateName = &alternateName
1199 }
1200 case "bingId":
1201 if v != nil {
1202 var bingID string
1203 err = json.Unmarshal(*v, &bingID)
1204 if err != nil {
1205 return err
1206 }
1207 ioVar.BingID = &bingID
1208 }
1209 case "webSearchUrl":
1210 if v != nil {
1211 var webSearchURL string
1212 err = json.Unmarshal(*v, &webSearchURL)
1213 if err != nil {
1214 return err
1215 }
1216 ioVar.WebSearchURL = &webSearchURL
1217 }
1218 case "id":
1219 if v != nil {
1220 var ID string
1221 err = json.Unmarshal(*v, &ID)
1222 if err != nil {
1223 return err
1224 }
1225 ioVar.ID = &ID
1226 }
1227 case "_type":
1228 if v != nil {
1229 var typeVar Type
1230 err = json.Unmarshal(*v, &typeVar)
1231 if err != nil {
1232 return err
1233 }
1234 ioVar.Type = typeVar
1235 }
1236 }
1237 }
1238
1239 return nil
1240 }
1241
1242
1243 type BasicMediaObject interface {
1244 AsImageObject() (*ImageObject, bool)
1245 AsVideoObject() (*VideoObject, bool)
1246 AsMediaObject() (*MediaObject, bool)
1247 }
1248
1249
1250 type MediaObject struct {
1251
1252 ContentURL *string `json:"contentUrl,omitempty"`
1253
1254 HostPageURL *string `json:"hostPageUrl,omitempty"`
1255
1256 Width *int32 `json:"width,omitempty"`
1257
1258 Height *int32 `json:"height,omitempty"`
1259
1260 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
1261
1262 Provider *[]BasicThing `json:"provider,omitempty"`
1263
1264 Text *string `json:"text,omitempty"`
1265
1266 Name *string `json:"name,omitempty"`
1267
1268 URL *string `json:"url,omitempty"`
1269
1270 Image *ImageObject `json:"image,omitempty"`
1271
1272 Description *string `json:"description,omitempty"`
1273
1274 AlternateName *string `json:"alternateName,omitempty"`
1275
1276 BingID *string `json:"bingId,omitempty"`
1277
1278 WebSearchURL *string `json:"webSearchUrl,omitempty"`
1279
1280 ID *string `json:"id,omitempty"`
1281
1282 Type Type `json:"_type,omitempty"`
1283 }
1284
1285 func unmarshalBasicMediaObject(body []byte) (BasicMediaObject, error) {
1286 var m map[string]interface{}
1287 err := json.Unmarshal(body, &m)
1288 if err != nil {
1289 return nil, err
1290 }
1291
1292 switch m["_type"] {
1293 case string(TypeImageObject):
1294 var ioVar ImageObject
1295 err := json.Unmarshal(body, &ioVar)
1296 return ioVar, err
1297 case string(TypeVideoObject):
1298 var vo VideoObject
1299 err := json.Unmarshal(body, &vo)
1300 return vo, err
1301 default:
1302 var mo MediaObject
1303 err := json.Unmarshal(body, &mo)
1304 return mo, err
1305 }
1306 }
1307 func unmarshalBasicMediaObjectArray(body []byte) ([]BasicMediaObject, error) {
1308 var rawMessages []*json.RawMessage
1309 err := json.Unmarshal(body, &rawMessages)
1310 if err != nil {
1311 return nil, err
1312 }
1313
1314 moArray := make([]BasicMediaObject, len(rawMessages))
1315
1316 for index, rawMessage := range rawMessages {
1317 mo, err := unmarshalBasicMediaObject(*rawMessage)
1318 if err != nil {
1319 return nil, err
1320 }
1321 moArray[index] = mo
1322 }
1323 return moArray, nil
1324 }
1325
1326
1327 func (mo MediaObject) MarshalJSON() ([]byte, error) {
1328 mo.Type = TypeMediaObject
1329 objectMap := make(map[string]interface{})
1330 if mo.Type != "" {
1331 objectMap["_type"] = mo.Type
1332 }
1333 return json.Marshal(objectMap)
1334 }
1335
1336
1337 func (mo MediaObject) AsImageObject() (*ImageObject, bool) {
1338 return nil, false
1339 }
1340
1341
1342 func (mo MediaObject) AsVideoObject() (*VideoObject, bool) {
1343 return nil, false
1344 }
1345
1346
1347 func (mo MediaObject) AsVideos() (*Videos, bool) {
1348 return nil, false
1349 }
1350
1351
1352 func (mo MediaObject) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
1353 return nil, false
1354 }
1355
1356
1357 func (mo MediaObject) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
1358 return nil, false
1359 }
1360
1361
1362 func (mo MediaObject) AsAnswer() (*Answer, bool) {
1363 return nil, false
1364 }
1365
1366
1367 func (mo MediaObject) AsBasicAnswer() (BasicAnswer, bool) {
1368 return nil, false
1369 }
1370
1371
1372 func (mo MediaObject) AsMediaObject() (*MediaObject, bool) {
1373 return &mo, true
1374 }
1375
1376
1377 func (mo MediaObject) AsBasicMediaObject() (BasicMediaObject, bool) {
1378 return &mo, true
1379 }
1380
1381
1382 func (mo MediaObject) AsResponse() (*Response, bool) {
1383 return nil, false
1384 }
1385
1386
1387 func (mo MediaObject) AsBasicResponse() (BasicResponse, bool) {
1388 return &mo, true
1389 }
1390
1391
1392 func (mo MediaObject) AsThing() (*Thing, bool) {
1393 return nil, false
1394 }
1395
1396
1397 func (mo MediaObject) AsBasicThing() (BasicThing, bool) {
1398 return &mo, true
1399 }
1400
1401
1402 func (mo MediaObject) AsCreativeWork() (*CreativeWork, bool) {
1403 return nil, false
1404 }
1405
1406
1407 func (mo MediaObject) AsBasicCreativeWork() (BasicCreativeWork, bool) {
1408 return &mo, true
1409 }
1410
1411
1412 func (mo MediaObject) AsIdentifiable() (*Identifiable, bool) {
1413 return nil, false
1414 }
1415
1416
1417 func (mo MediaObject) AsBasicIdentifiable() (BasicIdentifiable, bool) {
1418 return &mo, true
1419 }
1420
1421
1422 func (mo MediaObject) AsErrorResponse() (*ErrorResponse, bool) {
1423 return nil, false
1424 }
1425
1426
1427 func (mo MediaObject) AsTrendingVideos() (*TrendingVideos, bool) {
1428 return nil, false
1429 }
1430
1431
1432 func (mo MediaObject) AsVideoDetails() (*VideoDetails, bool) {
1433 return nil, false
1434 }
1435
1436
1437 func (mo MediaObject) AsResponseBase() (*ResponseBase, bool) {
1438 return nil, false
1439 }
1440
1441
1442 func (mo MediaObject) AsBasicResponseBase() (BasicResponseBase, bool) {
1443 return &mo, true
1444 }
1445
1446
1447 func (mo *MediaObject) UnmarshalJSON(body []byte) error {
1448 var m map[string]*json.RawMessage
1449 err := json.Unmarshal(body, &m)
1450 if err != nil {
1451 return err
1452 }
1453 for k, v := range m {
1454 switch k {
1455 case "contentUrl":
1456 if v != nil {
1457 var contentURL string
1458 err = json.Unmarshal(*v, &contentURL)
1459 if err != nil {
1460 return err
1461 }
1462 mo.ContentURL = &contentURL
1463 }
1464 case "hostPageUrl":
1465 if v != nil {
1466 var hostPageURL string
1467 err = json.Unmarshal(*v, &hostPageURL)
1468 if err != nil {
1469 return err
1470 }
1471 mo.HostPageURL = &hostPageURL
1472 }
1473 case "width":
1474 if v != nil {
1475 var width int32
1476 err = json.Unmarshal(*v, &width)
1477 if err != nil {
1478 return err
1479 }
1480 mo.Width = &width
1481 }
1482 case "height":
1483 if v != nil {
1484 var height int32
1485 err = json.Unmarshal(*v, &height)
1486 if err != nil {
1487 return err
1488 }
1489 mo.Height = &height
1490 }
1491 case "thumbnailUrl":
1492 if v != nil {
1493 var thumbnailURL string
1494 err = json.Unmarshal(*v, &thumbnailURL)
1495 if err != nil {
1496 return err
1497 }
1498 mo.ThumbnailURL = &thumbnailURL
1499 }
1500 case "provider":
1501 if v != nil {
1502 provider, err := unmarshalBasicThingArray(*v)
1503 if err != nil {
1504 return err
1505 }
1506 mo.Provider = &provider
1507 }
1508 case "text":
1509 if v != nil {
1510 var textVar string
1511 err = json.Unmarshal(*v, &textVar)
1512 if err != nil {
1513 return err
1514 }
1515 mo.Text = &textVar
1516 }
1517 case "name":
1518 if v != nil {
1519 var name string
1520 err = json.Unmarshal(*v, &name)
1521 if err != nil {
1522 return err
1523 }
1524 mo.Name = &name
1525 }
1526 case "url":
1527 if v != nil {
1528 var URL string
1529 err = json.Unmarshal(*v, &URL)
1530 if err != nil {
1531 return err
1532 }
1533 mo.URL = &URL
1534 }
1535 case "image":
1536 if v != nil {
1537 var imageVar ImageObject
1538 err = json.Unmarshal(*v, &imageVar)
1539 if err != nil {
1540 return err
1541 }
1542 mo.Image = &imageVar
1543 }
1544 case "description":
1545 if v != nil {
1546 var description string
1547 err = json.Unmarshal(*v, &description)
1548 if err != nil {
1549 return err
1550 }
1551 mo.Description = &description
1552 }
1553 case "alternateName":
1554 if v != nil {
1555 var alternateName string
1556 err = json.Unmarshal(*v, &alternateName)
1557 if err != nil {
1558 return err
1559 }
1560 mo.AlternateName = &alternateName
1561 }
1562 case "bingId":
1563 if v != nil {
1564 var bingID string
1565 err = json.Unmarshal(*v, &bingID)
1566 if err != nil {
1567 return err
1568 }
1569 mo.BingID = &bingID
1570 }
1571 case "webSearchUrl":
1572 if v != nil {
1573 var webSearchURL string
1574 err = json.Unmarshal(*v, &webSearchURL)
1575 if err != nil {
1576 return err
1577 }
1578 mo.WebSearchURL = &webSearchURL
1579 }
1580 case "id":
1581 if v != nil {
1582 var ID string
1583 err = json.Unmarshal(*v, &ID)
1584 if err != nil {
1585 return err
1586 }
1587 mo.ID = &ID
1588 }
1589 case "_type":
1590 if v != nil {
1591 var typeVar Type
1592 err = json.Unmarshal(*v, &typeVar)
1593 if err != nil {
1594 return err
1595 }
1596 mo.Type = typeVar
1597 }
1598 }
1599 }
1600
1601 return nil
1602 }
1603
1604
1605 type PivotSuggestions struct {
1606 Pivot *string `json:"pivot,omitempty"`
1607 Suggestions *[]Query `json:"suggestions,omitempty"`
1608 }
1609
1610
1611 type Query struct {
1612
1613 Text *string `json:"text,omitempty"`
1614
1615 DisplayText *string `json:"displayText,omitempty"`
1616
1617 WebSearchURL *string `json:"webSearchUrl,omitempty"`
1618
1619 SearchLink *string `json:"searchLink,omitempty"`
1620
1621 Thumbnail *ImageObject `json:"thumbnail,omitempty"`
1622 }
1623
1624
1625 func (q Query) MarshalJSON() ([]byte, error) {
1626 objectMap := make(map[string]interface{})
1627 if q.Text != nil {
1628 objectMap["text"] = q.Text
1629 }
1630 return json.Marshal(objectMap)
1631 }
1632
1633
1634 type QueryContext struct {
1635
1636 OriginalQuery *string `json:"originalQuery,omitempty"`
1637
1638 AlteredQuery *string `json:"alteredQuery,omitempty"`
1639
1640 AlterationOverrideQuery *string `json:"alterationOverrideQuery,omitempty"`
1641
1642 AdultIntent *bool `json:"adultIntent,omitempty"`
1643
1644 AskUserForLocation *bool `json:"askUserForLocation,omitempty"`
1645
1646 IsTransactional *bool `json:"isTransactional,omitempty"`
1647 }
1648
1649
1650 func (qc QueryContext) MarshalJSON() ([]byte, error) {
1651 objectMap := make(map[string]interface{})
1652 if qc.OriginalQuery != nil {
1653 objectMap["originalQuery"] = qc.OriginalQuery
1654 }
1655 return json.Marshal(objectMap)
1656 }
1657
1658
1659
1660 type BasicResponse interface {
1661 AsImageObject() (*ImageObject, bool)
1662 AsVideoObject() (*VideoObject, bool)
1663 AsVideos() (*Videos, bool)
1664 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
1665 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
1666 AsAnswer() (*Answer, bool)
1667 AsBasicAnswer() (BasicAnswer, bool)
1668 AsMediaObject() (*MediaObject, bool)
1669 AsBasicMediaObject() (BasicMediaObject, bool)
1670 AsThing() (*Thing, bool)
1671 AsBasicThing() (BasicThing, bool)
1672 AsCreativeWork() (*CreativeWork, bool)
1673 AsBasicCreativeWork() (BasicCreativeWork, bool)
1674 AsErrorResponse() (*ErrorResponse, bool)
1675 AsTrendingVideos() (*TrendingVideos, bool)
1676 AsVideoDetails() (*VideoDetails, bool)
1677 AsResponse() (*Response, bool)
1678 }
1679
1680
1681
1682 type Response struct {
1683
1684 WebSearchURL *string `json:"webSearchUrl,omitempty"`
1685
1686 ID *string `json:"id,omitempty"`
1687
1688 Type Type `json:"_type,omitempty"`
1689 }
1690
1691 func unmarshalBasicResponse(body []byte) (BasicResponse, error) {
1692 var m map[string]interface{}
1693 err := json.Unmarshal(body, &m)
1694 if err != nil {
1695 return nil, err
1696 }
1697
1698 switch m["_type"] {
1699 case string(TypeImageObject):
1700 var ioVar ImageObject
1701 err := json.Unmarshal(body, &ioVar)
1702 return ioVar, err
1703 case string(TypeVideoObject):
1704 var vo VideoObject
1705 err := json.Unmarshal(body, &vo)
1706 return vo, err
1707 case string(TypeVideos):
1708 var vVar Videos
1709 err := json.Unmarshal(body, &vVar)
1710 return vVar, err
1711 case string(TypeSearchResultsAnswer):
1712 var sra SearchResultsAnswer
1713 err := json.Unmarshal(body, &sra)
1714 return sra, err
1715 case string(TypeAnswer):
1716 var a Answer
1717 err := json.Unmarshal(body, &a)
1718 return a, err
1719 case string(TypeMediaObject):
1720 var mo MediaObject
1721 err := json.Unmarshal(body, &mo)
1722 return mo, err
1723 case string(TypeThing):
1724 var t Thing
1725 err := json.Unmarshal(body, &t)
1726 return t, err
1727 case string(TypeCreativeWork):
1728 var cw CreativeWork
1729 err := json.Unmarshal(body, &cw)
1730 return cw, err
1731 case string(TypeErrorResponse):
1732 var er ErrorResponse
1733 err := json.Unmarshal(body, &er)
1734 return er, err
1735 case string(TypeTrendingVideos):
1736 var tv TrendingVideos
1737 err := json.Unmarshal(body, &tv)
1738 return tv, err
1739 case string(TypeVideoDetails):
1740 var vd VideoDetails
1741 err := json.Unmarshal(body, &vd)
1742 return vd, err
1743 default:
1744 var r Response
1745 err := json.Unmarshal(body, &r)
1746 return r, err
1747 }
1748 }
1749 func unmarshalBasicResponseArray(body []byte) ([]BasicResponse, error) {
1750 var rawMessages []*json.RawMessage
1751 err := json.Unmarshal(body, &rawMessages)
1752 if err != nil {
1753 return nil, err
1754 }
1755
1756 rArray := make([]BasicResponse, len(rawMessages))
1757
1758 for index, rawMessage := range rawMessages {
1759 r, err := unmarshalBasicResponse(*rawMessage)
1760 if err != nil {
1761 return nil, err
1762 }
1763 rArray[index] = r
1764 }
1765 return rArray, nil
1766 }
1767
1768
1769 func (r Response) MarshalJSON() ([]byte, error) {
1770 r.Type = TypeResponse
1771 objectMap := make(map[string]interface{})
1772 if r.Type != "" {
1773 objectMap["_type"] = r.Type
1774 }
1775 return json.Marshal(objectMap)
1776 }
1777
1778
1779 func (r Response) AsImageObject() (*ImageObject, bool) {
1780 return nil, false
1781 }
1782
1783
1784 func (r Response) AsVideoObject() (*VideoObject, bool) {
1785 return nil, false
1786 }
1787
1788
1789 func (r Response) AsVideos() (*Videos, bool) {
1790 return nil, false
1791 }
1792
1793
1794 func (r Response) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
1795 return nil, false
1796 }
1797
1798
1799 func (r Response) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
1800 return nil, false
1801 }
1802
1803
1804 func (r Response) AsAnswer() (*Answer, bool) {
1805 return nil, false
1806 }
1807
1808
1809 func (r Response) AsBasicAnswer() (BasicAnswer, bool) {
1810 return nil, false
1811 }
1812
1813
1814 func (r Response) AsMediaObject() (*MediaObject, bool) {
1815 return nil, false
1816 }
1817
1818
1819 func (r Response) AsBasicMediaObject() (BasicMediaObject, bool) {
1820 return nil, false
1821 }
1822
1823
1824 func (r Response) AsResponse() (*Response, bool) {
1825 return &r, true
1826 }
1827
1828
1829 func (r Response) AsBasicResponse() (BasicResponse, bool) {
1830 return &r, true
1831 }
1832
1833
1834 func (r Response) AsThing() (*Thing, bool) {
1835 return nil, false
1836 }
1837
1838
1839 func (r Response) AsBasicThing() (BasicThing, bool) {
1840 return nil, false
1841 }
1842
1843
1844 func (r Response) AsCreativeWork() (*CreativeWork, bool) {
1845 return nil, false
1846 }
1847
1848
1849 func (r Response) AsBasicCreativeWork() (BasicCreativeWork, bool) {
1850 return nil, false
1851 }
1852
1853
1854 func (r Response) AsIdentifiable() (*Identifiable, bool) {
1855 return nil, false
1856 }
1857
1858
1859 func (r Response) AsBasicIdentifiable() (BasicIdentifiable, bool) {
1860 return &r, true
1861 }
1862
1863
1864 func (r Response) AsErrorResponse() (*ErrorResponse, bool) {
1865 return nil, false
1866 }
1867
1868
1869 func (r Response) AsTrendingVideos() (*TrendingVideos, bool) {
1870 return nil, false
1871 }
1872
1873
1874 func (r Response) AsVideoDetails() (*VideoDetails, bool) {
1875 return nil, false
1876 }
1877
1878
1879 func (r Response) AsResponseBase() (*ResponseBase, bool) {
1880 return nil, false
1881 }
1882
1883
1884 func (r Response) AsBasicResponseBase() (BasicResponseBase, bool) {
1885 return &r, true
1886 }
1887
1888
1889 type BasicResponseBase interface {
1890 AsImageObject() (*ImageObject, bool)
1891 AsVideoObject() (*VideoObject, bool)
1892 AsVideos() (*Videos, bool)
1893 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
1894 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
1895 AsAnswer() (*Answer, bool)
1896 AsBasicAnswer() (BasicAnswer, bool)
1897 AsMediaObject() (*MediaObject, bool)
1898 AsBasicMediaObject() (BasicMediaObject, bool)
1899 AsResponse() (*Response, bool)
1900 AsBasicResponse() (BasicResponse, bool)
1901 AsThing() (*Thing, bool)
1902 AsBasicThing() (BasicThing, bool)
1903 AsCreativeWork() (*CreativeWork, bool)
1904 AsBasicCreativeWork() (BasicCreativeWork, bool)
1905 AsIdentifiable() (*Identifiable, bool)
1906 AsBasicIdentifiable() (BasicIdentifiable, bool)
1907 AsErrorResponse() (*ErrorResponse, bool)
1908 AsTrendingVideos() (*TrendingVideos, bool)
1909 AsVideoDetails() (*VideoDetails, bool)
1910 AsResponseBase() (*ResponseBase, bool)
1911 }
1912
1913
1914 type ResponseBase struct {
1915
1916 Type Type `json:"_type,omitempty"`
1917 }
1918
1919 func unmarshalBasicResponseBase(body []byte) (BasicResponseBase, error) {
1920 var m map[string]interface{}
1921 err := json.Unmarshal(body, &m)
1922 if err != nil {
1923 return nil, err
1924 }
1925
1926 switch m["_type"] {
1927 case string(TypeImageObject):
1928 var ioVar ImageObject
1929 err := json.Unmarshal(body, &ioVar)
1930 return ioVar, err
1931 case string(TypeVideoObject):
1932 var vo VideoObject
1933 err := json.Unmarshal(body, &vo)
1934 return vo, err
1935 case string(TypeVideos):
1936 var vVar Videos
1937 err := json.Unmarshal(body, &vVar)
1938 return vVar, err
1939 case string(TypeSearchResultsAnswer):
1940 var sra SearchResultsAnswer
1941 err := json.Unmarshal(body, &sra)
1942 return sra, err
1943 case string(TypeAnswer):
1944 var a Answer
1945 err := json.Unmarshal(body, &a)
1946 return a, err
1947 case string(TypeMediaObject):
1948 var mo MediaObject
1949 err := json.Unmarshal(body, &mo)
1950 return mo, err
1951 case string(TypeResponse):
1952 var r Response
1953 err := json.Unmarshal(body, &r)
1954 return r, err
1955 case string(TypeThing):
1956 var t Thing
1957 err := json.Unmarshal(body, &t)
1958 return t, err
1959 case string(TypeCreativeWork):
1960 var cw CreativeWork
1961 err := json.Unmarshal(body, &cw)
1962 return cw, err
1963 case string(TypeIdentifiable):
1964 var i Identifiable
1965 err := json.Unmarshal(body, &i)
1966 return i, err
1967 case string(TypeErrorResponse):
1968 var er ErrorResponse
1969 err := json.Unmarshal(body, &er)
1970 return er, err
1971 case string(TypeTrendingVideos):
1972 var tv TrendingVideos
1973 err := json.Unmarshal(body, &tv)
1974 return tv, err
1975 case string(TypeVideoDetails):
1976 var vd VideoDetails
1977 err := json.Unmarshal(body, &vd)
1978 return vd, err
1979 default:
1980 var rb ResponseBase
1981 err := json.Unmarshal(body, &rb)
1982 return rb, err
1983 }
1984 }
1985 func unmarshalBasicResponseBaseArray(body []byte) ([]BasicResponseBase, error) {
1986 var rawMessages []*json.RawMessage
1987 err := json.Unmarshal(body, &rawMessages)
1988 if err != nil {
1989 return nil, err
1990 }
1991
1992 rbArray := make([]BasicResponseBase, len(rawMessages))
1993
1994 for index, rawMessage := range rawMessages {
1995 rb, err := unmarshalBasicResponseBase(*rawMessage)
1996 if err != nil {
1997 return nil, err
1998 }
1999 rbArray[index] = rb
2000 }
2001 return rbArray, nil
2002 }
2003
2004
2005 func (rb ResponseBase) MarshalJSON() ([]byte, error) {
2006 rb.Type = TypeResponseBase
2007 objectMap := make(map[string]interface{})
2008 if rb.Type != "" {
2009 objectMap["_type"] = rb.Type
2010 }
2011 return json.Marshal(objectMap)
2012 }
2013
2014
2015 func (rb ResponseBase) AsImageObject() (*ImageObject, bool) {
2016 return nil, false
2017 }
2018
2019
2020 func (rb ResponseBase) AsVideoObject() (*VideoObject, bool) {
2021 return nil, false
2022 }
2023
2024
2025 func (rb ResponseBase) AsVideos() (*Videos, bool) {
2026 return nil, false
2027 }
2028
2029
2030 func (rb ResponseBase) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2031 return nil, false
2032 }
2033
2034
2035 func (rb ResponseBase) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2036 return nil, false
2037 }
2038
2039
2040 func (rb ResponseBase) AsAnswer() (*Answer, bool) {
2041 return nil, false
2042 }
2043
2044
2045 func (rb ResponseBase) AsBasicAnswer() (BasicAnswer, bool) {
2046 return nil, false
2047 }
2048
2049
2050 func (rb ResponseBase) AsMediaObject() (*MediaObject, bool) {
2051 return nil, false
2052 }
2053
2054
2055 func (rb ResponseBase) AsBasicMediaObject() (BasicMediaObject, bool) {
2056 return nil, false
2057 }
2058
2059
2060 func (rb ResponseBase) AsResponse() (*Response, bool) {
2061 return nil, false
2062 }
2063
2064
2065 func (rb ResponseBase) AsBasicResponse() (BasicResponse, bool) {
2066 return nil, false
2067 }
2068
2069
2070 func (rb ResponseBase) AsThing() (*Thing, bool) {
2071 return nil, false
2072 }
2073
2074
2075 func (rb ResponseBase) AsBasicThing() (BasicThing, bool) {
2076 return nil, false
2077 }
2078
2079
2080 func (rb ResponseBase) AsCreativeWork() (*CreativeWork, bool) {
2081 return nil, false
2082 }
2083
2084
2085 func (rb ResponseBase) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2086 return nil, false
2087 }
2088
2089
2090 func (rb ResponseBase) AsIdentifiable() (*Identifiable, bool) {
2091 return nil, false
2092 }
2093
2094
2095 func (rb ResponseBase) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2096 return nil, false
2097 }
2098
2099
2100 func (rb ResponseBase) AsErrorResponse() (*ErrorResponse, bool) {
2101 return nil, false
2102 }
2103
2104
2105 func (rb ResponseBase) AsTrendingVideos() (*TrendingVideos, bool) {
2106 return nil, false
2107 }
2108
2109
2110 func (rb ResponseBase) AsVideoDetails() (*VideoDetails, bool) {
2111 return nil, false
2112 }
2113
2114
2115 func (rb ResponseBase) AsResponseBase() (*ResponseBase, bool) {
2116 return &rb, true
2117 }
2118
2119
2120 func (rb ResponseBase) AsBasicResponseBase() (BasicResponseBase, bool) {
2121 return &rb, true
2122 }
2123
2124
2125 type BasicSearchResultsAnswer interface {
2126 AsVideos() (*Videos, bool)
2127 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
2128 }
2129
2130
2131 type SearchResultsAnswer struct {
2132
2133 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
2134
2135 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
2136
2137 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
2138
2139 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2140
2141 ID *string `json:"id,omitempty"`
2142
2143 Type Type `json:"_type,omitempty"`
2144 }
2145
2146 func unmarshalBasicSearchResultsAnswer(body []byte) (BasicSearchResultsAnswer, error) {
2147 var m map[string]interface{}
2148 err := json.Unmarshal(body, &m)
2149 if err != nil {
2150 return nil, err
2151 }
2152
2153 switch m["_type"] {
2154 case string(TypeVideos):
2155 var vVar Videos
2156 err := json.Unmarshal(body, &vVar)
2157 return vVar, err
2158 default:
2159 var sra SearchResultsAnswer
2160 err := json.Unmarshal(body, &sra)
2161 return sra, err
2162 }
2163 }
2164 func unmarshalBasicSearchResultsAnswerArray(body []byte) ([]BasicSearchResultsAnswer, error) {
2165 var rawMessages []*json.RawMessage
2166 err := json.Unmarshal(body, &rawMessages)
2167 if err != nil {
2168 return nil, err
2169 }
2170
2171 sraArray := make([]BasicSearchResultsAnswer, len(rawMessages))
2172
2173 for index, rawMessage := range rawMessages {
2174 sra, err := unmarshalBasicSearchResultsAnswer(*rawMessage)
2175 if err != nil {
2176 return nil, err
2177 }
2178 sraArray[index] = sra
2179 }
2180 return sraArray, nil
2181 }
2182
2183
2184 func (sra SearchResultsAnswer) MarshalJSON() ([]byte, error) {
2185 sra.Type = TypeSearchResultsAnswer
2186 objectMap := make(map[string]interface{})
2187 if sra.Type != "" {
2188 objectMap["_type"] = sra.Type
2189 }
2190 return json.Marshal(objectMap)
2191 }
2192
2193
2194 func (sra SearchResultsAnswer) AsImageObject() (*ImageObject, bool) {
2195 return nil, false
2196 }
2197
2198
2199 func (sra SearchResultsAnswer) AsVideoObject() (*VideoObject, bool) {
2200 return nil, false
2201 }
2202
2203
2204 func (sra SearchResultsAnswer) AsVideos() (*Videos, bool) {
2205 return nil, false
2206 }
2207
2208
2209 func (sra SearchResultsAnswer) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2210 return &sra, true
2211 }
2212
2213
2214 func (sra SearchResultsAnswer) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2215 return &sra, true
2216 }
2217
2218
2219 func (sra SearchResultsAnswer) AsAnswer() (*Answer, bool) {
2220 return nil, false
2221 }
2222
2223
2224 func (sra SearchResultsAnswer) AsBasicAnswer() (BasicAnswer, bool) {
2225 return &sra, true
2226 }
2227
2228
2229 func (sra SearchResultsAnswer) AsMediaObject() (*MediaObject, bool) {
2230 return nil, false
2231 }
2232
2233
2234 func (sra SearchResultsAnswer) AsBasicMediaObject() (BasicMediaObject, bool) {
2235 return nil, false
2236 }
2237
2238
2239 func (sra SearchResultsAnswer) AsResponse() (*Response, bool) {
2240 return nil, false
2241 }
2242
2243
2244 func (sra SearchResultsAnswer) AsBasicResponse() (BasicResponse, bool) {
2245 return &sra, true
2246 }
2247
2248
2249 func (sra SearchResultsAnswer) AsThing() (*Thing, bool) {
2250 return nil, false
2251 }
2252
2253
2254 func (sra SearchResultsAnswer) AsBasicThing() (BasicThing, bool) {
2255 return nil, false
2256 }
2257
2258
2259 func (sra SearchResultsAnswer) AsCreativeWork() (*CreativeWork, bool) {
2260 return nil, false
2261 }
2262
2263
2264 func (sra SearchResultsAnswer) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2265 return nil, false
2266 }
2267
2268
2269 func (sra SearchResultsAnswer) AsIdentifiable() (*Identifiable, bool) {
2270 return nil, false
2271 }
2272
2273
2274 func (sra SearchResultsAnswer) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2275 return &sra, true
2276 }
2277
2278
2279 func (sra SearchResultsAnswer) AsErrorResponse() (*ErrorResponse, bool) {
2280 return nil, false
2281 }
2282
2283
2284 func (sra SearchResultsAnswer) AsTrendingVideos() (*TrendingVideos, bool) {
2285 return nil, false
2286 }
2287
2288
2289 func (sra SearchResultsAnswer) AsVideoDetails() (*VideoDetails, bool) {
2290 return nil, false
2291 }
2292
2293
2294 func (sra SearchResultsAnswer) AsResponseBase() (*ResponseBase, bool) {
2295 return nil, false
2296 }
2297
2298
2299 func (sra SearchResultsAnswer) AsBasicResponseBase() (BasicResponseBase, bool) {
2300 return &sra, true
2301 }
2302
2303
2304 type BasicThing interface {
2305 AsImageObject() (*ImageObject, bool)
2306 AsVideoObject() (*VideoObject, bool)
2307 AsMediaObject() (*MediaObject, bool)
2308 AsBasicMediaObject() (BasicMediaObject, bool)
2309 AsCreativeWork() (*CreativeWork, bool)
2310 AsBasicCreativeWork() (BasicCreativeWork, bool)
2311 AsThing() (*Thing, bool)
2312 }
2313
2314
2315 type Thing struct {
2316
2317 Name *string `json:"name,omitempty"`
2318
2319 URL *string `json:"url,omitempty"`
2320
2321 Image *ImageObject `json:"image,omitempty"`
2322
2323 Description *string `json:"description,omitempty"`
2324
2325 AlternateName *string `json:"alternateName,omitempty"`
2326
2327 BingID *string `json:"bingId,omitempty"`
2328
2329 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2330
2331 ID *string `json:"id,omitempty"`
2332
2333 Type Type `json:"_type,omitempty"`
2334 }
2335
2336 func unmarshalBasicThing(body []byte) (BasicThing, error) {
2337 var m map[string]interface{}
2338 err := json.Unmarshal(body, &m)
2339 if err != nil {
2340 return nil, err
2341 }
2342
2343 switch m["_type"] {
2344 case string(TypeImageObject):
2345 var ioVar ImageObject
2346 err := json.Unmarshal(body, &ioVar)
2347 return ioVar, err
2348 case string(TypeVideoObject):
2349 var vo VideoObject
2350 err := json.Unmarshal(body, &vo)
2351 return vo, err
2352 case string(TypeMediaObject):
2353 var mo MediaObject
2354 err := json.Unmarshal(body, &mo)
2355 return mo, err
2356 case string(TypeCreativeWork):
2357 var cw CreativeWork
2358 err := json.Unmarshal(body, &cw)
2359 return cw, err
2360 default:
2361 var t Thing
2362 err := json.Unmarshal(body, &t)
2363 return t, err
2364 }
2365 }
2366 func unmarshalBasicThingArray(body []byte) ([]BasicThing, error) {
2367 var rawMessages []*json.RawMessage
2368 err := json.Unmarshal(body, &rawMessages)
2369 if err != nil {
2370 return nil, err
2371 }
2372
2373 tArray := make([]BasicThing, len(rawMessages))
2374
2375 for index, rawMessage := range rawMessages {
2376 t, err := unmarshalBasicThing(*rawMessage)
2377 if err != nil {
2378 return nil, err
2379 }
2380 tArray[index] = t
2381 }
2382 return tArray, nil
2383 }
2384
2385
2386 func (t Thing) MarshalJSON() ([]byte, error) {
2387 t.Type = TypeThing
2388 objectMap := make(map[string]interface{})
2389 if t.Type != "" {
2390 objectMap["_type"] = t.Type
2391 }
2392 return json.Marshal(objectMap)
2393 }
2394
2395
2396 func (t Thing) AsImageObject() (*ImageObject, bool) {
2397 return nil, false
2398 }
2399
2400
2401 func (t Thing) AsVideoObject() (*VideoObject, bool) {
2402 return nil, false
2403 }
2404
2405
2406 func (t Thing) AsVideos() (*Videos, bool) {
2407 return nil, false
2408 }
2409
2410
2411 func (t Thing) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2412 return nil, false
2413 }
2414
2415
2416 func (t Thing) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2417 return nil, false
2418 }
2419
2420
2421 func (t Thing) AsAnswer() (*Answer, bool) {
2422 return nil, false
2423 }
2424
2425
2426 func (t Thing) AsBasicAnswer() (BasicAnswer, bool) {
2427 return nil, false
2428 }
2429
2430
2431 func (t Thing) AsMediaObject() (*MediaObject, bool) {
2432 return nil, false
2433 }
2434
2435
2436 func (t Thing) AsBasicMediaObject() (BasicMediaObject, bool) {
2437 return nil, false
2438 }
2439
2440
2441 func (t Thing) AsResponse() (*Response, bool) {
2442 return nil, false
2443 }
2444
2445
2446 func (t Thing) AsBasicResponse() (BasicResponse, bool) {
2447 return &t, true
2448 }
2449
2450
2451 func (t Thing) AsThing() (*Thing, bool) {
2452 return &t, true
2453 }
2454
2455
2456 func (t Thing) AsBasicThing() (BasicThing, bool) {
2457 return &t, true
2458 }
2459
2460
2461 func (t Thing) AsCreativeWork() (*CreativeWork, bool) {
2462 return nil, false
2463 }
2464
2465
2466 func (t Thing) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2467 return nil, false
2468 }
2469
2470
2471 func (t Thing) AsIdentifiable() (*Identifiable, bool) {
2472 return nil, false
2473 }
2474
2475
2476 func (t Thing) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2477 return &t, true
2478 }
2479
2480
2481 func (t Thing) AsErrorResponse() (*ErrorResponse, bool) {
2482 return nil, false
2483 }
2484
2485
2486 func (t Thing) AsTrendingVideos() (*TrendingVideos, bool) {
2487 return nil, false
2488 }
2489
2490
2491 func (t Thing) AsVideoDetails() (*VideoDetails, bool) {
2492 return nil, false
2493 }
2494
2495
2496 func (t Thing) AsResponseBase() (*ResponseBase, bool) {
2497 return nil, false
2498 }
2499
2500
2501 func (t Thing) AsBasicResponseBase() (BasicResponseBase, bool) {
2502 return &t, true
2503 }
2504
2505
2506 type TrendingVideos struct {
2507 autorest.Response `json:"-"`
2508 BannerTiles *[]TrendingVideosTile `json:"bannerTiles,omitempty"`
2509 Categories *[]TrendingVideosCategory `json:"categories,omitempty"`
2510
2511 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2512
2513 ID *string `json:"id,omitempty"`
2514
2515 Type Type `json:"_type,omitempty"`
2516 }
2517
2518
2519 func (tv TrendingVideos) MarshalJSON() ([]byte, error) {
2520 tv.Type = TypeTrendingVideos
2521 objectMap := make(map[string]interface{})
2522 if tv.BannerTiles != nil {
2523 objectMap["bannerTiles"] = tv.BannerTiles
2524 }
2525 if tv.Categories != nil {
2526 objectMap["categories"] = tv.Categories
2527 }
2528 if tv.Type != "" {
2529 objectMap["_type"] = tv.Type
2530 }
2531 return json.Marshal(objectMap)
2532 }
2533
2534
2535 func (tv TrendingVideos) AsImageObject() (*ImageObject, bool) {
2536 return nil, false
2537 }
2538
2539
2540 func (tv TrendingVideos) AsVideoObject() (*VideoObject, bool) {
2541 return nil, false
2542 }
2543
2544
2545 func (tv TrendingVideos) AsVideos() (*Videos, bool) {
2546 return nil, false
2547 }
2548
2549
2550 func (tv TrendingVideos) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2551 return nil, false
2552 }
2553
2554
2555 func (tv TrendingVideos) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2556 return nil, false
2557 }
2558
2559
2560 func (tv TrendingVideos) AsAnswer() (*Answer, bool) {
2561 return nil, false
2562 }
2563
2564
2565 func (tv TrendingVideos) AsBasicAnswer() (BasicAnswer, bool) {
2566 return nil, false
2567 }
2568
2569
2570 func (tv TrendingVideos) AsMediaObject() (*MediaObject, bool) {
2571 return nil, false
2572 }
2573
2574
2575 func (tv TrendingVideos) AsBasicMediaObject() (BasicMediaObject, bool) {
2576 return nil, false
2577 }
2578
2579
2580 func (tv TrendingVideos) AsResponse() (*Response, bool) {
2581 return nil, false
2582 }
2583
2584
2585 func (tv TrendingVideos) AsBasicResponse() (BasicResponse, bool) {
2586 return &tv, true
2587 }
2588
2589
2590 func (tv TrendingVideos) AsThing() (*Thing, bool) {
2591 return nil, false
2592 }
2593
2594
2595 func (tv TrendingVideos) AsBasicThing() (BasicThing, bool) {
2596 return nil, false
2597 }
2598
2599
2600 func (tv TrendingVideos) AsCreativeWork() (*CreativeWork, bool) {
2601 return nil, false
2602 }
2603
2604
2605 func (tv TrendingVideos) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2606 return nil, false
2607 }
2608
2609
2610 func (tv TrendingVideos) AsIdentifiable() (*Identifiable, bool) {
2611 return nil, false
2612 }
2613
2614
2615 func (tv TrendingVideos) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2616 return &tv, true
2617 }
2618
2619
2620 func (tv TrendingVideos) AsErrorResponse() (*ErrorResponse, bool) {
2621 return nil, false
2622 }
2623
2624
2625 func (tv TrendingVideos) AsTrendingVideos() (*TrendingVideos, bool) {
2626 return &tv, true
2627 }
2628
2629
2630 func (tv TrendingVideos) AsVideoDetails() (*VideoDetails, bool) {
2631 return nil, false
2632 }
2633
2634
2635 func (tv TrendingVideos) AsResponseBase() (*ResponseBase, bool) {
2636 return nil, false
2637 }
2638
2639
2640 func (tv TrendingVideos) AsBasicResponseBase() (BasicResponseBase, bool) {
2641 return &tv, true
2642 }
2643
2644
2645 type TrendingVideosCategory struct {
2646 Title *string `json:"title,omitempty"`
2647 Subcategories *[]TrendingVideosSubcategory `json:"subcategories,omitempty"`
2648 }
2649
2650
2651 type TrendingVideosSubcategory struct {
2652 Title *string `json:"title,omitempty"`
2653 Tiles *[]TrendingVideosTile `json:"tiles,omitempty"`
2654 }
2655
2656
2657 type TrendingVideosTile struct {
2658 Query *Query `json:"query,omitempty"`
2659 Image *ImageObject `json:"image,omitempty"`
2660 }
2661
2662
2663 type VideoDetails struct {
2664 autorest.Response `json:"-"`
2665
2666 RelatedVideos *VideosModule `json:"relatedVideos,omitempty"`
2667
2668 VideoResult *VideoObject `json:"videoResult,omitempty"`
2669
2670 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2671
2672 ID *string `json:"id,omitempty"`
2673
2674 Type Type `json:"_type,omitempty"`
2675 }
2676
2677
2678 func (vd VideoDetails) MarshalJSON() ([]byte, error) {
2679 vd.Type = TypeVideoDetails
2680 objectMap := make(map[string]interface{})
2681 if vd.Type != "" {
2682 objectMap["_type"] = vd.Type
2683 }
2684 return json.Marshal(objectMap)
2685 }
2686
2687
2688 func (vd VideoDetails) AsImageObject() (*ImageObject, bool) {
2689 return nil, false
2690 }
2691
2692
2693 func (vd VideoDetails) AsVideoObject() (*VideoObject, bool) {
2694 return nil, false
2695 }
2696
2697
2698 func (vd VideoDetails) AsVideos() (*Videos, bool) {
2699 return nil, false
2700 }
2701
2702
2703 func (vd VideoDetails) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2704 return nil, false
2705 }
2706
2707
2708 func (vd VideoDetails) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2709 return nil, false
2710 }
2711
2712
2713 func (vd VideoDetails) AsAnswer() (*Answer, bool) {
2714 return nil, false
2715 }
2716
2717
2718 func (vd VideoDetails) AsBasicAnswer() (BasicAnswer, bool) {
2719 return nil, false
2720 }
2721
2722
2723 func (vd VideoDetails) AsMediaObject() (*MediaObject, bool) {
2724 return nil, false
2725 }
2726
2727
2728 func (vd VideoDetails) AsBasicMediaObject() (BasicMediaObject, bool) {
2729 return nil, false
2730 }
2731
2732
2733 func (vd VideoDetails) AsResponse() (*Response, bool) {
2734 return nil, false
2735 }
2736
2737
2738 func (vd VideoDetails) AsBasicResponse() (BasicResponse, bool) {
2739 return &vd, true
2740 }
2741
2742
2743 func (vd VideoDetails) AsThing() (*Thing, bool) {
2744 return nil, false
2745 }
2746
2747
2748 func (vd VideoDetails) AsBasicThing() (BasicThing, bool) {
2749 return nil, false
2750 }
2751
2752
2753 func (vd VideoDetails) AsCreativeWork() (*CreativeWork, bool) {
2754 return nil, false
2755 }
2756
2757
2758 func (vd VideoDetails) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2759 return nil, false
2760 }
2761
2762
2763 func (vd VideoDetails) AsIdentifiable() (*Identifiable, bool) {
2764 return nil, false
2765 }
2766
2767
2768 func (vd VideoDetails) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2769 return &vd, true
2770 }
2771
2772
2773 func (vd VideoDetails) AsErrorResponse() (*ErrorResponse, bool) {
2774 return nil, false
2775 }
2776
2777
2778 func (vd VideoDetails) AsTrendingVideos() (*TrendingVideos, bool) {
2779 return nil, false
2780 }
2781
2782
2783 func (vd VideoDetails) AsVideoDetails() (*VideoDetails, bool) {
2784 return &vd, true
2785 }
2786
2787
2788 func (vd VideoDetails) AsResponseBase() (*ResponseBase, bool) {
2789 return nil, false
2790 }
2791
2792
2793 func (vd VideoDetails) AsBasicResponseBase() (BasicResponseBase, bool) {
2794 return &vd, true
2795 }
2796
2797
2798 type VideoObject struct {
2799
2800 MotionThumbnailURL *string `json:"motionThumbnailUrl,omitempty"`
2801
2802 MotionThumbnailID *string `json:"motionThumbnailId,omitempty"`
2803
2804 EmbedHTML *string `json:"embedHtml,omitempty"`
2805
2806 AllowHTTPSEmbed *bool `json:"allowHttpsEmbed,omitempty"`
2807
2808 ViewCount *int32 `json:"viewCount,omitempty"`
2809
2810 Thumbnail *ImageObject `json:"thumbnail,omitempty"`
2811
2812 VideoID *string `json:"videoId,omitempty"`
2813
2814 AllowMobileEmbed *bool `json:"allowMobileEmbed,omitempty"`
2815
2816 IsSuperfresh *bool `json:"isSuperfresh,omitempty"`
2817
2818 ContentURL *string `json:"contentUrl,omitempty"`
2819
2820 HostPageURL *string `json:"hostPageUrl,omitempty"`
2821
2822 Width *int32 `json:"width,omitempty"`
2823
2824 Height *int32 `json:"height,omitempty"`
2825
2826 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
2827
2828 Provider *[]BasicThing `json:"provider,omitempty"`
2829
2830 Text *string `json:"text,omitempty"`
2831
2832 Name *string `json:"name,omitempty"`
2833
2834 URL *string `json:"url,omitempty"`
2835
2836 Image *ImageObject `json:"image,omitempty"`
2837
2838 Description *string `json:"description,omitempty"`
2839
2840 AlternateName *string `json:"alternateName,omitempty"`
2841
2842 BingID *string `json:"bingId,omitempty"`
2843
2844 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2845
2846 ID *string `json:"id,omitempty"`
2847
2848 Type Type `json:"_type,omitempty"`
2849 }
2850
2851
2852 func (vo VideoObject) MarshalJSON() ([]byte, error) {
2853 vo.Type = TypeVideoObject
2854 objectMap := make(map[string]interface{})
2855 if vo.Type != "" {
2856 objectMap["_type"] = vo.Type
2857 }
2858 return json.Marshal(objectMap)
2859 }
2860
2861
2862 func (vo VideoObject) AsImageObject() (*ImageObject, bool) {
2863 return nil, false
2864 }
2865
2866
2867 func (vo VideoObject) AsVideoObject() (*VideoObject, bool) {
2868 return &vo, true
2869 }
2870
2871
2872 func (vo VideoObject) AsVideos() (*Videos, bool) {
2873 return nil, false
2874 }
2875
2876
2877 func (vo VideoObject) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2878 return nil, false
2879 }
2880
2881
2882 func (vo VideoObject) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2883 return nil, false
2884 }
2885
2886
2887 func (vo VideoObject) AsAnswer() (*Answer, bool) {
2888 return nil, false
2889 }
2890
2891
2892 func (vo VideoObject) AsBasicAnswer() (BasicAnswer, bool) {
2893 return nil, false
2894 }
2895
2896
2897 func (vo VideoObject) AsMediaObject() (*MediaObject, bool) {
2898 return nil, false
2899 }
2900
2901
2902 func (vo VideoObject) AsBasicMediaObject() (BasicMediaObject, bool) {
2903 return &vo, true
2904 }
2905
2906
2907 func (vo VideoObject) AsResponse() (*Response, bool) {
2908 return nil, false
2909 }
2910
2911
2912 func (vo VideoObject) AsBasicResponse() (BasicResponse, bool) {
2913 return &vo, true
2914 }
2915
2916
2917 func (vo VideoObject) AsThing() (*Thing, bool) {
2918 return nil, false
2919 }
2920
2921
2922 func (vo VideoObject) AsBasicThing() (BasicThing, bool) {
2923 return &vo, true
2924 }
2925
2926
2927 func (vo VideoObject) AsCreativeWork() (*CreativeWork, bool) {
2928 return nil, false
2929 }
2930
2931
2932 func (vo VideoObject) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2933 return &vo, true
2934 }
2935
2936
2937 func (vo VideoObject) AsIdentifiable() (*Identifiable, bool) {
2938 return nil, false
2939 }
2940
2941
2942 func (vo VideoObject) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2943 return &vo, true
2944 }
2945
2946
2947 func (vo VideoObject) AsErrorResponse() (*ErrorResponse, bool) {
2948 return nil, false
2949 }
2950
2951
2952 func (vo VideoObject) AsTrendingVideos() (*TrendingVideos, bool) {
2953 return nil, false
2954 }
2955
2956
2957 func (vo VideoObject) AsVideoDetails() (*VideoDetails, bool) {
2958 return nil, false
2959 }
2960
2961
2962 func (vo VideoObject) AsResponseBase() (*ResponseBase, bool) {
2963 return nil, false
2964 }
2965
2966
2967 func (vo VideoObject) AsBasicResponseBase() (BasicResponseBase, bool) {
2968 return &vo, true
2969 }
2970
2971
2972 func (vo *VideoObject) UnmarshalJSON(body []byte) error {
2973 var m map[string]*json.RawMessage
2974 err := json.Unmarshal(body, &m)
2975 if err != nil {
2976 return err
2977 }
2978 for k, v := range m {
2979 switch k {
2980 case "motionThumbnailUrl":
2981 if v != nil {
2982 var motionThumbnailURL string
2983 err = json.Unmarshal(*v, &motionThumbnailURL)
2984 if err != nil {
2985 return err
2986 }
2987 vo.MotionThumbnailURL = &motionThumbnailURL
2988 }
2989 case "motionThumbnailId":
2990 if v != nil {
2991 var motionThumbnailID string
2992 err = json.Unmarshal(*v, &motionThumbnailID)
2993 if err != nil {
2994 return err
2995 }
2996 vo.MotionThumbnailID = &motionThumbnailID
2997 }
2998 case "embedHtml":
2999 if v != nil {
3000 var embedHTML string
3001 err = json.Unmarshal(*v, &embedHTML)
3002 if err != nil {
3003 return err
3004 }
3005 vo.EmbedHTML = &embedHTML
3006 }
3007 case "allowHttpsEmbed":
3008 if v != nil {
3009 var allowHTTPSEmbed bool
3010 err = json.Unmarshal(*v, &allowHTTPSEmbed)
3011 if err != nil {
3012 return err
3013 }
3014 vo.AllowHTTPSEmbed = &allowHTTPSEmbed
3015 }
3016 case "viewCount":
3017 if v != nil {
3018 var viewCount int32
3019 err = json.Unmarshal(*v, &viewCount)
3020 if err != nil {
3021 return err
3022 }
3023 vo.ViewCount = &viewCount
3024 }
3025 case "thumbnail":
3026 if v != nil {
3027 var thumbnail ImageObject
3028 err = json.Unmarshal(*v, &thumbnail)
3029 if err != nil {
3030 return err
3031 }
3032 vo.Thumbnail = &thumbnail
3033 }
3034 case "videoId":
3035 if v != nil {
3036 var videoID string
3037 err = json.Unmarshal(*v, &videoID)
3038 if err != nil {
3039 return err
3040 }
3041 vo.VideoID = &videoID
3042 }
3043 case "allowMobileEmbed":
3044 if v != nil {
3045 var allowMobileEmbed bool
3046 err = json.Unmarshal(*v, &allowMobileEmbed)
3047 if err != nil {
3048 return err
3049 }
3050 vo.AllowMobileEmbed = &allowMobileEmbed
3051 }
3052 case "isSuperfresh":
3053 if v != nil {
3054 var isSuperfresh bool
3055 err = json.Unmarshal(*v, &isSuperfresh)
3056 if err != nil {
3057 return err
3058 }
3059 vo.IsSuperfresh = &isSuperfresh
3060 }
3061 case "contentUrl":
3062 if v != nil {
3063 var contentURL string
3064 err = json.Unmarshal(*v, &contentURL)
3065 if err != nil {
3066 return err
3067 }
3068 vo.ContentURL = &contentURL
3069 }
3070 case "hostPageUrl":
3071 if v != nil {
3072 var hostPageURL string
3073 err = json.Unmarshal(*v, &hostPageURL)
3074 if err != nil {
3075 return err
3076 }
3077 vo.HostPageURL = &hostPageURL
3078 }
3079 case "width":
3080 if v != nil {
3081 var width int32
3082 err = json.Unmarshal(*v, &width)
3083 if err != nil {
3084 return err
3085 }
3086 vo.Width = &width
3087 }
3088 case "height":
3089 if v != nil {
3090 var height int32
3091 err = json.Unmarshal(*v, &height)
3092 if err != nil {
3093 return err
3094 }
3095 vo.Height = &height
3096 }
3097 case "thumbnailUrl":
3098 if v != nil {
3099 var thumbnailURL string
3100 err = json.Unmarshal(*v, &thumbnailURL)
3101 if err != nil {
3102 return err
3103 }
3104 vo.ThumbnailURL = &thumbnailURL
3105 }
3106 case "provider":
3107 if v != nil {
3108 provider, err := unmarshalBasicThingArray(*v)
3109 if err != nil {
3110 return err
3111 }
3112 vo.Provider = &provider
3113 }
3114 case "text":
3115 if v != nil {
3116 var textVar string
3117 err = json.Unmarshal(*v, &textVar)
3118 if err != nil {
3119 return err
3120 }
3121 vo.Text = &textVar
3122 }
3123 case "name":
3124 if v != nil {
3125 var name string
3126 err = json.Unmarshal(*v, &name)
3127 if err != nil {
3128 return err
3129 }
3130 vo.Name = &name
3131 }
3132 case "url":
3133 if v != nil {
3134 var URL string
3135 err = json.Unmarshal(*v, &URL)
3136 if err != nil {
3137 return err
3138 }
3139 vo.URL = &URL
3140 }
3141 case "image":
3142 if v != nil {
3143 var imageVar ImageObject
3144 err = json.Unmarshal(*v, &imageVar)
3145 if err != nil {
3146 return err
3147 }
3148 vo.Image = &imageVar
3149 }
3150 case "description":
3151 if v != nil {
3152 var description string
3153 err = json.Unmarshal(*v, &description)
3154 if err != nil {
3155 return err
3156 }
3157 vo.Description = &description
3158 }
3159 case "alternateName":
3160 if v != nil {
3161 var alternateName string
3162 err = json.Unmarshal(*v, &alternateName)
3163 if err != nil {
3164 return err
3165 }
3166 vo.AlternateName = &alternateName
3167 }
3168 case "bingId":
3169 if v != nil {
3170 var bingID string
3171 err = json.Unmarshal(*v, &bingID)
3172 if err != nil {
3173 return err
3174 }
3175 vo.BingID = &bingID
3176 }
3177 case "webSearchUrl":
3178 if v != nil {
3179 var webSearchURL string
3180 err = json.Unmarshal(*v, &webSearchURL)
3181 if err != nil {
3182 return err
3183 }
3184 vo.WebSearchURL = &webSearchURL
3185 }
3186 case "id":
3187 if v != nil {
3188 var ID string
3189 err = json.Unmarshal(*v, &ID)
3190 if err != nil {
3191 return err
3192 }
3193 vo.ID = &ID
3194 }
3195 case "_type":
3196 if v != nil {
3197 var typeVar Type
3198 err = json.Unmarshal(*v, &typeVar)
3199 if err != nil {
3200 return err
3201 }
3202 vo.Type = typeVar
3203 }
3204 }
3205 }
3206
3207 return nil
3208 }
3209
3210
3211 type Videos struct {
3212 autorest.Response `json:"-"`
3213
3214 Value *[]VideoObject `json:"value,omitempty"`
3215
3216 NextOffset *int32 `json:"nextOffset,omitempty"`
3217
3218 Scenario VideoQueryScenario `json:"scenario,omitempty"`
3219
3220 QueryExpansions *[]Query `json:"queryExpansions,omitempty"`
3221
3222 PivotSuggestions *[]PivotSuggestions `json:"pivotSuggestions,omitempty"`
3223
3224 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
3225
3226 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
3227
3228 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
3229
3230 WebSearchURL *string `json:"webSearchUrl,omitempty"`
3231
3232 ID *string `json:"id,omitempty"`
3233
3234 Type Type `json:"_type,omitempty"`
3235 }
3236
3237
3238 func (vVar Videos) MarshalJSON() ([]byte, error) {
3239 vVar.Type = TypeVideos
3240 objectMap := make(map[string]interface{})
3241 if vVar.Value != nil {
3242 objectMap["value"] = vVar.Value
3243 }
3244 if vVar.Type != "" {
3245 objectMap["_type"] = vVar.Type
3246 }
3247 return json.Marshal(objectMap)
3248 }
3249
3250
3251 func (vVar Videos) AsImageObject() (*ImageObject, bool) {
3252 return nil, false
3253 }
3254
3255
3256 func (vVar Videos) AsVideoObject() (*VideoObject, bool) {
3257 return nil, false
3258 }
3259
3260
3261 func (vVar Videos) AsVideos() (*Videos, bool) {
3262 return &vVar, true
3263 }
3264
3265
3266 func (vVar Videos) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
3267 return nil, false
3268 }
3269
3270
3271 func (vVar Videos) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
3272 return &vVar, true
3273 }
3274
3275
3276 func (vVar Videos) AsAnswer() (*Answer, bool) {
3277 return nil, false
3278 }
3279
3280
3281 func (vVar Videos) AsBasicAnswer() (BasicAnswer, bool) {
3282 return &vVar, true
3283 }
3284
3285
3286 func (vVar Videos) AsMediaObject() (*MediaObject, bool) {
3287 return nil, false
3288 }
3289
3290
3291 func (vVar Videos) AsBasicMediaObject() (BasicMediaObject, bool) {
3292 return nil, false
3293 }
3294
3295
3296 func (vVar Videos) AsResponse() (*Response, bool) {
3297 return nil, false
3298 }
3299
3300
3301 func (vVar Videos) AsBasicResponse() (BasicResponse, bool) {
3302 return &vVar, true
3303 }
3304
3305
3306 func (vVar Videos) AsThing() (*Thing, bool) {
3307 return nil, false
3308 }
3309
3310
3311 func (vVar Videos) AsBasicThing() (BasicThing, bool) {
3312 return nil, false
3313 }
3314
3315
3316 func (vVar Videos) AsCreativeWork() (*CreativeWork, bool) {
3317 return nil, false
3318 }
3319
3320
3321 func (vVar Videos) AsBasicCreativeWork() (BasicCreativeWork, bool) {
3322 return nil, false
3323 }
3324
3325
3326 func (vVar Videos) AsIdentifiable() (*Identifiable, bool) {
3327 return nil, false
3328 }
3329
3330
3331 func (vVar Videos) AsBasicIdentifiable() (BasicIdentifiable, bool) {
3332 return &vVar, true
3333 }
3334
3335
3336 func (vVar Videos) AsErrorResponse() (*ErrorResponse, bool) {
3337 return nil, false
3338 }
3339
3340
3341 func (vVar Videos) AsTrendingVideos() (*TrendingVideos, bool) {
3342 return nil, false
3343 }
3344
3345
3346 func (vVar Videos) AsVideoDetails() (*VideoDetails, bool) {
3347 return nil, false
3348 }
3349
3350
3351 func (vVar Videos) AsResponseBase() (*ResponseBase, bool) {
3352 return nil, false
3353 }
3354
3355
3356 func (vVar Videos) AsBasicResponseBase() (BasicResponseBase, bool) {
3357 return &vVar, true
3358 }
3359
3360
3361 type VideosModule struct {
3362
3363 Value *[]VideoObject `json:"value,omitempty"`
3364 }
3365
3366
3367 func (VM VideosModule) MarshalJSON() ([]byte, error) {
3368 objectMap := make(map[string]interface{})
3369 return json.Marshal(objectMap)
3370 }
3371
View as plain text