1 package websearch
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/websearch"
16
17
18 type BasicAnswer interface {
19 AsWebWebAnswer() (*WebWebAnswer, bool)
20 AsImages() (*Images, bool)
21 AsNews() (*News, bool)
22 AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool)
23 AsSpellSuggestions() (*SpellSuggestions, bool)
24 AsTimeZone() (*TimeZone, bool)
25 AsVideos() (*Videos, bool)
26 AsComputation() (*Computation, bool)
27 AsPlaces() (*Places, bool)
28 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
29 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
30 AsAnswer() (*Answer, bool)
31 }
32
33
34 type Answer struct {
35
36 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
37
38 WebSearchURL *string `json:"webSearchUrl,omitempty"`
39
40 ID *string `json:"id,omitempty"`
41
42 Type TypeBasicResponseBase `json:"_type,omitempty"`
43 }
44
45 func unmarshalBasicAnswer(body []byte) (BasicAnswer, error) {
46 var m map[string]interface{}
47 err := json.Unmarshal(body, &m)
48 if err != nil {
49 return nil, err
50 }
51
52 switch m["_type"] {
53 case string(TypeWebWebAnswer):
54 var wwa WebWebAnswer
55 err := json.Unmarshal(body, &wwa)
56 return wwa, err
57 case string(TypeImages):
58 var i Images
59 err := json.Unmarshal(body, &i)
60 return i, err
61 case string(TypeNews):
62 var n News
63 err := json.Unmarshal(body, &n)
64 return n, err
65 case string(TypeRelatedSearchesRelatedSearchAnswer):
66 var rsrsa RelatedSearchesRelatedSearchAnswer
67 err := json.Unmarshal(body, &rsrsa)
68 return rsrsa, err
69 case string(TypeSpellSuggestions):
70 var ss SpellSuggestions
71 err := json.Unmarshal(body, &ss)
72 return ss, err
73 case string(TypeTimeZone):
74 var tz TimeZone
75 err := json.Unmarshal(body, &tz)
76 return tz, err
77 case string(TypeVideos):
78 var vVar Videos
79 err := json.Unmarshal(body, &vVar)
80 return vVar, err
81 case string(TypeComputation):
82 var c Computation
83 err := json.Unmarshal(body, &c)
84 return c, err
85 case string(TypePlaces):
86 var p Places
87 err := json.Unmarshal(body, &p)
88 return p, err
89 case string(TypeSearchResultsAnswer):
90 var sra SearchResultsAnswer
91 err := json.Unmarshal(body, &sra)
92 return sra, err
93 default:
94 var a Answer
95 err := json.Unmarshal(body, &a)
96 return a, err
97 }
98 }
99 func unmarshalBasicAnswerArray(body []byte) ([]BasicAnswer, error) {
100 var rawMessages []*json.RawMessage
101 err := json.Unmarshal(body, &rawMessages)
102 if err != nil {
103 return nil, err
104 }
105
106 aArray := make([]BasicAnswer, len(rawMessages))
107
108 for index, rawMessage := range rawMessages {
109 a, err := unmarshalBasicAnswer(*rawMessage)
110 if err != nil {
111 return nil, err
112 }
113 aArray[index] = a
114 }
115 return aArray, nil
116 }
117
118
119 func (a Answer) MarshalJSON() ([]byte, error) {
120 a.Type = TypeAnswer
121 objectMap := make(map[string]interface{})
122 if a.Type != "" {
123 objectMap["_type"] = a.Type
124 }
125 return json.Marshal(objectMap)
126 }
127
128
129 func (a Answer) AsImageObject() (*ImageObject, bool) {
130 return nil, false
131 }
132
133
134 func (a Answer) AsWebPage() (*WebPage, bool) {
135 return nil, false
136 }
137
138
139 func (a Answer) AsWebWebAnswer() (*WebWebAnswer, bool) {
140 return nil, false
141 }
142
143
144 func (a Answer) AsImages() (*Images, bool) {
145 return nil, false
146 }
147
148
149 func (a Answer) AsNewsArticle() (*NewsArticle, bool) {
150 return nil, false
151 }
152
153
154 func (a Answer) AsNews() (*News, bool) {
155 return nil, false
156 }
157
158
159 func (a Answer) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
160 return nil, false
161 }
162
163
164 func (a Answer) AsSpellSuggestions() (*SpellSuggestions, bool) {
165 return nil, false
166 }
167
168
169 func (a Answer) AsTimeZone() (*TimeZone, bool) {
170 return nil, false
171 }
172
173
174 func (a Answer) AsVideoObject() (*VideoObject, bool) {
175 return nil, false
176 }
177
178
179 func (a Answer) AsVideos() (*Videos, bool) {
180 return nil, false
181 }
182
183
184 func (a Answer) AsComputation() (*Computation, bool) {
185 return nil, false
186 }
187
188
189 func (a Answer) AsIdentifiable() (*Identifiable, bool) {
190 return nil, false
191 }
192
193
194 func (a Answer) AsBasicIdentifiable() (BasicIdentifiable, bool) {
195 return &a, true
196 }
197
198
199 func (a Answer) AsSearchResponse() (*SearchResponse, bool) {
200 return nil, false
201 }
202
203
204 func (a Answer) AsResponse() (*Response, bool) {
205 return nil, false
206 }
207
208
209 func (a Answer) AsBasicResponse() (BasicResponse, bool) {
210 return &a, true
211 }
212
213
214 func (a Answer) AsThing() (*Thing, bool) {
215 return nil, false
216 }
217
218
219 func (a Answer) AsBasicThing() (BasicThing, bool) {
220 return nil, false
221 }
222
223
224 func (a Answer) AsPlaces() (*Places, bool) {
225 return nil, false
226 }
227
228
229 func (a Answer) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
230 return nil, false
231 }
232
233
234 func (a Answer) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
235 return nil, false
236 }
237
238
239 func (a Answer) AsAnswer() (*Answer, bool) {
240 return &a, true
241 }
242
243
244 func (a Answer) AsBasicAnswer() (BasicAnswer, bool) {
245 return &a, true
246 }
247
248
249 func (a Answer) AsErrorResponse() (*ErrorResponse, bool) {
250 return nil, false
251 }
252
253
254 func (a Answer) AsCreativeWork() (*CreativeWork, bool) {
255 return nil, false
256 }
257
258
259 func (a Answer) AsBasicCreativeWork() (BasicCreativeWork, bool) {
260 return nil, false
261 }
262
263
264 func (a Answer) AsIntangible() (*Intangible, bool) {
265 return nil, false
266 }
267
268
269 func (a Answer) AsBasicIntangible() (BasicIntangible, bool) {
270 return nil, false
271 }
272
273
274 func (a Answer) AsMediaObject() (*MediaObject, bool) {
275 return nil, false
276 }
277
278
279 func (a Answer) AsBasicMediaObject() (BasicMediaObject, bool) {
280 return nil, false
281 }
282
283
284 func (a Answer) AsArticle() (*Article, bool) {
285 return nil, false
286 }
287
288
289 func (a Answer) AsBasicArticle() (BasicArticle, bool) {
290 return nil, false
291 }
292
293
294 func (a Answer) AsStructuredValue() (*StructuredValue, bool) {
295 return nil, false
296 }
297
298
299 func (a Answer) AsResponseBase() (*ResponseBase, bool) {
300 return nil, false
301 }
302
303
304 func (a Answer) AsBasicResponseBase() (BasicResponseBase, bool) {
305 return &a, true
306 }
307
308
309 type BasicArticle interface {
310 AsNewsArticle() (*NewsArticle, bool)
311 AsArticle() (*Article, bool)
312 }
313
314
315 type Article struct {
316
317 WordCount *int32 `json:"wordCount,omitempty"`
318
319 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
320
321 Provider *[]BasicThing `json:"provider,omitempty"`
322
323 Text *string `json:"text,omitempty"`
324
325 Name *string `json:"name,omitempty"`
326
327 URL *string `json:"url,omitempty"`
328
329 Image *ImageObject `json:"image,omitempty"`
330
331 Description *string `json:"description,omitempty"`
332
333 BingID *string `json:"bingId,omitempty"`
334
335 WebSearchURL *string `json:"webSearchUrl,omitempty"`
336
337 ID *string `json:"id,omitempty"`
338
339 Type TypeBasicResponseBase `json:"_type,omitempty"`
340 }
341
342 func unmarshalBasicArticle(body []byte) (BasicArticle, error) {
343 var m map[string]interface{}
344 err := json.Unmarshal(body, &m)
345 if err != nil {
346 return nil, err
347 }
348
349 switch m["_type"] {
350 case string(TypeNewsArticle):
351 var na NewsArticle
352 err := json.Unmarshal(body, &na)
353 return na, err
354 default:
355 var a Article
356 err := json.Unmarshal(body, &a)
357 return a, err
358 }
359 }
360 func unmarshalBasicArticleArray(body []byte) ([]BasicArticle, error) {
361 var rawMessages []*json.RawMessage
362 err := json.Unmarshal(body, &rawMessages)
363 if err != nil {
364 return nil, err
365 }
366
367 aArray := make([]BasicArticle, len(rawMessages))
368
369 for index, rawMessage := range rawMessages {
370 a, err := unmarshalBasicArticle(*rawMessage)
371 if err != nil {
372 return nil, err
373 }
374 aArray[index] = a
375 }
376 return aArray, nil
377 }
378
379
380 func (a Article) MarshalJSON() ([]byte, error) {
381 a.Type = TypeArticle
382 objectMap := make(map[string]interface{})
383 if a.Type != "" {
384 objectMap["_type"] = a.Type
385 }
386 return json.Marshal(objectMap)
387 }
388
389
390 func (a Article) AsImageObject() (*ImageObject, bool) {
391 return nil, false
392 }
393
394
395 func (a Article) AsWebPage() (*WebPage, bool) {
396 return nil, false
397 }
398
399
400 func (a Article) AsWebWebAnswer() (*WebWebAnswer, bool) {
401 return nil, false
402 }
403
404
405 func (a Article) AsImages() (*Images, bool) {
406 return nil, false
407 }
408
409
410 func (a Article) AsNewsArticle() (*NewsArticle, bool) {
411 return nil, false
412 }
413
414
415 func (a Article) AsNews() (*News, bool) {
416 return nil, false
417 }
418
419
420 func (a Article) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
421 return nil, false
422 }
423
424
425 func (a Article) AsSpellSuggestions() (*SpellSuggestions, bool) {
426 return nil, false
427 }
428
429
430 func (a Article) AsTimeZone() (*TimeZone, bool) {
431 return nil, false
432 }
433
434
435 func (a Article) AsVideoObject() (*VideoObject, bool) {
436 return nil, false
437 }
438
439
440 func (a Article) AsVideos() (*Videos, bool) {
441 return nil, false
442 }
443
444
445 func (a Article) AsComputation() (*Computation, bool) {
446 return nil, false
447 }
448
449
450 func (a Article) AsIdentifiable() (*Identifiable, bool) {
451 return nil, false
452 }
453
454
455 func (a Article) AsBasicIdentifiable() (BasicIdentifiable, bool) {
456 return &a, true
457 }
458
459
460 func (a Article) AsSearchResponse() (*SearchResponse, bool) {
461 return nil, false
462 }
463
464
465 func (a Article) AsResponse() (*Response, bool) {
466 return nil, false
467 }
468
469
470 func (a Article) AsBasicResponse() (BasicResponse, bool) {
471 return &a, true
472 }
473
474
475 func (a Article) AsThing() (*Thing, bool) {
476 return nil, false
477 }
478
479
480 func (a Article) AsBasicThing() (BasicThing, bool) {
481 return &a, true
482 }
483
484
485 func (a Article) AsPlaces() (*Places, bool) {
486 return nil, false
487 }
488
489
490 func (a Article) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
491 return nil, false
492 }
493
494
495 func (a Article) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
496 return nil, false
497 }
498
499
500 func (a Article) AsAnswer() (*Answer, bool) {
501 return nil, false
502 }
503
504
505 func (a Article) AsBasicAnswer() (BasicAnswer, bool) {
506 return nil, false
507 }
508
509
510 func (a Article) AsErrorResponse() (*ErrorResponse, bool) {
511 return nil, false
512 }
513
514
515 func (a Article) AsCreativeWork() (*CreativeWork, bool) {
516 return nil, false
517 }
518
519
520 func (a Article) AsBasicCreativeWork() (BasicCreativeWork, bool) {
521 return &a, true
522 }
523
524
525 func (a Article) AsIntangible() (*Intangible, bool) {
526 return nil, false
527 }
528
529
530 func (a Article) AsBasicIntangible() (BasicIntangible, bool) {
531 return nil, false
532 }
533
534
535 func (a Article) AsMediaObject() (*MediaObject, bool) {
536 return nil, false
537 }
538
539
540 func (a Article) AsBasicMediaObject() (BasicMediaObject, bool) {
541 return nil, false
542 }
543
544
545 func (a Article) AsArticle() (*Article, bool) {
546 return &a, true
547 }
548
549
550 func (a Article) AsBasicArticle() (BasicArticle, bool) {
551 return &a, true
552 }
553
554
555 func (a Article) AsStructuredValue() (*StructuredValue, bool) {
556 return nil, false
557 }
558
559
560 func (a Article) AsResponseBase() (*ResponseBase, bool) {
561 return nil, false
562 }
563
564
565 func (a Article) AsBasicResponseBase() (BasicResponseBase, bool) {
566 return &a, true
567 }
568
569
570 func (a *Article) UnmarshalJSON(body []byte) error {
571 var m map[string]*json.RawMessage
572 err := json.Unmarshal(body, &m)
573 if err != nil {
574 return err
575 }
576 for k, v := range m {
577 switch k {
578 case "wordCount":
579 if v != nil {
580 var wordCount int32
581 err = json.Unmarshal(*v, &wordCount)
582 if err != nil {
583 return err
584 }
585 a.WordCount = &wordCount
586 }
587 case "thumbnailUrl":
588 if v != nil {
589 var thumbnailURL string
590 err = json.Unmarshal(*v, &thumbnailURL)
591 if err != nil {
592 return err
593 }
594 a.ThumbnailURL = &thumbnailURL
595 }
596 case "provider":
597 if v != nil {
598 provider, err := unmarshalBasicThingArray(*v)
599 if err != nil {
600 return err
601 }
602 a.Provider = &provider
603 }
604 case "text":
605 if v != nil {
606 var textVar string
607 err = json.Unmarshal(*v, &textVar)
608 if err != nil {
609 return err
610 }
611 a.Text = &textVar
612 }
613 case "name":
614 if v != nil {
615 var name string
616 err = json.Unmarshal(*v, &name)
617 if err != nil {
618 return err
619 }
620 a.Name = &name
621 }
622 case "url":
623 if v != nil {
624 var URL string
625 err = json.Unmarshal(*v, &URL)
626 if err != nil {
627 return err
628 }
629 a.URL = &URL
630 }
631 case "image":
632 if v != nil {
633 var imageVar ImageObject
634 err = json.Unmarshal(*v, &imageVar)
635 if err != nil {
636 return err
637 }
638 a.Image = &imageVar
639 }
640 case "description":
641 if v != nil {
642 var description string
643 err = json.Unmarshal(*v, &description)
644 if err != nil {
645 return err
646 }
647 a.Description = &description
648 }
649 case "bingId":
650 if v != nil {
651 var bingID string
652 err = json.Unmarshal(*v, &bingID)
653 if err != nil {
654 return err
655 }
656 a.BingID = &bingID
657 }
658 case "webSearchUrl":
659 if v != nil {
660 var webSearchURL string
661 err = json.Unmarshal(*v, &webSearchURL)
662 if err != nil {
663 return err
664 }
665 a.WebSearchURL = &webSearchURL
666 }
667 case "id":
668 if v != nil {
669 var ID string
670 err = json.Unmarshal(*v, &ID)
671 if err != nil {
672 return err
673 }
674 a.ID = &ID
675 }
676 case "_type":
677 if v != nil {
678 var typeVar TypeBasicResponseBase
679 err = json.Unmarshal(*v, &typeVar)
680 if err != nil {
681 return err
682 }
683 a.Type = typeVar
684 }
685 }
686 }
687
688 return nil
689 }
690
691
692 type Computation struct {
693
694 Expression *string `json:"expression,omitempty"`
695
696 Value *string `json:"value,omitempty"`
697
698 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
699
700 WebSearchURL *string `json:"webSearchUrl,omitempty"`
701
702 ID *string `json:"id,omitempty"`
703
704 Type TypeBasicResponseBase `json:"_type,omitempty"`
705 }
706
707
708 func (c Computation) MarshalJSON() ([]byte, error) {
709 c.Type = TypeComputation
710 objectMap := make(map[string]interface{})
711 if c.Expression != nil {
712 objectMap["expression"] = c.Expression
713 }
714 if c.Value != nil {
715 objectMap["value"] = c.Value
716 }
717 if c.Type != "" {
718 objectMap["_type"] = c.Type
719 }
720 return json.Marshal(objectMap)
721 }
722
723
724 func (c Computation) AsImageObject() (*ImageObject, bool) {
725 return nil, false
726 }
727
728
729 func (c Computation) AsWebPage() (*WebPage, bool) {
730 return nil, false
731 }
732
733
734 func (c Computation) AsWebWebAnswer() (*WebWebAnswer, bool) {
735 return nil, false
736 }
737
738
739 func (c Computation) AsImages() (*Images, bool) {
740 return nil, false
741 }
742
743
744 func (c Computation) AsNewsArticle() (*NewsArticle, bool) {
745 return nil, false
746 }
747
748
749 func (c Computation) AsNews() (*News, bool) {
750 return nil, false
751 }
752
753
754 func (c Computation) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
755 return nil, false
756 }
757
758
759 func (c Computation) AsSpellSuggestions() (*SpellSuggestions, bool) {
760 return nil, false
761 }
762
763
764 func (c Computation) AsTimeZone() (*TimeZone, bool) {
765 return nil, false
766 }
767
768
769 func (c Computation) AsVideoObject() (*VideoObject, bool) {
770 return nil, false
771 }
772
773
774 func (c Computation) AsVideos() (*Videos, bool) {
775 return nil, false
776 }
777
778
779 func (c Computation) AsComputation() (*Computation, bool) {
780 return &c, true
781 }
782
783
784 func (c Computation) AsIdentifiable() (*Identifiable, bool) {
785 return nil, false
786 }
787
788
789 func (c Computation) AsBasicIdentifiable() (BasicIdentifiable, bool) {
790 return &c, true
791 }
792
793
794 func (c Computation) AsSearchResponse() (*SearchResponse, bool) {
795 return nil, false
796 }
797
798
799 func (c Computation) AsResponse() (*Response, bool) {
800 return nil, false
801 }
802
803
804 func (c Computation) AsBasicResponse() (BasicResponse, bool) {
805 return &c, true
806 }
807
808
809 func (c Computation) AsThing() (*Thing, bool) {
810 return nil, false
811 }
812
813
814 func (c Computation) AsBasicThing() (BasicThing, bool) {
815 return nil, false
816 }
817
818
819 func (c Computation) AsPlaces() (*Places, bool) {
820 return nil, false
821 }
822
823
824 func (c Computation) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
825 return nil, false
826 }
827
828
829 func (c Computation) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
830 return nil, false
831 }
832
833
834 func (c Computation) AsAnswer() (*Answer, bool) {
835 return nil, false
836 }
837
838
839 func (c Computation) AsBasicAnswer() (BasicAnswer, bool) {
840 return &c, true
841 }
842
843
844 func (c Computation) AsErrorResponse() (*ErrorResponse, bool) {
845 return nil, false
846 }
847
848
849 func (c Computation) AsCreativeWork() (*CreativeWork, bool) {
850 return nil, false
851 }
852
853
854 func (c Computation) AsBasicCreativeWork() (BasicCreativeWork, bool) {
855 return nil, false
856 }
857
858
859 func (c Computation) AsIntangible() (*Intangible, bool) {
860 return nil, false
861 }
862
863
864 func (c Computation) AsBasicIntangible() (BasicIntangible, bool) {
865 return nil, false
866 }
867
868
869 func (c Computation) AsMediaObject() (*MediaObject, bool) {
870 return nil, false
871 }
872
873
874 func (c Computation) AsBasicMediaObject() (BasicMediaObject, bool) {
875 return nil, false
876 }
877
878
879 func (c Computation) AsArticle() (*Article, bool) {
880 return nil, false
881 }
882
883
884 func (c Computation) AsBasicArticle() (BasicArticle, bool) {
885 return nil, false
886 }
887
888
889 func (c Computation) AsStructuredValue() (*StructuredValue, bool) {
890 return nil, false
891 }
892
893
894 func (c Computation) AsResponseBase() (*ResponseBase, bool) {
895 return nil, false
896 }
897
898
899 func (c Computation) AsBasicResponseBase() (BasicResponseBase, bool) {
900 return &c, true
901 }
902
903
904 type BasicCreativeWork interface {
905 AsImageObject() (*ImageObject, bool)
906 AsWebPage() (*WebPage, bool)
907 AsNewsArticle() (*NewsArticle, bool)
908 AsVideoObject() (*VideoObject, bool)
909 AsMediaObject() (*MediaObject, bool)
910 AsBasicMediaObject() (BasicMediaObject, bool)
911 AsArticle() (*Article, bool)
912 AsBasicArticle() (BasicArticle, bool)
913 AsCreativeWork() (*CreativeWork, bool)
914 }
915
916
917 type CreativeWork struct {
918
919 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
920
921 Provider *[]BasicThing `json:"provider,omitempty"`
922
923 Text *string `json:"text,omitempty"`
924
925 Name *string `json:"name,omitempty"`
926
927 URL *string `json:"url,omitempty"`
928
929 Image *ImageObject `json:"image,omitempty"`
930
931 Description *string `json:"description,omitempty"`
932
933 BingID *string `json:"bingId,omitempty"`
934
935 WebSearchURL *string `json:"webSearchUrl,omitempty"`
936
937 ID *string `json:"id,omitempty"`
938
939 Type TypeBasicResponseBase `json:"_type,omitempty"`
940 }
941
942 func unmarshalBasicCreativeWork(body []byte) (BasicCreativeWork, error) {
943 var m map[string]interface{}
944 err := json.Unmarshal(body, &m)
945 if err != nil {
946 return nil, err
947 }
948
949 switch m["_type"] {
950 case string(TypeImageObject):
951 var ioVar ImageObject
952 err := json.Unmarshal(body, &ioVar)
953 return ioVar, err
954 case string(TypeWebPage):
955 var wp WebPage
956 err := json.Unmarshal(body, &wp)
957 return wp, err
958 case string(TypeNewsArticle):
959 var na NewsArticle
960 err := json.Unmarshal(body, &na)
961 return na, err
962 case string(TypeVideoObject):
963 var vo VideoObject
964 err := json.Unmarshal(body, &vo)
965 return vo, err
966 case string(TypeMediaObject):
967 var mo MediaObject
968 err := json.Unmarshal(body, &mo)
969 return mo, err
970 case string(TypeArticle):
971 var a Article
972 err := json.Unmarshal(body, &a)
973 return a, err
974 default:
975 var cw CreativeWork
976 err := json.Unmarshal(body, &cw)
977 return cw, err
978 }
979 }
980 func unmarshalBasicCreativeWorkArray(body []byte) ([]BasicCreativeWork, error) {
981 var rawMessages []*json.RawMessage
982 err := json.Unmarshal(body, &rawMessages)
983 if err != nil {
984 return nil, err
985 }
986
987 cwArray := make([]BasicCreativeWork, len(rawMessages))
988
989 for index, rawMessage := range rawMessages {
990 cw, err := unmarshalBasicCreativeWork(*rawMessage)
991 if err != nil {
992 return nil, err
993 }
994 cwArray[index] = cw
995 }
996 return cwArray, nil
997 }
998
999
1000 func (cw CreativeWork) MarshalJSON() ([]byte, error) {
1001 cw.Type = TypeCreativeWork
1002 objectMap := make(map[string]interface{})
1003 if cw.Type != "" {
1004 objectMap["_type"] = cw.Type
1005 }
1006 return json.Marshal(objectMap)
1007 }
1008
1009
1010 func (cw CreativeWork) AsImageObject() (*ImageObject, bool) {
1011 return nil, false
1012 }
1013
1014
1015 func (cw CreativeWork) AsWebPage() (*WebPage, bool) {
1016 return nil, false
1017 }
1018
1019
1020 func (cw CreativeWork) AsWebWebAnswer() (*WebWebAnswer, bool) {
1021 return nil, false
1022 }
1023
1024
1025 func (cw CreativeWork) AsImages() (*Images, bool) {
1026 return nil, false
1027 }
1028
1029
1030 func (cw CreativeWork) AsNewsArticle() (*NewsArticle, bool) {
1031 return nil, false
1032 }
1033
1034
1035 func (cw CreativeWork) AsNews() (*News, bool) {
1036 return nil, false
1037 }
1038
1039
1040 func (cw CreativeWork) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
1041 return nil, false
1042 }
1043
1044
1045 func (cw CreativeWork) AsSpellSuggestions() (*SpellSuggestions, bool) {
1046 return nil, false
1047 }
1048
1049
1050 func (cw CreativeWork) AsTimeZone() (*TimeZone, bool) {
1051 return nil, false
1052 }
1053
1054
1055 func (cw CreativeWork) AsVideoObject() (*VideoObject, bool) {
1056 return nil, false
1057 }
1058
1059
1060 func (cw CreativeWork) AsVideos() (*Videos, bool) {
1061 return nil, false
1062 }
1063
1064
1065 func (cw CreativeWork) AsComputation() (*Computation, bool) {
1066 return nil, false
1067 }
1068
1069
1070 func (cw CreativeWork) AsIdentifiable() (*Identifiable, bool) {
1071 return nil, false
1072 }
1073
1074
1075 func (cw CreativeWork) AsBasicIdentifiable() (BasicIdentifiable, bool) {
1076 return &cw, true
1077 }
1078
1079
1080 func (cw CreativeWork) AsSearchResponse() (*SearchResponse, bool) {
1081 return nil, false
1082 }
1083
1084
1085 func (cw CreativeWork) AsResponse() (*Response, bool) {
1086 return nil, false
1087 }
1088
1089
1090 func (cw CreativeWork) AsBasicResponse() (BasicResponse, bool) {
1091 return &cw, true
1092 }
1093
1094
1095 func (cw CreativeWork) AsThing() (*Thing, bool) {
1096 return nil, false
1097 }
1098
1099
1100 func (cw CreativeWork) AsBasicThing() (BasicThing, bool) {
1101 return &cw, true
1102 }
1103
1104
1105 func (cw CreativeWork) AsPlaces() (*Places, bool) {
1106 return nil, false
1107 }
1108
1109
1110 func (cw CreativeWork) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
1111 return nil, false
1112 }
1113
1114
1115 func (cw CreativeWork) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
1116 return nil, false
1117 }
1118
1119
1120 func (cw CreativeWork) AsAnswer() (*Answer, bool) {
1121 return nil, false
1122 }
1123
1124
1125 func (cw CreativeWork) AsBasicAnswer() (BasicAnswer, bool) {
1126 return nil, false
1127 }
1128
1129
1130 func (cw CreativeWork) AsErrorResponse() (*ErrorResponse, bool) {
1131 return nil, false
1132 }
1133
1134
1135 func (cw CreativeWork) AsCreativeWork() (*CreativeWork, bool) {
1136 return &cw, true
1137 }
1138
1139
1140 func (cw CreativeWork) AsBasicCreativeWork() (BasicCreativeWork, bool) {
1141 return &cw, true
1142 }
1143
1144
1145 func (cw CreativeWork) AsIntangible() (*Intangible, bool) {
1146 return nil, false
1147 }
1148
1149
1150 func (cw CreativeWork) AsBasicIntangible() (BasicIntangible, bool) {
1151 return nil, false
1152 }
1153
1154
1155 func (cw CreativeWork) AsMediaObject() (*MediaObject, bool) {
1156 return nil, false
1157 }
1158
1159
1160 func (cw CreativeWork) AsBasicMediaObject() (BasicMediaObject, bool) {
1161 return nil, false
1162 }
1163
1164
1165 func (cw CreativeWork) AsArticle() (*Article, bool) {
1166 return nil, false
1167 }
1168
1169
1170 func (cw CreativeWork) AsBasicArticle() (BasicArticle, bool) {
1171 return nil, false
1172 }
1173
1174
1175 func (cw CreativeWork) AsStructuredValue() (*StructuredValue, bool) {
1176 return nil, false
1177 }
1178
1179
1180 func (cw CreativeWork) AsResponseBase() (*ResponseBase, bool) {
1181 return nil, false
1182 }
1183
1184
1185 func (cw CreativeWork) AsBasicResponseBase() (BasicResponseBase, bool) {
1186 return &cw, true
1187 }
1188
1189
1190 func (cw *CreativeWork) UnmarshalJSON(body []byte) error {
1191 var m map[string]*json.RawMessage
1192 err := json.Unmarshal(body, &m)
1193 if err != nil {
1194 return err
1195 }
1196 for k, v := range m {
1197 switch k {
1198 case "thumbnailUrl":
1199 if v != nil {
1200 var thumbnailURL string
1201 err = json.Unmarshal(*v, &thumbnailURL)
1202 if err != nil {
1203 return err
1204 }
1205 cw.ThumbnailURL = &thumbnailURL
1206 }
1207 case "provider":
1208 if v != nil {
1209 provider, err := unmarshalBasicThingArray(*v)
1210 if err != nil {
1211 return err
1212 }
1213 cw.Provider = &provider
1214 }
1215 case "text":
1216 if v != nil {
1217 var textVar string
1218 err = json.Unmarshal(*v, &textVar)
1219 if err != nil {
1220 return err
1221 }
1222 cw.Text = &textVar
1223 }
1224 case "name":
1225 if v != nil {
1226 var name string
1227 err = json.Unmarshal(*v, &name)
1228 if err != nil {
1229 return err
1230 }
1231 cw.Name = &name
1232 }
1233 case "url":
1234 if v != nil {
1235 var URL string
1236 err = json.Unmarshal(*v, &URL)
1237 if err != nil {
1238 return err
1239 }
1240 cw.URL = &URL
1241 }
1242 case "image":
1243 if v != nil {
1244 var imageVar ImageObject
1245 err = json.Unmarshal(*v, &imageVar)
1246 if err != nil {
1247 return err
1248 }
1249 cw.Image = &imageVar
1250 }
1251 case "description":
1252 if v != nil {
1253 var description string
1254 err = json.Unmarshal(*v, &description)
1255 if err != nil {
1256 return err
1257 }
1258 cw.Description = &description
1259 }
1260 case "bingId":
1261 if v != nil {
1262 var bingID string
1263 err = json.Unmarshal(*v, &bingID)
1264 if err != nil {
1265 return err
1266 }
1267 cw.BingID = &bingID
1268 }
1269 case "webSearchUrl":
1270 if v != nil {
1271 var webSearchURL string
1272 err = json.Unmarshal(*v, &webSearchURL)
1273 if err != nil {
1274 return err
1275 }
1276 cw.WebSearchURL = &webSearchURL
1277 }
1278 case "id":
1279 if v != nil {
1280 var ID string
1281 err = json.Unmarshal(*v, &ID)
1282 if err != nil {
1283 return err
1284 }
1285 cw.ID = &ID
1286 }
1287 case "_type":
1288 if v != nil {
1289 var typeVar TypeBasicResponseBase
1290 err = json.Unmarshal(*v, &typeVar)
1291 if err != nil {
1292 return err
1293 }
1294 cw.Type = typeVar
1295 }
1296 }
1297 }
1298
1299 return nil
1300 }
1301
1302
1303 type Error struct {
1304
1305 Code ErrorCode `json:"code,omitempty"`
1306
1307 SubCode ErrorSubCode `json:"subCode,omitempty"`
1308
1309 Message *string `json:"message,omitempty"`
1310
1311 MoreDetails *string `json:"moreDetails,omitempty"`
1312
1313 Parameter *string `json:"parameter,omitempty"`
1314
1315 Value *string `json:"value,omitempty"`
1316 }
1317
1318
1319 func (e Error) MarshalJSON() ([]byte, error) {
1320 objectMap := make(map[string]interface{})
1321 if e.Code != "" {
1322 objectMap["code"] = e.Code
1323 }
1324 if e.Message != nil {
1325 objectMap["message"] = e.Message
1326 }
1327 return json.Marshal(objectMap)
1328 }
1329
1330
1331 type ErrorResponse struct {
1332
1333 Errors *[]Error `json:"errors,omitempty"`
1334
1335 WebSearchURL *string `json:"webSearchUrl,omitempty"`
1336
1337 ID *string `json:"id,omitempty"`
1338
1339 Type TypeBasicResponseBase `json:"_type,omitempty"`
1340 }
1341
1342
1343 func (er ErrorResponse) MarshalJSON() ([]byte, error) {
1344 er.Type = TypeErrorResponse
1345 objectMap := make(map[string]interface{})
1346 if er.Errors != nil {
1347 objectMap["errors"] = er.Errors
1348 }
1349 if er.Type != "" {
1350 objectMap["_type"] = er.Type
1351 }
1352 return json.Marshal(objectMap)
1353 }
1354
1355
1356 func (er ErrorResponse) AsImageObject() (*ImageObject, bool) {
1357 return nil, false
1358 }
1359
1360
1361 func (er ErrorResponse) AsWebPage() (*WebPage, bool) {
1362 return nil, false
1363 }
1364
1365
1366 func (er ErrorResponse) AsWebWebAnswer() (*WebWebAnswer, bool) {
1367 return nil, false
1368 }
1369
1370
1371 func (er ErrorResponse) AsImages() (*Images, bool) {
1372 return nil, false
1373 }
1374
1375
1376 func (er ErrorResponse) AsNewsArticle() (*NewsArticle, bool) {
1377 return nil, false
1378 }
1379
1380
1381 func (er ErrorResponse) AsNews() (*News, bool) {
1382 return nil, false
1383 }
1384
1385
1386 func (er ErrorResponse) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
1387 return nil, false
1388 }
1389
1390
1391 func (er ErrorResponse) AsSpellSuggestions() (*SpellSuggestions, bool) {
1392 return nil, false
1393 }
1394
1395
1396 func (er ErrorResponse) AsTimeZone() (*TimeZone, bool) {
1397 return nil, false
1398 }
1399
1400
1401 func (er ErrorResponse) AsVideoObject() (*VideoObject, bool) {
1402 return nil, false
1403 }
1404
1405
1406 func (er ErrorResponse) AsVideos() (*Videos, bool) {
1407 return nil, false
1408 }
1409
1410
1411 func (er ErrorResponse) AsComputation() (*Computation, bool) {
1412 return nil, false
1413 }
1414
1415
1416 func (er ErrorResponse) AsIdentifiable() (*Identifiable, bool) {
1417 return nil, false
1418 }
1419
1420
1421 func (er ErrorResponse) AsBasicIdentifiable() (BasicIdentifiable, bool) {
1422 return &er, true
1423 }
1424
1425
1426 func (er ErrorResponse) AsSearchResponse() (*SearchResponse, bool) {
1427 return nil, false
1428 }
1429
1430
1431 func (er ErrorResponse) AsResponse() (*Response, bool) {
1432 return nil, false
1433 }
1434
1435
1436 func (er ErrorResponse) AsBasicResponse() (BasicResponse, bool) {
1437 return &er, true
1438 }
1439
1440
1441 func (er ErrorResponse) AsThing() (*Thing, bool) {
1442 return nil, false
1443 }
1444
1445
1446 func (er ErrorResponse) AsBasicThing() (BasicThing, bool) {
1447 return nil, false
1448 }
1449
1450
1451 func (er ErrorResponse) AsPlaces() (*Places, bool) {
1452 return nil, false
1453 }
1454
1455
1456 func (er ErrorResponse) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
1457 return nil, false
1458 }
1459
1460
1461 func (er ErrorResponse) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
1462 return nil, false
1463 }
1464
1465
1466 func (er ErrorResponse) AsAnswer() (*Answer, bool) {
1467 return nil, false
1468 }
1469
1470
1471 func (er ErrorResponse) AsBasicAnswer() (BasicAnswer, bool) {
1472 return nil, false
1473 }
1474
1475
1476 func (er ErrorResponse) AsErrorResponse() (*ErrorResponse, bool) {
1477 return &er, true
1478 }
1479
1480
1481 func (er ErrorResponse) AsCreativeWork() (*CreativeWork, bool) {
1482 return nil, false
1483 }
1484
1485
1486 func (er ErrorResponse) AsBasicCreativeWork() (BasicCreativeWork, bool) {
1487 return nil, false
1488 }
1489
1490
1491 func (er ErrorResponse) AsIntangible() (*Intangible, bool) {
1492 return nil, false
1493 }
1494
1495
1496 func (er ErrorResponse) AsBasicIntangible() (BasicIntangible, bool) {
1497 return nil, false
1498 }
1499
1500
1501 func (er ErrorResponse) AsMediaObject() (*MediaObject, bool) {
1502 return nil, false
1503 }
1504
1505
1506 func (er ErrorResponse) AsBasicMediaObject() (BasicMediaObject, bool) {
1507 return nil, false
1508 }
1509
1510
1511 func (er ErrorResponse) AsArticle() (*Article, bool) {
1512 return nil, false
1513 }
1514
1515
1516 func (er ErrorResponse) AsBasicArticle() (BasicArticle, bool) {
1517 return nil, false
1518 }
1519
1520
1521 func (er ErrorResponse) AsStructuredValue() (*StructuredValue, bool) {
1522 return nil, false
1523 }
1524
1525
1526 func (er ErrorResponse) AsResponseBase() (*ResponseBase, bool) {
1527 return nil, false
1528 }
1529
1530
1531 func (er ErrorResponse) AsBasicResponseBase() (BasicResponseBase, bool) {
1532 return &er, true
1533 }
1534
1535
1536 type BasicIdentifiable interface {
1537 AsImageObject() (*ImageObject, bool)
1538 AsWebPage() (*WebPage, bool)
1539 AsWebWebAnswer() (*WebWebAnswer, bool)
1540 AsImages() (*Images, bool)
1541 AsNewsArticle() (*NewsArticle, bool)
1542 AsNews() (*News, bool)
1543 AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool)
1544 AsSpellSuggestions() (*SpellSuggestions, bool)
1545 AsTimeZone() (*TimeZone, bool)
1546 AsVideoObject() (*VideoObject, bool)
1547 AsVideos() (*Videos, bool)
1548 AsComputation() (*Computation, bool)
1549 AsSearchResponse() (*SearchResponse, bool)
1550 AsResponse() (*Response, bool)
1551 AsBasicResponse() (BasicResponse, bool)
1552 AsThing() (*Thing, bool)
1553 AsBasicThing() (BasicThing, bool)
1554 AsPlaces() (*Places, bool)
1555 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
1556 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
1557 AsAnswer() (*Answer, bool)
1558 AsBasicAnswer() (BasicAnswer, bool)
1559 AsErrorResponse() (*ErrorResponse, bool)
1560 AsCreativeWork() (*CreativeWork, bool)
1561 AsBasicCreativeWork() (BasicCreativeWork, bool)
1562 AsIntangible() (*Intangible, bool)
1563 AsBasicIntangible() (BasicIntangible, bool)
1564 AsMediaObject() (*MediaObject, bool)
1565 AsBasicMediaObject() (BasicMediaObject, bool)
1566 AsArticle() (*Article, bool)
1567 AsBasicArticle() (BasicArticle, bool)
1568 AsStructuredValue() (*StructuredValue, bool)
1569 AsIdentifiable() (*Identifiable, bool)
1570 }
1571
1572
1573 type Identifiable struct {
1574
1575 ID *string `json:"id,omitempty"`
1576
1577 Type TypeBasicResponseBase `json:"_type,omitempty"`
1578 }
1579
1580 func unmarshalBasicIdentifiable(body []byte) (BasicIdentifiable, error) {
1581 var m map[string]interface{}
1582 err := json.Unmarshal(body, &m)
1583 if err != nil {
1584 return nil, err
1585 }
1586
1587 switch m["_type"] {
1588 case string(TypeImageObject):
1589 var ioVar ImageObject
1590 err := json.Unmarshal(body, &ioVar)
1591 return ioVar, err
1592 case string(TypeWebPage):
1593 var wp WebPage
1594 err := json.Unmarshal(body, &wp)
1595 return wp, err
1596 case string(TypeWebWebAnswer):
1597 var wwa WebWebAnswer
1598 err := json.Unmarshal(body, &wwa)
1599 return wwa, err
1600 case string(TypeImages):
1601 var i Images
1602 err := json.Unmarshal(body, &i)
1603 return i, err
1604 case string(TypeNewsArticle):
1605 var na NewsArticle
1606 err := json.Unmarshal(body, &na)
1607 return na, err
1608 case string(TypeNews):
1609 var n News
1610 err := json.Unmarshal(body, &n)
1611 return n, err
1612 case string(TypeRelatedSearchesRelatedSearchAnswer):
1613 var rsrsa RelatedSearchesRelatedSearchAnswer
1614 err := json.Unmarshal(body, &rsrsa)
1615 return rsrsa, err
1616 case string(TypeSpellSuggestions):
1617 var ss SpellSuggestions
1618 err := json.Unmarshal(body, &ss)
1619 return ss, err
1620 case string(TypeTimeZone):
1621 var tz TimeZone
1622 err := json.Unmarshal(body, &tz)
1623 return tz, err
1624 case string(TypeVideoObject):
1625 var vo VideoObject
1626 err := json.Unmarshal(body, &vo)
1627 return vo, err
1628 case string(TypeVideos):
1629 var vVar Videos
1630 err := json.Unmarshal(body, &vVar)
1631 return vVar, err
1632 case string(TypeComputation):
1633 var c Computation
1634 err := json.Unmarshal(body, &c)
1635 return c, err
1636 case string(TypeSearchResponse):
1637 var sr SearchResponse
1638 err := json.Unmarshal(body, &sr)
1639 return sr, err
1640 case string(TypeResponse):
1641 var r Response
1642 err := json.Unmarshal(body, &r)
1643 return r, err
1644 case string(TypeThing):
1645 var t Thing
1646 err := json.Unmarshal(body, &t)
1647 return t, err
1648 case string(TypePlaces):
1649 var p Places
1650 err := json.Unmarshal(body, &p)
1651 return p, err
1652 case string(TypeSearchResultsAnswer):
1653 var sra SearchResultsAnswer
1654 err := json.Unmarshal(body, &sra)
1655 return sra, err
1656 case string(TypeAnswer):
1657 var a Answer
1658 err := json.Unmarshal(body, &a)
1659 return a, err
1660 case string(TypeErrorResponse):
1661 var er ErrorResponse
1662 err := json.Unmarshal(body, &er)
1663 return er, err
1664 case string(TypeCreativeWork):
1665 var cw CreativeWork
1666 err := json.Unmarshal(body, &cw)
1667 return cw, err
1668 case string(TypeIntangible):
1669 var i Intangible
1670 err := json.Unmarshal(body, &i)
1671 return i, err
1672 case string(TypeMediaObject):
1673 var mo MediaObject
1674 err := json.Unmarshal(body, &mo)
1675 return mo, err
1676 case string(TypeArticle):
1677 var a Article
1678 err := json.Unmarshal(body, &a)
1679 return a, err
1680 case string(TypeStructuredValue):
1681 var sv StructuredValue
1682 err := json.Unmarshal(body, &sv)
1683 return sv, err
1684 default:
1685 var i Identifiable
1686 err := json.Unmarshal(body, &i)
1687 return i, err
1688 }
1689 }
1690 func unmarshalBasicIdentifiableArray(body []byte) ([]BasicIdentifiable, error) {
1691 var rawMessages []*json.RawMessage
1692 err := json.Unmarshal(body, &rawMessages)
1693 if err != nil {
1694 return nil, err
1695 }
1696
1697 iArray := make([]BasicIdentifiable, len(rawMessages))
1698
1699 for index, rawMessage := range rawMessages {
1700 i, err := unmarshalBasicIdentifiable(*rawMessage)
1701 if err != nil {
1702 return nil, err
1703 }
1704 iArray[index] = i
1705 }
1706 return iArray, nil
1707 }
1708
1709
1710 func (i Identifiable) MarshalJSON() ([]byte, error) {
1711 i.Type = TypeIdentifiable
1712 objectMap := make(map[string]interface{})
1713 if i.Type != "" {
1714 objectMap["_type"] = i.Type
1715 }
1716 return json.Marshal(objectMap)
1717 }
1718
1719
1720 func (i Identifiable) AsImageObject() (*ImageObject, bool) {
1721 return nil, false
1722 }
1723
1724
1725 func (i Identifiable) AsWebPage() (*WebPage, bool) {
1726 return nil, false
1727 }
1728
1729
1730 func (i Identifiable) AsWebWebAnswer() (*WebWebAnswer, bool) {
1731 return nil, false
1732 }
1733
1734
1735 func (i Identifiable) AsImages() (*Images, bool) {
1736 return nil, false
1737 }
1738
1739
1740 func (i Identifiable) AsNewsArticle() (*NewsArticle, bool) {
1741 return nil, false
1742 }
1743
1744
1745 func (i Identifiable) AsNews() (*News, bool) {
1746 return nil, false
1747 }
1748
1749
1750 func (i Identifiable) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
1751 return nil, false
1752 }
1753
1754
1755 func (i Identifiable) AsSpellSuggestions() (*SpellSuggestions, bool) {
1756 return nil, false
1757 }
1758
1759
1760 func (i Identifiable) AsTimeZone() (*TimeZone, bool) {
1761 return nil, false
1762 }
1763
1764
1765 func (i Identifiable) AsVideoObject() (*VideoObject, bool) {
1766 return nil, false
1767 }
1768
1769
1770 func (i Identifiable) AsVideos() (*Videos, bool) {
1771 return nil, false
1772 }
1773
1774
1775 func (i Identifiable) AsComputation() (*Computation, bool) {
1776 return nil, false
1777 }
1778
1779
1780 func (i Identifiable) AsIdentifiable() (*Identifiable, bool) {
1781 return &i, true
1782 }
1783
1784
1785 func (i Identifiable) AsBasicIdentifiable() (BasicIdentifiable, bool) {
1786 return &i, true
1787 }
1788
1789
1790 func (i Identifiable) AsSearchResponse() (*SearchResponse, bool) {
1791 return nil, false
1792 }
1793
1794
1795 func (i Identifiable) AsResponse() (*Response, bool) {
1796 return nil, false
1797 }
1798
1799
1800 func (i Identifiable) AsBasicResponse() (BasicResponse, bool) {
1801 return nil, false
1802 }
1803
1804
1805 func (i Identifiable) AsThing() (*Thing, bool) {
1806 return nil, false
1807 }
1808
1809
1810 func (i Identifiable) AsBasicThing() (BasicThing, bool) {
1811 return nil, false
1812 }
1813
1814
1815 func (i Identifiable) AsPlaces() (*Places, bool) {
1816 return nil, false
1817 }
1818
1819
1820 func (i Identifiable) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
1821 return nil, false
1822 }
1823
1824
1825 func (i Identifiable) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
1826 return nil, false
1827 }
1828
1829
1830 func (i Identifiable) AsAnswer() (*Answer, bool) {
1831 return nil, false
1832 }
1833
1834
1835 func (i Identifiable) AsBasicAnswer() (BasicAnswer, bool) {
1836 return nil, false
1837 }
1838
1839
1840 func (i Identifiable) AsErrorResponse() (*ErrorResponse, bool) {
1841 return nil, false
1842 }
1843
1844
1845 func (i Identifiable) AsCreativeWork() (*CreativeWork, bool) {
1846 return nil, false
1847 }
1848
1849
1850 func (i Identifiable) AsBasicCreativeWork() (BasicCreativeWork, bool) {
1851 return nil, false
1852 }
1853
1854
1855 func (i Identifiable) AsIntangible() (*Intangible, bool) {
1856 return nil, false
1857 }
1858
1859
1860 func (i Identifiable) AsBasicIntangible() (BasicIntangible, bool) {
1861 return nil, false
1862 }
1863
1864
1865 func (i Identifiable) AsMediaObject() (*MediaObject, bool) {
1866 return nil, false
1867 }
1868
1869
1870 func (i Identifiable) AsBasicMediaObject() (BasicMediaObject, bool) {
1871 return nil, false
1872 }
1873
1874
1875 func (i Identifiable) AsArticle() (*Article, bool) {
1876 return nil, false
1877 }
1878
1879
1880 func (i Identifiable) AsBasicArticle() (BasicArticle, bool) {
1881 return nil, false
1882 }
1883
1884
1885 func (i Identifiable) AsStructuredValue() (*StructuredValue, bool) {
1886 return nil, false
1887 }
1888
1889
1890 func (i Identifiable) AsResponseBase() (*ResponseBase, bool) {
1891 return nil, false
1892 }
1893
1894
1895 func (i Identifiable) AsBasicResponseBase() (BasicResponseBase, bool) {
1896 return &i, true
1897 }
1898
1899
1900 type ImageObject struct {
1901
1902 Thumbnail *ImageObject `json:"thumbnail,omitempty"`
1903
1904 ContentURL *string `json:"contentUrl,omitempty"`
1905
1906 HostPageURL *string `json:"hostPageUrl,omitempty"`
1907
1908 Width *int32 `json:"width,omitempty"`
1909
1910 Height *int32 `json:"height,omitempty"`
1911
1912 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
1913
1914 Provider *[]BasicThing `json:"provider,omitempty"`
1915
1916 Text *string `json:"text,omitempty"`
1917
1918 Name *string `json:"name,omitempty"`
1919
1920 URL *string `json:"url,omitempty"`
1921
1922 Image *ImageObject `json:"image,omitempty"`
1923
1924 Description *string `json:"description,omitempty"`
1925
1926 BingID *string `json:"bingId,omitempty"`
1927
1928 WebSearchURL *string `json:"webSearchUrl,omitempty"`
1929
1930 ID *string `json:"id,omitempty"`
1931
1932 Type TypeBasicResponseBase `json:"_type,omitempty"`
1933 }
1934
1935
1936 func (ioVar ImageObject) MarshalJSON() ([]byte, error) {
1937 ioVar.Type = TypeImageObject
1938 objectMap := make(map[string]interface{})
1939 if ioVar.Type != "" {
1940 objectMap["_type"] = ioVar.Type
1941 }
1942 return json.Marshal(objectMap)
1943 }
1944
1945
1946 func (ioVar ImageObject) AsImageObject() (*ImageObject, bool) {
1947 return &ioVar, true
1948 }
1949
1950
1951 func (ioVar ImageObject) AsWebPage() (*WebPage, bool) {
1952 return nil, false
1953 }
1954
1955
1956 func (ioVar ImageObject) AsWebWebAnswer() (*WebWebAnswer, bool) {
1957 return nil, false
1958 }
1959
1960
1961 func (ioVar ImageObject) AsImages() (*Images, bool) {
1962 return nil, false
1963 }
1964
1965
1966 func (ioVar ImageObject) AsNewsArticle() (*NewsArticle, bool) {
1967 return nil, false
1968 }
1969
1970
1971 func (ioVar ImageObject) AsNews() (*News, bool) {
1972 return nil, false
1973 }
1974
1975
1976 func (ioVar ImageObject) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
1977 return nil, false
1978 }
1979
1980
1981 func (ioVar ImageObject) AsSpellSuggestions() (*SpellSuggestions, bool) {
1982 return nil, false
1983 }
1984
1985
1986 func (ioVar ImageObject) AsTimeZone() (*TimeZone, bool) {
1987 return nil, false
1988 }
1989
1990
1991 func (ioVar ImageObject) AsVideoObject() (*VideoObject, bool) {
1992 return nil, false
1993 }
1994
1995
1996 func (ioVar ImageObject) AsVideos() (*Videos, bool) {
1997 return nil, false
1998 }
1999
2000
2001 func (ioVar ImageObject) AsComputation() (*Computation, bool) {
2002 return nil, false
2003 }
2004
2005
2006 func (ioVar ImageObject) AsIdentifiable() (*Identifiable, bool) {
2007 return nil, false
2008 }
2009
2010
2011 func (ioVar ImageObject) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2012 return &ioVar, true
2013 }
2014
2015
2016 func (ioVar ImageObject) AsSearchResponse() (*SearchResponse, bool) {
2017 return nil, false
2018 }
2019
2020
2021 func (ioVar ImageObject) AsResponse() (*Response, bool) {
2022 return nil, false
2023 }
2024
2025
2026 func (ioVar ImageObject) AsBasicResponse() (BasicResponse, bool) {
2027 return &ioVar, true
2028 }
2029
2030
2031 func (ioVar ImageObject) AsThing() (*Thing, bool) {
2032 return nil, false
2033 }
2034
2035
2036 func (ioVar ImageObject) AsBasicThing() (BasicThing, bool) {
2037 return &ioVar, true
2038 }
2039
2040
2041 func (ioVar ImageObject) AsPlaces() (*Places, bool) {
2042 return nil, false
2043 }
2044
2045
2046 func (ioVar ImageObject) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2047 return nil, false
2048 }
2049
2050
2051 func (ioVar ImageObject) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2052 return nil, false
2053 }
2054
2055
2056 func (ioVar ImageObject) AsAnswer() (*Answer, bool) {
2057 return nil, false
2058 }
2059
2060
2061 func (ioVar ImageObject) AsBasicAnswer() (BasicAnswer, bool) {
2062 return nil, false
2063 }
2064
2065
2066 func (ioVar ImageObject) AsErrorResponse() (*ErrorResponse, bool) {
2067 return nil, false
2068 }
2069
2070
2071 func (ioVar ImageObject) AsCreativeWork() (*CreativeWork, bool) {
2072 return nil, false
2073 }
2074
2075
2076 func (ioVar ImageObject) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2077 return &ioVar, true
2078 }
2079
2080
2081 func (ioVar ImageObject) AsIntangible() (*Intangible, bool) {
2082 return nil, false
2083 }
2084
2085
2086 func (ioVar ImageObject) AsBasicIntangible() (BasicIntangible, bool) {
2087 return nil, false
2088 }
2089
2090
2091 func (ioVar ImageObject) AsMediaObject() (*MediaObject, bool) {
2092 return nil, false
2093 }
2094
2095
2096 func (ioVar ImageObject) AsBasicMediaObject() (BasicMediaObject, bool) {
2097 return &ioVar, true
2098 }
2099
2100
2101 func (ioVar ImageObject) AsArticle() (*Article, bool) {
2102 return nil, false
2103 }
2104
2105
2106 func (ioVar ImageObject) AsBasicArticle() (BasicArticle, bool) {
2107 return nil, false
2108 }
2109
2110
2111 func (ioVar ImageObject) AsStructuredValue() (*StructuredValue, bool) {
2112 return nil, false
2113 }
2114
2115
2116 func (ioVar ImageObject) AsResponseBase() (*ResponseBase, bool) {
2117 return nil, false
2118 }
2119
2120
2121 func (ioVar ImageObject) AsBasicResponseBase() (BasicResponseBase, bool) {
2122 return &ioVar, true
2123 }
2124
2125
2126 func (ioVar *ImageObject) UnmarshalJSON(body []byte) error {
2127 var m map[string]*json.RawMessage
2128 err := json.Unmarshal(body, &m)
2129 if err != nil {
2130 return err
2131 }
2132 for k, v := range m {
2133 switch k {
2134 case "thumbnail":
2135 if v != nil {
2136 var thumbnail ImageObject
2137 err = json.Unmarshal(*v, &thumbnail)
2138 if err != nil {
2139 return err
2140 }
2141 ioVar.Thumbnail = &thumbnail
2142 }
2143 case "contentUrl":
2144 if v != nil {
2145 var contentURL string
2146 err = json.Unmarshal(*v, &contentURL)
2147 if err != nil {
2148 return err
2149 }
2150 ioVar.ContentURL = &contentURL
2151 }
2152 case "hostPageUrl":
2153 if v != nil {
2154 var hostPageURL string
2155 err = json.Unmarshal(*v, &hostPageURL)
2156 if err != nil {
2157 return err
2158 }
2159 ioVar.HostPageURL = &hostPageURL
2160 }
2161 case "width":
2162 if v != nil {
2163 var width int32
2164 err = json.Unmarshal(*v, &width)
2165 if err != nil {
2166 return err
2167 }
2168 ioVar.Width = &width
2169 }
2170 case "height":
2171 if v != nil {
2172 var height int32
2173 err = json.Unmarshal(*v, &height)
2174 if err != nil {
2175 return err
2176 }
2177 ioVar.Height = &height
2178 }
2179 case "thumbnailUrl":
2180 if v != nil {
2181 var thumbnailURL string
2182 err = json.Unmarshal(*v, &thumbnailURL)
2183 if err != nil {
2184 return err
2185 }
2186 ioVar.ThumbnailURL = &thumbnailURL
2187 }
2188 case "provider":
2189 if v != nil {
2190 provider, err := unmarshalBasicThingArray(*v)
2191 if err != nil {
2192 return err
2193 }
2194 ioVar.Provider = &provider
2195 }
2196 case "text":
2197 if v != nil {
2198 var textVar string
2199 err = json.Unmarshal(*v, &textVar)
2200 if err != nil {
2201 return err
2202 }
2203 ioVar.Text = &textVar
2204 }
2205 case "name":
2206 if v != nil {
2207 var name string
2208 err = json.Unmarshal(*v, &name)
2209 if err != nil {
2210 return err
2211 }
2212 ioVar.Name = &name
2213 }
2214 case "url":
2215 if v != nil {
2216 var URL string
2217 err = json.Unmarshal(*v, &URL)
2218 if err != nil {
2219 return err
2220 }
2221 ioVar.URL = &URL
2222 }
2223 case "image":
2224 if v != nil {
2225 var imageVar ImageObject
2226 err = json.Unmarshal(*v, &imageVar)
2227 if err != nil {
2228 return err
2229 }
2230 ioVar.Image = &imageVar
2231 }
2232 case "description":
2233 if v != nil {
2234 var description string
2235 err = json.Unmarshal(*v, &description)
2236 if err != nil {
2237 return err
2238 }
2239 ioVar.Description = &description
2240 }
2241 case "bingId":
2242 if v != nil {
2243 var bingID string
2244 err = json.Unmarshal(*v, &bingID)
2245 if err != nil {
2246 return err
2247 }
2248 ioVar.BingID = &bingID
2249 }
2250 case "webSearchUrl":
2251 if v != nil {
2252 var webSearchURL string
2253 err = json.Unmarshal(*v, &webSearchURL)
2254 if err != nil {
2255 return err
2256 }
2257 ioVar.WebSearchURL = &webSearchURL
2258 }
2259 case "id":
2260 if v != nil {
2261 var ID string
2262 err = json.Unmarshal(*v, &ID)
2263 if err != nil {
2264 return err
2265 }
2266 ioVar.ID = &ID
2267 }
2268 case "_type":
2269 if v != nil {
2270 var typeVar TypeBasicResponseBase
2271 err = json.Unmarshal(*v, &typeVar)
2272 if err != nil {
2273 return err
2274 }
2275 ioVar.Type = typeVar
2276 }
2277 }
2278 }
2279
2280 return nil
2281 }
2282
2283
2284 type Images struct {
2285
2286 NextOffset *int32 `json:"nextOffset,omitempty"`
2287
2288 Value *[]ImageObject `json:"value,omitempty"`
2289
2290 QueryExpansions *[]Query `json:"queryExpansions,omitempty"`
2291
2292 SimilarTerms *[]Query `json:"similarTerms,omitempty"`
2293
2294 RelatedSearches *[]Query `json:"relatedSearches,omitempty"`
2295
2296 QueryContext *QueryContext `json:"queryContext,omitempty"`
2297
2298 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
2299
2300 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
2301
2302 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
2303
2304 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2305
2306 ID *string `json:"id,omitempty"`
2307
2308 Type TypeBasicResponseBase `json:"_type,omitempty"`
2309 }
2310
2311
2312 func (i Images) MarshalJSON() ([]byte, error) {
2313 i.Type = TypeImages
2314 objectMap := make(map[string]interface{})
2315 if i.Value != nil {
2316 objectMap["value"] = i.Value
2317 }
2318 if i.Type != "" {
2319 objectMap["_type"] = i.Type
2320 }
2321 return json.Marshal(objectMap)
2322 }
2323
2324
2325 func (i Images) AsImageObject() (*ImageObject, bool) {
2326 return nil, false
2327 }
2328
2329
2330 func (i Images) AsWebPage() (*WebPage, bool) {
2331 return nil, false
2332 }
2333
2334
2335 func (i Images) AsWebWebAnswer() (*WebWebAnswer, bool) {
2336 return nil, false
2337 }
2338
2339
2340 func (i Images) AsImages() (*Images, bool) {
2341 return &i, true
2342 }
2343
2344
2345 func (i Images) AsNewsArticle() (*NewsArticle, bool) {
2346 return nil, false
2347 }
2348
2349
2350 func (i Images) AsNews() (*News, bool) {
2351 return nil, false
2352 }
2353
2354
2355 func (i Images) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
2356 return nil, false
2357 }
2358
2359
2360 func (i Images) AsSpellSuggestions() (*SpellSuggestions, bool) {
2361 return nil, false
2362 }
2363
2364
2365 func (i Images) AsTimeZone() (*TimeZone, bool) {
2366 return nil, false
2367 }
2368
2369
2370 func (i Images) AsVideoObject() (*VideoObject, bool) {
2371 return nil, false
2372 }
2373
2374
2375 func (i Images) AsVideos() (*Videos, bool) {
2376 return nil, false
2377 }
2378
2379
2380 func (i Images) AsComputation() (*Computation, bool) {
2381 return nil, false
2382 }
2383
2384
2385 func (i Images) AsIdentifiable() (*Identifiable, bool) {
2386 return nil, false
2387 }
2388
2389
2390 func (i Images) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2391 return &i, true
2392 }
2393
2394
2395 func (i Images) AsSearchResponse() (*SearchResponse, bool) {
2396 return nil, false
2397 }
2398
2399
2400 func (i Images) AsResponse() (*Response, bool) {
2401 return nil, false
2402 }
2403
2404
2405 func (i Images) AsBasicResponse() (BasicResponse, bool) {
2406 return &i, true
2407 }
2408
2409
2410 func (i Images) AsThing() (*Thing, bool) {
2411 return nil, false
2412 }
2413
2414
2415 func (i Images) AsBasicThing() (BasicThing, bool) {
2416 return nil, false
2417 }
2418
2419
2420 func (i Images) AsPlaces() (*Places, bool) {
2421 return nil, false
2422 }
2423
2424
2425 func (i Images) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2426 return nil, false
2427 }
2428
2429
2430 func (i Images) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2431 return &i, true
2432 }
2433
2434
2435 func (i Images) AsAnswer() (*Answer, bool) {
2436 return nil, false
2437 }
2438
2439
2440 func (i Images) AsBasicAnswer() (BasicAnswer, bool) {
2441 return &i, true
2442 }
2443
2444
2445 func (i Images) AsErrorResponse() (*ErrorResponse, bool) {
2446 return nil, false
2447 }
2448
2449
2450 func (i Images) AsCreativeWork() (*CreativeWork, bool) {
2451 return nil, false
2452 }
2453
2454
2455 func (i Images) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2456 return nil, false
2457 }
2458
2459
2460 func (i Images) AsIntangible() (*Intangible, bool) {
2461 return nil, false
2462 }
2463
2464
2465 func (i Images) AsBasicIntangible() (BasicIntangible, bool) {
2466 return nil, false
2467 }
2468
2469
2470 func (i Images) AsMediaObject() (*MediaObject, bool) {
2471 return nil, false
2472 }
2473
2474
2475 func (i Images) AsBasicMediaObject() (BasicMediaObject, bool) {
2476 return nil, false
2477 }
2478
2479
2480 func (i Images) AsArticle() (*Article, bool) {
2481 return nil, false
2482 }
2483
2484
2485 func (i Images) AsBasicArticle() (BasicArticle, bool) {
2486 return nil, false
2487 }
2488
2489
2490 func (i Images) AsStructuredValue() (*StructuredValue, bool) {
2491 return nil, false
2492 }
2493
2494
2495 func (i Images) AsResponseBase() (*ResponseBase, bool) {
2496 return nil, false
2497 }
2498
2499
2500 func (i Images) AsBasicResponseBase() (BasicResponseBase, bool) {
2501 return &i, true
2502 }
2503
2504
2505 type BasicIntangible interface {
2506 AsStructuredValue() (*StructuredValue, bool)
2507 AsIntangible() (*Intangible, bool)
2508 }
2509
2510
2511 type Intangible struct {
2512
2513 Name *string `json:"name,omitempty"`
2514
2515 URL *string `json:"url,omitempty"`
2516
2517 Image *ImageObject `json:"image,omitempty"`
2518
2519 Description *string `json:"description,omitempty"`
2520
2521 BingID *string `json:"bingId,omitempty"`
2522
2523 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2524
2525 ID *string `json:"id,omitempty"`
2526
2527 Type TypeBasicResponseBase `json:"_type,omitempty"`
2528 }
2529
2530 func unmarshalBasicIntangible(body []byte) (BasicIntangible, error) {
2531 var m map[string]interface{}
2532 err := json.Unmarshal(body, &m)
2533 if err != nil {
2534 return nil, err
2535 }
2536
2537 switch m["_type"] {
2538 case string(TypeStructuredValue):
2539 var sv StructuredValue
2540 err := json.Unmarshal(body, &sv)
2541 return sv, err
2542 default:
2543 var i Intangible
2544 err := json.Unmarshal(body, &i)
2545 return i, err
2546 }
2547 }
2548 func unmarshalBasicIntangibleArray(body []byte) ([]BasicIntangible, error) {
2549 var rawMessages []*json.RawMessage
2550 err := json.Unmarshal(body, &rawMessages)
2551 if err != nil {
2552 return nil, err
2553 }
2554
2555 iArray := make([]BasicIntangible, len(rawMessages))
2556
2557 for index, rawMessage := range rawMessages {
2558 i, err := unmarshalBasicIntangible(*rawMessage)
2559 if err != nil {
2560 return nil, err
2561 }
2562 iArray[index] = i
2563 }
2564 return iArray, nil
2565 }
2566
2567
2568 func (i Intangible) MarshalJSON() ([]byte, error) {
2569 i.Type = TypeIntangible
2570 objectMap := make(map[string]interface{})
2571 if i.Type != "" {
2572 objectMap["_type"] = i.Type
2573 }
2574 return json.Marshal(objectMap)
2575 }
2576
2577
2578 func (i Intangible) AsImageObject() (*ImageObject, bool) {
2579 return nil, false
2580 }
2581
2582
2583 func (i Intangible) AsWebPage() (*WebPage, bool) {
2584 return nil, false
2585 }
2586
2587
2588 func (i Intangible) AsWebWebAnswer() (*WebWebAnswer, bool) {
2589 return nil, false
2590 }
2591
2592
2593 func (i Intangible) AsImages() (*Images, bool) {
2594 return nil, false
2595 }
2596
2597
2598 func (i Intangible) AsNewsArticle() (*NewsArticle, bool) {
2599 return nil, false
2600 }
2601
2602
2603 func (i Intangible) AsNews() (*News, bool) {
2604 return nil, false
2605 }
2606
2607
2608 func (i Intangible) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
2609 return nil, false
2610 }
2611
2612
2613 func (i Intangible) AsSpellSuggestions() (*SpellSuggestions, bool) {
2614 return nil, false
2615 }
2616
2617
2618 func (i Intangible) AsTimeZone() (*TimeZone, bool) {
2619 return nil, false
2620 }
2621
2622
2623 func (i Intangible) AsVideoObject() (*VideoObject, bool) {
2624 return nil, false
2625 }
2626
2627
2628 func (i Intangible) AsVideos() (*Videos, bool) {
2629 return nil, false
2630 }
2631
2632
2633 func (i Intangible) AsComputation() (*Computation, bool) {
2634 return nil, false
2635 }
2636
2637
2638 func (i Intangible) AsIdentifiable() (*Identifiable, bool) {
2639 return nil, false
2640 }
2641
2642
2643 func (i Intangible) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2644 return &i, true
2645 }
2646
2647
2648 func (i Intangible) AsSearchResponse() (*SearchResponse, bool) {
2649 return nil, false
2650 }
2651
2652
2653 func (i Intangible) AsResponse() (*Response, bool) {
2654 return nil, false
2655 }
2656
2657
2658 func (i Intangible) AsBasicResponse() (BasicResponse, bool) {
2659 return &i, true
2660 }
2661
2662
2663 func (i Intangible) AsThing() (*Thing, bool) {
2664 return nil, false
2665 }
2666
2667
2668 func (i Intangible) AsBasicThing() (BasicThing, bool) {
2669 return &i, true
2670 }
2671
2672
2673 func (i Intangible) AsPlaces() (*Places, bool) {
2674 return nil, false
2675 }
2676
2677
2678 func (i Intangible) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2679 return nil, false
2680 }
2681
2682
2683 func (i Intangible) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2684 return nil, false
2685 }
2686
2687
2688 func (i Intangible) AsAnswer() (*Answer, bool) {
2689 return nil, false
2690 }
2691
2692
2693 func (i Intangible) AsBasicAnswer() (BasicAnswer, bool) {
2694 return nil, false
2695 }
2696
2697
2698 func (i Intangible) AsErrorResponse() (*ErrorResponse, bool) {
2699 return nil, false
2700 }
2701
2702
2703 func (i Intangible) AsCreativeWork() (*CreativeWork, bool) {
2704 return nil, false
2705 }
2706
2707
2708 func (i Intangible) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2709 return nil, false
2710 }
2711
2712
2713 func (i Intangible) AsIntangible() (*Intangible, bool) {
2714 return &i, true
2715 }
2716
2717
2718 func (i Intangible) AsBasicIntangible() (BasicIntangible, bool) {
2719 return &i, true
2720 }
2721
2722
2723 func (i Intangible) AsMediaObject() (*MediaObject, bool) {
2724 return nil, false
2725 }
2726
2727
2728 func (i Intangible) AsBasicMediaObject() (BasicMediaObject, bool) {
2729 return nil, false
2730 }
2731
2732
2733 func (i Intangible) AsArticle() (*Article, bool) {
2734 return nil, false
2735 }
2736
2737
2738 func (i Intangible) AsBasicArticle() (BasicArticle, bool) {
2739 return nil, false
2740 }
2741
2742
2743 func (i Intangible) AsStructuredValue() (*StructuredValue, bool) {
2744 return nil, false
2745 }
2746
2747
2748 func (i Intangible) AsResponseBase() (*ResponseBase, bool) {
2749 return nil, false
2750 }
2751
2752
2753 func (i Intangible) AsBasicResponseBase() (BasicResponseBase, bool) {
2754 return &i, true
2755 }
2756
2757
2758 type BasicMediaObject interface {
2759 AsImageObject() (*ImageObject, bool)
2760 AsVideoObject() (*VideoObject, bool)
2761 AsMediaObject() (*MediaObject, bool)
2762 }
2763
2764
2765 type MediaObject struct {
2766
2767 ContentURL *string `json:"contentUrl,omitempty"`
2768
2769 HostPageURL *string `json:"hostPageUrl,omitempty"`
2770
2771 Width *int32 `json:"width,omitempty"`
2772
2773 Height *int32 `json:"height,omitempty"`
2774
2775 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
2776
2777 Provider *[]BasicThing `json:"provider,omitempty"`
2778
2779 Text *string `json:"text,omitempty"`
2780
2781 Name *string `json:"name,omitempty"`
2782
2783 URL *string `json:"url,omitempty"`
2784
2785 Image *ImageObject `json:"image,omitempty"`
2786
2787 Description *string `json:"description,omitempty"`
2788
2789 BingID *string `json:"bingId,omitempty"`
2790
2791 WebSearchURL *string `json:"webSearchUrl,omitempty"`
2792
2793 ID *string `json:"id,omitempty"`
2794
2795 Type TypeBasicResponseBase `json:"_type,omitempty"`
2796 }
2797
2798 func unmarshalBasicMediaObject(body []byte) (BasicMediaObject, error) {
2799 var m map[string]interface{}
2800 err := json.Unmarshal(body, &m)
2801 if err != nil {
2802 return nil, err
2803 }
2804
2805 switch m["_type"] {
2806 case string(TypeImageObject):
2807 var ioVar ImageObject
2808 err := json.Unmarshal(body, &ioVar)
2809 return ioVar, err
2810 case string(TypeVideoObject):
2811 var vo VideoObject
2812 err := json.Unmarshal(body, &vo)
2813 return vo, err
2814 default:
2815 var mo MediaObject
2816 err := json.Unmarshal(body, &mo)
2817 return mo, err
2818 }
2819 }
2820 func unmarshalBasicMediaObjectArray(body []byte) ([]BasicMediaObject, error) {
2821 var rawMessages []*json.RawMessage
2822 err := json.Unmarshal(body, &rawMessages)
2823 if err != nil {
2824 return nil, err
2825 }
2826
2827 moArray := make([]BasicMediaObject, len(rawMessages))
2828
2829 for index, rawMessage := range rawMessages {
2830 mo, err := unmarshalBasicMediaObject(*rawMessage)
2831 if err != nil {
2832 return nil, err
2833 }
2834 moArray[index] = mo
2835 }
2836 return moArray, nil
2837 }
2838
2839
2840 func (mo MediaObject) MarshalJSON() ([]byte, error) {
2841 mo.Type = TypeMediaObject
2842 objectMap := make(map[string]interface{})
2843 if mo.Type != "" {
2844 objectMap["_type"] = mo.Type
2845 }
2846 return json.Marshal(objectMap)
2847 }
2848
2849
2850 func (mo MediaObject) AsImageObject() (*ImageObject, bool) {
2851 return nil, false
2852 }
2853
2854
2855 func (mo MediaObject) AsWebPage() (*WebPage, bool) {
2856 return nil, false
2857 }
2858
2859
2860 func (mo MediaObject) AsWebWebAnswer() (*WebWebAnswer, bool) {
2861 return nil, false
2862 }
2863
2864
2865 func (mo MediaObject) AsImages() (*Images, bool) {
2866 return nil, false
2867 }
2868
2869
2870 func (mo MediaObject) AsNewsArticle() (*NewsArticle, bool) {
2871 return nil, false
2872 }
2873
2874
2875 func (mo MediaObject) AsNews() (*News, bool) {
2876 return nil, false
2877 }
2878
2879
2880 func (mo MediaObject) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
2881 return nil, false
2882 }
2883
2884
2885 func (mo MediaObject) AsSpellSuggestions() (*SpellSuggestions, bool) {
2886 return nil, false
2887 }
2888
2889
2890 func (mo MediaObject) AsTimeZone() (*TimeZone, bool) {
2891 return nil, false
2892 }
2893
2894
2895 func (mo MediaObject) AsVideoObject() (*VideoObject, bool) {
2896 return nil, false
2897 }
2898
2899
2900 func (mo MediaObject) AsVideos() (*Videos, bool) {
2901 return nil, false
2902 }
2903
2904
2905 func (mo MediaObject) AsComputation() (*Computation, bool) {
2906 return nil, false
2907 }
2908
2909
2910 func (mo MediaObject) AsIdentifiable() (*Identifiable, bool) {
2911 return nil, false
2912 }
2913
2914
2915 func (mo MediaObject) AsBasicIdentifiable() (BasicIdentifiable, bool) {
2916 return &mo, true
2917 }
2918
2919
2920 func (mo MediaObject) AsSearchResponse() (*SearchResponse, bool) {
2921 return nil, false
2922 }
2923
2924
2925 func (mo MediaObject) AsResponse() (*Response, bool) {
2926 return nil, false
2927 }
2928
2929
2930 func (mo MediaObject) AsBasicResponse() (BasicResponse, bool) {
2931 return &mo, true
2932 }
2933
2934
2935 func (mo MediaObject) AsThing() (*Thing, bool) {
2936 return nil, false
2937 }
2938
2939
2940 func (mo MediaObject) AsBasicThing() (BasicThing, bool) {
2941 return &mo, true
2942 }
2943
2944
2945 func (mo MediaObject) AsPlaces() (*Places, bool) {
2946 return nil, false
2947 }
2948
2949
2950 func (mo MediaObject) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
2951 return nil, false
2952 }
2953
2954
2955 func (mo MediaObject) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
2956 return nil, false
2957 }
2958
2959
2960 func (mo MediaObject) AsAnswer() (*Answer, bool) {
2961 return nil, false
2962 }
2963
2964
2965 func (mo MediaObject) AsBasicAnswer() (BasicAnswer, bool) {
2966 return nil, false
2967 }
2968
2969
2970 func (mo MediaObject) AsErrorResponse() (*ErrorResponse, bool) {
2971 return nil, false
2972 }
2973
2974
2975 func (mo MediaObject) AsCreativeWork() (*CreativeWork, bool) {
2976 return nil, false
2977 }
2978
2979
2980 func (mo MediaObject) AsBasicCreativeWork() (BasicCreativeWork, bool) {
2981 return &mo, true
2982 }
2983
2984
2985 func (mo MediaObject) AsIntangible() (*Intangible, bool) {
2986 return nil, false
2987 }
2988
2989
2990 func (mo MediaObject) AsBasicIntangible() (BasicIntangible, bool) {
2991 return nil, false
2992 }
2993
2994
2995 func (mo MediaObject) AsMediaObject() (*MediaObject, bool) {
2996 return &mo, true
2997 }
2998
2999
3000 func (mo MediaObject) AsBasicMediaObject() (BasicMediaObject, bool) {
3001 return &mo, true
3002 }
3003
3004
3005 func (mo MediaObject) AsArticle() (*Article, bool) {
3006 return nil, false
3007 }
3008
3009
3010 func (mo MediaObject) AsBasicArticle() (BasicArticle, bool) {
3011 return nil, false
3012 }
3013
3014
3015 func (mo MediaObject) AsStructuredValue() (*StructuredValue, bool) {
3016 return nil, false
3017 }
3018
3019
3020 func (mo MediaObject) AsResponseBase() (*ResponseBase, bool) {
3021 return nil, false
3022 }
3023
3024
3025 func (mo MediaObject) AsBasicResponseBase() (BasicResponseBase, bool) {
3026 return &mo, true
3027 }
3028
3029
3030 func (mo *MediaObject) UnmarshalJSON(body []byte) error {
3031 var m map[string]*json.RawMessage
3032 err := json.Unmarshal(body, &m)
3033 if err != nil {
3034 return err
3035 }
3036 for k, v := range m {
3037 switch k {
3038 case "contentUrl":
3039 if v != nil {
3040 var contentURL string
3041 err = json.Unmarshal(*v, &contentURL)
3042 if err != nil {
3043 return err
3044 }
3045 mo.ContentURL = &contentURL
3046 }
3047 case "hostPageUrl":
3048 if v != nil {
3049 var hostPageURL string
3050 err = json.Unmarshal(*v, &hostPageURL)
3051 if err != nil {
3052 return err
3053 }
3054 mo.HostPageURL = &hostPageURL
3055 }
3056 case "width":
3057 if v != nil {
3058 var width int32
3059 err = json.Unmarshal(*v, &width)
3060 if err != nil {
3061 return err
3062 }
3063 mo.Width = &width
3064 }
3065 case "height":
3066 if v != nil {
3067 var height int32
3068 err = json.Unmarshal(*v, &height)
3069 if err != nil {
3070 return err
3071 }
3072 mo.Height = &height
3073 }
3074 case "thumbnailUrl":
3075 if v != nil {
3076 var thumbnailURL string
3077 err = json.Unmarshal(*v, &thumbnailURL)
3078 if err != nil {
3079 return err
3080 }
3081 mo.ThumbnailURL = &thumbnailURL
3082 }
3083 case "provider":
3084 if v != nil {
3085 provider, err := unmarshalBasicThingArray(*v)
3086 if err != nil {
3087 return err
3088 }
3089 mo.Provider = &provider
3090 }
3091 case "text":
3092 if v != nil {
3093 var textVar string
3094 err = json.Unmarshal(*v, &textVar)
3095 if err != nil {
3096 return err
3097 }
3098 mo.Text = &textVar
3099 }
3100 case "name":
3101 if v != nil {
3102 var name string
3103 err = json.Unmarshal(*v, &name)
3104 if err != nil {
3105 return err
3106 }
3107 mo.Name = &name
3108 }
3109 case "url":
3110 if v != nil {
3111 var URL string
3112 err = json.Unmarshal(*v, &URL)
3113 if err != nil {
3114 return err
3115 }
3116 mo.URL = &URL
3117 }
3118 case "image":
3119 if v != nil {
3120 var imageVar ImageObject
3121 err = json.Unmarshal(*v, &imageVar)
3122 if err != nil {
3123 return err
3124 }
3125 mo.Image = &imageVar
3126 }
3127 case "description":
3128 if v != nil {
3129 var description string
3130 err = json.Unmarshal(*v, &description)
3131 if err != nil {
3132 return err
3133 }
3134 mo.Description = &description
3135 }
3136 case "bingId":
3137 if v != nil {
3138 var bingID string
3139 err = json.Unmarshal(*v, &bingID)
3140 if err != nil {
3141 return err
3142 }
3143 mo.BingID = &bingID
3144 }
3145 case "webSearchUrl":
3146 if v != nil {
3147 var webSearchURL string
3148 err = json.Unmarshal(*v, &webSearchURL)
3149 if err != nil {
3150 return err
3151 }
3152 mo.WebSearchURL = &webSearchURL
3153 }
3154 case "id":
3155 if v != nil {
3156 var ID string
3157 err = json.Unmarshal(*v, &ID)
3158 if err != nil {
3159 return err
3160 }
3161 mo.ID = &ID
3162 }
3163 case "_type":
3164 if v != nil {
3165 var typeVar TypeBasicResponseBase
3166 err = json.Unmarshal(*v, &typeVar)
3167 if err != nil {
3168 return err
3169 }
3170 mo.Type = typeVar
3171 }
3172 }
3173 }
3174
3175 return nil
3176 }
3177
3178
3179 type News struct {
3180
3181 Value *[]NewsArticle `json:"value,omitempty"`
3182
3183 Location *string `json:"location,omitempty"`
3184
3185 QueryContext *QueryContext `json:"queryContext,omitempty"`
3186
3187 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
3188
3189 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
3190
3191 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
3192
3193 WebSearchURL *string `json:"webSearchUrl,omitempty"`
3194
3195 ID *string `json:"id,omitempty"`
3196
3197 Type TypeBasicResponseBase `json:"_type,omitempty"`
3198 }
3199
3200
3201 func (n News) MarshalJSON() ([]byte, error) {
3202 n.Type = TypeNews
3203 objectMap := make(map[string]interface{})
3204 if n.Value != nil {
3205 objectMap["value"] = n.Value
3206 }
3207 if n.Type != "" {
3208 objectMap["_type"] = n.Type
3209 }
3210 return json.Marshal(objectMap)
3211 }
3212
3213
3214 func (n News) AsImageObject() (*ImageObject, bool) {
3215 return nil, false
3216 }
3217
3218
3219 func (n News) AsWebPage() (*WebPage, bool) {
3220 return nil, false
3221 }
3222
3223
3224 func (n News) AsWebWebAnswer() (*WebWebAnswer, bool) {
3225 return nil, false
3226 }
3227
3228
3229 func (n News) AsImages() (*Images, bool) {
3230 return nil, false
3231 }
3232
3233
3234 func (n News) AsNewsArticle() (*NewsArticle, bool) {
3235 return nil, false
3236 }
3237
3238
3239 func (n News) AsNews() (*News, bool) {
3240 return &n, true
3241 }
3242
3243
3244 func (n News) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
3245 return nil, false
3246 }
3247
3248
3249 func (n News) AsSpellSuggestions() (*SpellSuggestions, bool) {
3250 return nil, false
3251 }
3252
3253
3254 func (n News) AsTimeZone() (*TimeZone, bool) {
3255 return nil, false
3256 }
3257
3258
3259 func (n News) AsVideoObject() (*VideoObject, bool) {
3260 return nil, false
3261 }
3262
3263
3264 func (n News) AsVideos() (*Videos, bool) {
3265 return nil, false
3266 }
3267
3268
3269 func (n News) AsComputation() (*Computation, bool) {
3270 return nil, false
3271 }
3272
3273
3274 func (n News) AsIdentifiable() (*Identifiable, bool) {
3275 return nil, false
3276 }
3277
3278
3279 func (n News) AsBasicIdentifiable() (BasicIdentifiable, bool) {
3280 return &n, true
3281 }
3282
3283
3284 func (n News) AsSearchResponse() (*SearchResponse, bool) {
3285 return nil, false
3286 }
3287
3288
3289 func (n News) AsResponse() (*Response, bool) {
3290 return nil, false
3291 }
3292
3293
3294 func (n News) AsBasicResponse() (BasicResponse, bool) {
3295 return &n, true
3296 }
3297
3298
3299 func (n News) AsThing() (*Thing, bool) {
3300 return nil, false
3301 }
3302
3303
3304 func (n News) AsBasicThing() (BasicThing, bool) {
3305 return nil, false
3306 }
3307
3308
3309 func (n News) AsPlaces() (*Places, bool) {
3310 return nil, false
3311 }
3312
3313
3314 func (n News) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
3315 return nil, false
3316 }
3317
3318
3319 func (n News) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
3320 return &n, true
3321 }
3322
3323
3324 func (n News) AsAnswer() (*Answer, bool) {
3325 return nil, false
3326 }
3327
3328
3329 func (n News) AsBasicAnswer() (BasicAnswer, bool) {
3330 return &n, true
3331 }
3332
3333
3334 func (n News) AsErrorResponse() (*ErrorResponse, bool) {
3335 return nil, false
3336 }
3337
3338
3339 func (n News) AsCreativeWork() (*CreativeWork, bool) {
3340 return nil, false
3341 }
3342
3343
3344 func (n News) AsBasicCreativeWork() (BasicCreativeWork, bool) {
3345 return nil, false
3346 }
3347
3348
3349 func (n News) AsIntangible() (*Intangible, bool) {
3350 return nil, false
3351 }
3352
3353
3354 func (n News) AsBasicIntangible() (BasicIntangible, bool) {
3355 return nil, false
3356 }
3357
3358
3359 func (n News) AsMediaObject() (*MediaObject, bool) {
3360 return nil, false
3361 }
3362
3363
3364 func (n News) AsBasicMediaObject() (BasicMediaObject, bool) {
3365 return nil, false
3366 }
3367
3368
3369 func (n News) AsArticle() (*Article, bool) {
3370 return nil, false
3371 }
3372
3373
3374 func (n News) AsBasicArticle() (BasicArticle, bool) {
3375 return nil, false
3376 }
3377
3378
3379 func (n News) AsStructuredValue() (*StructuredValue, bool) {
3380 return nil, false
3381 }
3382
3383
3384 func (n News) AsResponseBase() (*ResponseBase, bool) {
3385 return nil, false
3386 }
3387
3388
3389 func (n News) AsBasicResponseBase() (BasicResponseBase, bool) {
3390 return &n, true
3391 }
3392
3393
3394 type NewsArticle struct {
3395
3396 WordCount *int32 `json:"wordCount,omitempty"`
3397
3398 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
3399
3400 Provider *[]BasicThing `json:"provider,omitempty"`
3401
3402 Text *string `json:"text,omitempty"`
3403
3404 Name *string `json:"name,omitempty"`
3405
3406 URL *string `json:"url,omitempty"`
3407
3408 Image *ImageObject `json:"image,omitempty"`
3409
3410 Description *string `json:"description,omitempty"`
3411
3412 BingID *string `json:"bingId,omitempty"`
3413
3414 WebSearchURL *string `json:"webSearchUrl,omitempty"`
3415
3416 ID *string `json:"id,omitempty"`
3417
3418 Type TypeBasicResponseBase `json:"_type,omitempty"`
3419 }
3420
3421
3422 func (na NewsArticle) MarshalJSON() ([]byte, error) {
3423 na.Type = TypeNewsArticle
3424 objectMap := make(map[string]interface{})
3425 if na.Type != "" {
3426 objectMap["_type"] = na.Type
3427 }
3428 return json.Marshal(objectMap)
3429 }
3430
3431
3432 func (na NewsArticle) AsImageObject() (*ImageObject, bool) {
3433 return nil, false
3434 }
3435
3436
3437 func (na NewsArticle) AsWebPage() (*WebPage, bool) {
3438 return nil, false
3439 }
3440
3441
3442 func (na NewsArticle) AsWebWebAnswer() (*WebWebAnswer, bool) {
3443 return nil, false
3444 }
3445
3446
3447 func (na NewsArticle) AsImages() (*Images, bool) {
3448 return nil, false
3449 }
3450
3451
3452 func (na NewsArticle) AsNewsArticle() (*NewsArticle, bool) {
3453 return &na, true
3454 }
3455
3456
3457 func (na NewsArticle) AsNews() (*News, bool) {
3458 return nil, false
3459 }
3460
3461
3462 func (na NewsArticle) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
3463 return nil, false
3464 }
3465
3466
3467 func (na NewsArticle) AsSpellSuggestions() (*SpellSuggestions, bool) {
3468 return nil, false
3469 }
3470
3471
3472 func (na NewsArticle) AsTimeZone() (*TimeZone, bool) {
3473 return nil, false
3474 }
3475
3476
3477 func (na NewsArticle) AsVideoObject() (*VideoObject, bool) {
3478 return nil, false
3479 }
3480
3481
3482 func (na NewsArticle) AsVideos() (*Videos, bool) {
3483 return nil, false
3484 }
3485
3486
3487 func (na NewsArticle) AsComputation() (*Computation, bool) {
3488 return nil, false
3489 }
3490
3491
3492 func (na NewsArticle) AsIdentifiable() (*Identifiable, bool) {
3493 return nil, false
3494 }
3495
3496
3497 func (na NewsArticle) AsBasicIdentifiable() (BasicIdentifiable, bool) {
3498 return &na, true
3499 }
3500
3501
3502 func (na NewsArticle) AsSearchResponse() (*SearchResponse, bool) {
3503 return nil, false
3504 }
3505
3506
3507 func (na NewsArticle) AsResponse() (*Response, bool) {
3508 return nil, false
3509 }
3510
3511
3512 func (na NewsArticle) AsBasicResponse() (BasicResponse, bool) {
3513 return &na, true
3514 }
3515
3516
3517 func (na NewsArticle) AsThing() (*Thing, bool) {
3518 return nil, false
3519 }
3520
3521
3522 func (na NewsArticle) AsBasicThing() (BasicThing, bool) {
3523 return &na, true
3524 }
3525
3526
3527 func (na NewsArticle) AsPlaces() (*Places, bool) {
3528 return nil, false
3529 }
3530
3531
3532 func (na NewsArticle) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
3533 return nil, false
3534 }
3535
3536
3537 func (na NewsArticle) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
3538 return nil, false
3539 }
3540
3541
3542 func (na NewsArticle) AsAnswer() (*Answer, bool) {
3543 return nil, false
3544 }
3545
3546
3547 func (na NewsArticle) AsBasicAnswer() (BasicAnswer, bool) {
3548 return nil, false
3549 }
3550
3551
3552 func (na NewsArticle) AsErrorResponse() (*ErrorResponse, bool) {
3553 return nil, false
3554 }
3555
3556
3557 func (na NewsArticle) AsCreativeWork() (*CreativeWork, bool) {
3558 return nil, false
3559 }
3560
3561
3562 func (na NewsArticle) AsBasicCreativeWork() (BasicCreativeWork, bool) {
3563 return &na, true
3564 }
3565
3566
3567 func (na NewsArticle) AsIntangible() (*Intangible, bool) {
3568 return nil, false
3569 }
3570
3571
3572 func (na NewsArticle) AsBasicIntangible() (BasicIntangible, bool) {
3573 return nil, false
3574 }
3575
3576
3577 func (na NewsArticle) AsMediaObject() (*MediaObject, bool) {
3578 return nil, false
3579 }
3580
3581
3582 func (na NewsArticle) AsBasicMediaObject() (BasicMediaObject, bool) {
3583 return nil, false
3584 }
3585
3586
3587 func (na NewsArticle) AsArticle() (*Article, bool) {
3588 return nil, false
3589 }
3590
3591
3592 func (na NewsArticle) AsBasicArticle() (BasicArticle, bool) {
3593 return &na, true
3594 }
3595
3596
3597 func (na NewsArticle) AsStructuredValue() (*StructuredValue, bool) {
3598 return nil, false
3599 }
3600
3601
3602 func (na NewsArticle) AsResponseBase() (*ResponseBase, bool) {
3603 return nil, false
3604 }
3605
3606
3607 func (na NewsArticle) AsBasicResponseBase() (BasicResponseBase, bool) {
3608 return &na, true
3609 }
3610
3611
3612 func (na *NewsArticle) UnmarshalJSON(body []byte) error {
3613 var m map[string]*json.RawMessage
3614 err := json.Unmarshal(body, &m)
3615 if err != nil {
3616 return err
3617 }
3618 for k, v := range m {
3619 switch k {
3620 case "wordCount":
3621 if v != nil {
3622 var wordCount int32
3623 err = json.Unmarshal(*v, &wordCount)
3624 if err != nil {
3625 return err
3626 }
3627 na.WordCount = &wordCount
3628 }
3629 case "thumbnailUrl":
3630 if v != nil {
3631 var thumbnailURL string
3632 err = json.Unmarshal(*v, &thumbnailURL)
3633 if err != nil {
3634 return err
3635 }
3636 na.ThumbnailURL = &thumbnailURL
3637 }
3638 case "provider":
3639 if v != nil {
3640 provider, err := unmarshalBasicThingArray(*v)
3641 if err != nil {
3642 return err
3643 }
3644 na.Provider = &provider
3645 }
3646 case "text":
3647 if v != nil {
3648 var textVar string
3649 err = json.Unmarshal(*v, &textVar)
3650 if err != nil {
3651 return err
3652 }
3653 na.Text = &textVar
3654 }
3655 case "name":
3656 if v != nil {
3657 var name string
3658 err = json.Unmarshal(*v, &name)
3659 if err != nil {
3660 return err
3661 }
3662 na.Name = &name
3663 }
3664 case "url":
3665 if v != nil {
3666 var URL string
3667 err = json.Unmarshal(*v, &URL)
3668 if err != nil {
3669 return err
3670 }
3671 na.URL = &URL
3672 }
3673 case "image":
3674 if v != nil {
3675 var imageVar ImageObject
3676 err = json.Unmarshal(*v, &imageVar)
3677 if err != nil {
3678 return err
3679 }
3680 na.Image = &imageVar
3681 }
3682 case "description":
3683 if v != nil {
3684 var description string
3685 err = json.Unmarshal(*v, &description)
3686 if err != nil {
3687 return err
3688 }
3689 na.Description = &description
3690 }
3691 case "bingId":
3692 if v != nil {
3693 var bingID string
3694 err = json.Unmarshal(*v, &bingID)
3695 if err != nil {
3696 return err
3697 }
3698 na.BingID = &bingID
3699 }
3700 case "webSearchUrl":
3701 if v != nil {
3702 var webSearchURL string
3703 err = json.Unmarshal(*v, &webSearchURL)
3704 if err != nil {
3705 return err
3706 }
3707 na.WebSearchURL = &webSearchURL
3708 }
3709 case "id":
3710 if v != nil {
3711 var ID string
3712 err = json.Unmarshal(*v, &ID)
3713 if err != nil {
3714 return err
3715 }
3716 na.ID = &ID
3717 }
3718 case "_type":
3719 if v != nil {
3720 var typeVar TypeBasicResponseBase
3721 err = json.Unmarshal(*v, &typeVar)
3722 if err != nil {
3723 return err
3724 }
3725 na.Type = typeVar
3726 }
3727 }
3728 }
3729
3730 return nil
3731 }
3732
3733
3734 type Places struct {
3735
3736 Value *[]BasicThing `json:"value,omitempty"`
3737
3738 QueryContext *QueryContext `json:"queryContext,omitempty"`
3739
3740 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
3741
3742 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
3743
3744 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
3745
3746 WebSearchURL *string `json:"webSearchUrl,omitempty"`
3747
3748 ID *string `json:"id,omitempty"`
3749
3750 Type TypeBasicResponseBase `json:"_type,omitempty"`
3751 }
3752
3753
3754 func (p Places) MarshalJSON() ([]byte, error) {
3755 p.Type = TypePlaces
3756 objectMap := make(map[string]interface{})
3757 if p.Value != nil {
3758 objectMap["value"] = p.Value
3759 }
3760 if p.Type != "" {
3761 objectMap["_type"] = p.Type
3762 }
3763 return json.Marshal(objectMap)
3764 }
3765
3766
3767 func (p Places) AsImageObject() (*ImageObject, bool) {
3768 return nil, false
3769 }
3770
3771
3772 func (p Places) AsWebPage() (*WebPage, bool) {
3773 return nil, false
3774 }
3775
3776
3777 func (p Places) AsWebWebAnswer() (*WebWebAnswer, bool) {
3778 return nil, false
3779 }
3780
3781
3782 func (p Places) AsImages() (*Images, bool) {
3783 return nil, false
3784 }
3785
3786
3787 func (p Places) AsNewsArticle() (*NewsArticle, bool) {
3788 return nil, false
3789 }
3790
3791
3792 func (p Places) AsNews() (*News, bool) {
3793 return nil, false
3794 }
3795
3796
3797 func (p Places) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
3798 return nil, false
3799 }
3800
3801
3802 func (p Places) AsSpellSuggestions() (*SpellSuggestions, bool) {
3803 return nil, false
3804 }
3805
3806
3807 func (p Places) AsTimeZone() (*TimeZone, bool) {
3808 return nil, false
3809 }
3810
3811
3812 func (p Places) AsVideoObject() (*VideoObject, bool) {
3813 return nil, false
3814 }
3815
3816
3817 func (p Places) AsVideos() (*Videos, bool) {
3818 return nil, false
3819 }
3820
3821
3822 func (p Places) AsComputation() (*Computation, bool) {
3823 return nil, false
3824 }
3825
3826
3827 func (p Places) AsIdentifiable() (*Identifiable, bool) {
3828 return nil, false
3829 }
3830
3831
3832 func (p Places) AsBasicIdentifiable() (BasicIdentifiable, bool) {
3833 return &p, true
3834 }
3835
3836
3837 func (p Places) AsSearchResponse() (*SearchResponse, bool) {
3838 return nil, false
3839 }
3840
3841
3842 func (p Places) AsResponse() (*Response, bool) {
3843 return nil, false
3844 }
3845
3846
3847 func (p Places) AsBasicResponse() (BasicResponse, bool) {
3848 return &p, true
3849 }
3850
3851
3852 func (p Places) AsThing() (*Thing, bool) {
3853 return nil, false
3854 }
3855
3856
3857 func (p Places) AsBasicThing() (BasicThing, bool) {
3858 return nil, false
3859 }
3860
3861
3862 func (p Places) AsPlaces() (*Places, bool) {
3863 return &p, true
3864 }
3865
3866
3867 func (p Places) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
3868 return nil, false
3869 }
3870
3871
3872 func (p Places) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
3873 return &p, true
3874 }
3875
3876
3877 func (p Places) AsAnswer() (*Answer, bool) {
3878 return nil, false
3879 }
3880
3881
3882 func (p Places) AsBasicAnswer() (BasicAnswer, bool) {
3883 return &p, true
3884 }
3885
3886
3887 func (p Places) AsErrorResponse() (*ErrorResponse, bool) {
3888 return nil, false
3889 }
3890
3891
3892 func (p Places) AsCreativeWork() (*CreativeWork, bool) {
3893 return nil, false
3894 }
3895
3896
3897 func (p Places) AsBasicCreativeWork() (BasicCreativeWork, bool) {
3898 return nil, false
3899 }
3900
3901
3902 func (p Places) AsIntangible() (*Intangible, bool) {
3903 return nil, false
3904 }
3905
3906
3907 func (p Places) AsBasicIntangible() (BasicIntangible, bool) {
3908 return nil, false
3909 }
3910
3911
3912 func (p Places) AsMediaObject() (*MediaObject, bool) {
3913 return nil, false
3914 }
3915
3916
3917 func (p Places) AsBasicMediaObject() (BasicMediaObject, bool) {
3918 return nil, false
3919 }
3920
3921
3922 func (p Places) AsArticle() (*Article, bool) {
3923 return nil, false
3924 }
3925
3926
3927 func (p Places) AsBasicArticle() (BasicArticle, bool) {
3928 return nil, false
3929 }
3930
3931
3932 func (p Places) AsStructuredValue() (*StructuredValue, bool) {
3933 return nil, false
3934 }
3935
3936
3937 func (p Places) AsResponseBase() (*ResponseBase, bool) {
3938 return nil, false
3939 }
3940
3941
3942 func (p Places) AsBasicResponseBase() (BasicResponseBase, bool) {
3943 return &p, true
3944 }
3945
3946
3947 func (p *Places) UnmarshalJSON(body []byte) error {
3948 var m map[string]*json.RawMessage
3949 err := json.Unmarshal(body, &m)
3950 if err != nil {
3951 return err
3952 }
3953 for k, v := range m {
3954 switch k {
3955 case "value":
3956 if v != nil {
3957 value, err := unmarshalBasicThingArray(*v)
3958 if err != nil {
3959 return err
3960 }
3961 p.Value = &value
3962 }
3963 case "queryContext":
3964 if v != nil {
3965 var queryContext QueryContext
3966 err = json.Unmarshal(*v, &queryContext)
3967 if err != nil {
3968 return err
3969 }
3970 p.QueryContext = &queryContext
3971 }
3972 case "totalEstimatedMatches":
3973 if v != nil {
3974 var totalEstimatedMatches int64
3975 err = json.Unmarshal(*v, &totalEstimatedMatches)
3976 if err != nil {
3977 return err
3978 }
3979 p.TotalEstimatedMatches = &totalEstimatedMatches
3980 }
3981 case "isFamilyFriendly":
3982 if v != nil {
3983 var isFamilyFriendly bool
3984 err = json.Unmarshal(*v, &isFamilyFriendly)
3985 if err != nil {
3986 return err
3987 }
3988 p.IsFamilyFriendly = &isFamilyFriendly
3989 }
3990 case "followUpQueries":
3991 if v != nil {
3992 var followUpQueries []Query
3993 err = json.Unmarshal(*v, &followUpQueries)
3994 if err != nil {
3995 return err
3996 }
3997 p.FollowUpQueries = &followUpQueries
3998 }
3999 case "webSearchUrl":
4000 if v != nil {
4001 var webSearchURL string
4002 err = json.Unmarshal(*v, &webSearchURL)
4003 if err != nil {
4004 return err
4005 }
4006 p.WebSearchURL = &webSearchURL
4007 }
4008 case "id":
4009 if v != nil {
4010 var ID string
4011 err = json.Unmarshal(*v, &ID)
4012 if err != nil {
4013 return err
4014 }
4015 p.ID = &ID
4016 }
4017 case "_type":
4018 if v != nil {
4019 var typeVar TypeBasicResponseBase
4020 err = json.Unmarshal(*v, &typeVar)
4021 if err != nil {
4022 return err
4023 }
4024 p.Type = typeVar
4025 }
4026 }
4027 }
4028
4029 return nil
4030 }
4031
4032
4033 type Query struct {
4034
4035 Text *string `json:"text,omitempty"`
4036
4037 DisplayText *string `json:"displayText,omitempty"`
4038
4039 WebSearchURL *string `json:"webSearchUrl,omitempty"`
4040
4041 SearchLink *string `json:"searchLink,omitempty"`
4042
4043 Thumbnail *ImageObject `json:"thumbnail,omitempty"`
4044 }
4045
4046
4047 func (q Query) MarshalJSON() ([]byte, error) {
4048 objectMap := make(map[string]interface{})
4049 if q.Text != nil {
4050 objectMap["text"] = q.Text
4051 }
4052 return json.Marshal(objectMap)
4053 }
4054
4055
4056 type QueryContext struct {
4057
4058 OriginalQuery *string `json:"originalQuery,omitempty"`
4059
4060 AlteredQuery *string `json:"alteredQuery,omitempty"`
4061
4062 AlterationOverrideQuery *string `json:"alterationOverrideQuery,omitempty"`
4063
4064 AdultIntent *bool `json:"adultIntent,omitempty"`
4065
4066 AskUserForLocation *bool `json:"askUserForLocation,omitempty"`
4067
4068 IsTransactional *bool `json:"isTransactional,omitempty"`
4069 }
4070
4071
4072 func (qc QueryContext) MarshalJSON() ([]byte, error) {
4073 objectMap := make(map[string]interface{})
4074 if qc.OriginalQuery != nil {
4075 objectMap["originalQuery"] = qc.OriginalQuery
4076 }
4077 return json.Marshal(objectMap)
4078 }
4079
4080
4081 type RankingRankingGroup struct {
4082
4083 Items *[]RankingRankingItem `json:"items,omitempty"`
4084 }
4085
4086
4087 type RankingRankingItem struct {
4088
4089 AnswerType AnswerType `json:"answerType,omitempty"`
4090
4091 ResultIndex *int32 `json:"resultIndex,omitempty"`
4092
4093 Value BasicIdentifiable `json:"value,omitempty"`
4094
4095 HTMLIndex *int32 `json:"htmlIndex,omitempty"`
4096
4097 TextualIndex *int32 `json:"textualIndex,omitempty"`
4098
4099 ScreenshotIndex *int32 `json:"screenshotIndex,omitempty"`
4100 }
4101
4102
4103 func (rri RankingRankingItem) MarshalJSON() ([]byte, error) {
4104 objectMap := make(map[string]interface{})
4105 if rri.AnswerType != "" {
4106 objectMap["answerType"] = rri.AnswerType
4107 }
4108 return json.Marshal(objectMap)
4109 }
4110
4111
4112 func (rri *RankingRankingItem) UnmarshalJSON(body []byte) error {
4113 var m map[string]*json.RawMessage
4114 err := json.Unmarshal(body, &m)
4115 if err != nil {
4116 return err
4117 }
4118 for k, v := range m {
4119 switch k {
4120 case "answerType":
4121 if v != nil {
4122 var answerType AnswerType
4123 err = json.Unmarshal(*v, &answerType)
4124 if err != nil {
4125 return err
4126 }
4127 rri.AnswerType = answerType
4128 }
4129 case "resultIndex":
4130 if v != nil {
4131 var resultIndex int32
4132 err = json.Unmarshal(*v, &resultIndex)
4133 if err != nil {
4134 return err
4135 }
4136 rri.ResultIndex = &resultIndex
4137 }
4138 case "value":
4139 if v != nil {
4140 value, err := unmarshalBasicIdentifiable(*v)
4141 if err != nil {
4142 return err
4143 }
4144 rri.Value = value
4145 }
4146 case "htmlIndex":
4147 if v != nil {
4148 var HTMLIndex int32
4149 err = json.Unmarshal(*v, &HTMLIndex)
4150 if err != nil {
4151 return err
4152 }
4153 rri.HTMLIndex = &HTMLIndex
4154 }
4155 case "textualIndex":
4156 if v != nil {
4157 var textualIndex int32
4158 err = json.Unmarshal(*v, &textualIndex)
4159 if err != nil {
4160 return err
4161 }
4162 rri.TextualIndex = &textualIndex
4163 }
4164 case "screenshotIndex":
4165 if v != nil {
4166 var screenshotIndex int32
4167 err = json.Unmarshal(*v, &screenshotIndex)
4168 if err != nil {
4169 return err
4170 }
4171 rri.ScreenshotIndex = &screenshotIndex
4172 }
4173 }
4174 }
4175
4176 return nil
4177 }
4178
4179
4180
4181 type RankingRankingResponse struct {
4182
4183 Pole *RankingRankingGroup `json:"pole,omitempty"`
4184
4185 Mainline *RankingRankingGroup `json:"mainline,omitempty"`
4186
4187 Sidebar *RankingRankingGroup `json:"sidebar,omitempty"`
4188 }
4189
4190
4191 func (rrr RankingRankingResponse) MarshalJSON() ([]byte, error) {
4192 objectMap := make(map[string]interface{})
4193 return json.Marshal(objectMap)
4194 }
4195
4196
4197 type RelatedSearchesRelatedSearchAnswer struct {
4198
4199 Value *[]Query `json:"value,omitempty"`
4200
4201 QueryContext *QueryContext `json:"queryContext,omitempty"`
4202
4203 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
4204
4205 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
4206
4207 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
4208
4209 WebSearchURL *string `json:"webSearchUrl,omitempty"`
4210
4211 ID *string `json:"id,omitempty"`
4212
4213 Type TypeBasicResponseBase `json:"_type,omitempty"`
4214 }
4215
4216
4217 func (rsrsa RelatedSearchesRelatedSearchAnswer) MarshalJSON() ([]byte, error) {
4218 rsrsa.Type = TypeRelatedSearchesRelatedSearchAnswer
4219 objectMap := make(map[string]interface{})
4220 if rsrsa.Value != nil {
4221 objectMap["value"] = rsrsa.Value
4222 }
4223 if rsrsa.Type != "" {
4224 objectMap["_type"] = rsrsa.Type
4225 }
4226 return json.Marshal(objectMap)
4227 }
4228
4229
4230 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsImageObject() (*ImageObject, bool) {
4231 return nil, false
4232 }
4233
4234
4235 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsWebPage() (*WebPage, bool) {
4236 return nil, false
4237 }
4238
4239
4240 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsWebWebAnswer() (*WebWebAnswer, bool) {
4241 return nil, false
4242 }
4243
4244
4245 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsImages() (*Images, bool) {
4246 return nil, false
4247 }
4248
4249
4250 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsNewsArticle() (*NewsArticle, bool) {
4251 return nil, false
4252 }
4253
4254
4255 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsNews() (*News, bool) {
4256 return nil, false
4257 }
4258
4259
4260 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
4261 return &rsrsa, true
4262 }
4263
4264
4265 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsSpellSuggestions() (*SpellSuggestions, bool) {
4266 return nil, false
4267 }
4268
4269
4270 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsTimeZone() (*TimeZone, bool) {
4271 return nil, false
4272 }
4273
4274
4275 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsVideoObject() (*VideoObject, bool) {
4276 return nil, false
4277 }
4278
4279
4280 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsVideos() (*Videos, bool) {
4281 return nil, false
4282 }
4283
4284
4285 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsComputation() (*Computation, bool) {
4286 return nil, false
4287 }
4288
4289
4290 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsIdentifiable() (*Identifiable, bool) {
4291 return nil, false
4292 }
4293
4294
4295 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicIdentifiable() (BasicIdentifiable, bool) {
4296 return &rsrsa, true
4297 }
4298
4299
4300 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsSearchResponse() (*SearchResponse, bool) {
4301 return nil, false
4302 }
4303
4304
4305 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsResponse() (*Response, bool) {
4306 return nil, false
4307 }
4308
4309
4310 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicResponse() (BasicResponse, bool) {
4311 return &rsrsa, true
4312 }
4313
4314
4315 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsThing() (*Thing, bool) {
4316 return nil, false
4317 }
4318
4319
4320 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicThing() (BasicThing, bool) {
4321 return nil, false
4322 }
4323
4324
4325 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsPlaces() (*Places, bool) {
4326 return nil, false
4327 }
4328
4329
4330 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
4331 return nil, false
4332 }
4333
4334
4335 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
4336 return &rsrsa, true
4337 }
4338
4339
4340 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsAnswer() (*Answer, bool) {
4341 return nil, false
4342 }
4343
4344
4345 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicAnswer() (BasicAnswer, bool) {
4346 return &rsrsa, true
4347 }
4348
4349
4350 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsErrorResponse() (*ErrorResponse, bool) {
4351 return nil, false
4352 }
4353
4354
4355 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsCreativeWork() (*CreativeWork, bool) {
4356 return nil, false
4357 }
4358
4359
4360 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicCreativeWork() (BasicCreativeWork, bool) {
4361 return nil, false
4362 }
4363
4364
4365 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsIntangible() (*Intangible, bool) {
4366 return nil, false
4367 }
4368
4369
4370 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicIntangible() (BasicIntangible, bool) {
4371 return nil, false
4372 }
4373
4374
4375 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsMediaObject() (*MediaObject, bool) {
4376 return nil, false
4377 }
4378
4379
4380 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicMediaObject() (BasicMediaObject, bool) {
4381 return nil, false
4382 }
4383
4384
4385 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsArticle() (*Article, bool) {
4386 return nil, false
4387 }
4388
4389
4390 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicArticle() (BasicArticle, bool) {
4391 return nil, false
4392 }
4393
4394
4395 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsStructuredValue() (*StructuredValue, bool) {
4396 return nil, false
4397 }
4398
4399
4400 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsResponseBase() (*ResponseBase, bool) {
4401 return nil, false
4402 }
4403
4404
4405 func (rsrsa RelatedSearchesRelatedSearchAnswer) AsBasicResponseBase() (BasicResponseBase, bool) {
4406 return &rsrsa, true
4407 }
4408
4409
4410
4411 type BasicResponse interface {
4412 AsImageObject() (*ImageObject, bool)
4413 AsWebPage() (*WebPage, bool)
4414 AsWebWebAnswer() (*WebWebAnswer, bool)
4415 AsImages() (*Images, bool)
4416 AsNewsArticle() (*NewsArticle, bool)
4417 AsNews() (*News, bool)
4418 AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool)
4419 AsSpellSuggestions() (*SpellSuggestions, bool)
4420 AsTimeZone() (*TimeZone, bool)
4421 AsVideoObject() (*VideoObject, bool)
4422 AsVideos() (*Videos, bool)
4423 AsComputation() (*Computation, bool)
4424 AsSearchResponse() (*SearchResponse, bool)
4425 AsThing() (*Thing, bool)
4426 AsBasicThing() (BasicThing, bool)
4427 AsPlaces() (*Places, bool)
4428 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
4429 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
4430 AsAnswer() (*Answer, bool)
4431 AsBasicAnswer() (BasicAnswer, bool)
4432 AsErrorResponse() (*ErrorResponse, bool)
4433 AsCreativeWork() (*CreativeWork, bool)
4434 AsBasicCreativeWork() (BasicCreativeWork, bool)
4435 AsIntangible() (*Intangible, bool)
4436 AsBasicIntangible() (BasicIntangible, bool)
4437 AsMediaObject() (*MediaObject, bool)
4438 AsBasicMediaObject() (BasicMediaObject, bool)
4439 AsArticle() (*Article, bool)
4440 AsBasicArticle() (BasicArticle, bool)
4441 AsStructuredValue() (*StructuredValue, bool)
4442 AsResponse() (*Response, bool)
4443 }
4444
4445
4446
4447 type Response struct {
4448
4449 WebSearchURL *string `json:"webSearchUrl,omitempty"`
4450
4451 ID *string `json:"id,omitempty"`
4452
4453 Type TypeBasicResponseBase `json:"_type,omitempty"`
4454 }
4455
4456 func unmarshalBasicResponse(body []byte) (BasicResponse, error) {
4457 var m map[string]interface{}
4458 err := json.Unmarshal(body, &m)
4459 if err != nil {
4460 return nil, err
4461 }
4462
4463 switch m["_type"] {
4464 case string(TypeImageObject):
4465 var ioVar ImageObject
4466 err := json.Unmarshal(body, &ioVar)
4467 return ioVar, err
4468 case string(TypeWebPage):
4469 var wp WebPage
4470 err := json.Unmarshal(body, &wp)
4471 return wp, err
4472 case string(TypeWebWebAnswer):
4473 var wwa WebWebAnswer
4474 err := json.Unmarshal(body, &wwa)
4475 return wwa, err
4476 case string(TypeImages):
4477 var i Images
4478 err := json.Unmarshal(body, &i)
4479 return i, err
4480 case string(TypeNewsArticle):
4481 var na NewsArticle
4482 err := json.Unmarshal(body, &na)
4483 return na, err
4484 case string(TypeNews):
4485 var n News
4486 err := json.Unmarshal(body, &n)
4487 return n, err
4488 case string(TypeRelatedSearchesRelatedSearchAnswer):
4489 var rsrsa RelatedSearchesRelatedSearchAnswer
4490 err := json.Unmarshal(body, &rsrsa)
4491 return rsrsa, err
4492 case string(TypeSpellSuggestions):
4493 var ss SpellSuggestions
4494 err := json.Unmarshal(body, &ss)
4495 return ss, err
4496 case string(TypeTimeZone):
4497 var tz TimeZone
4498 err := json.Unmarshal(body, &tz)
4499 return tz, err
4500 case string(TypeVideoObject):
4501 var vo VideoObject
4502 err := json.Unmarshal(body, &vo)
4503 return vo, err
4504 case string(TypeVideos):
4505 var vVar Videos
4506 err := json.Unmarshal(body, &vVar)
4507 return vVar, err
4508 case string(TypeComputation):
4509 var c Computation
4510 err := json.Unmarshal(body, &c)
4511 return c, err
4512 case string(TypeSearchResponse):
4513 var sr SearchResponse
4514 err := json.Unmarshal(body, &sr)
4515 return sr, err
4516 case string(TypeThing):
4517 var t Thing
4518 err := json.Unmarshal(body, &t)
4519 return t, err
4520 case string(TypePlaces):
4521 var p Places
4522 err := json.Unmarshal(body, &p)
4523 return p, err
4524 case string(TypeSearchResultsAnswer):
4525 var sra SearchResultsAnswer
4526 err := json.Unmarshal(body, &sra)
4527 return sra, err
4528 case string(TypeAnswer):
4529 var a Answer
4530 err := json.Unmarshal(body, &a)
4531 return a, err
4532 case string(TypeErrorResponse):
4533 var er ErrorResponse
4534 err := json.Unmarshal(body, &er)
4535 return er, err
4536 case string(TypeCreativeWork):
4537 var cw CreativeWork
4538 err := json.Unmarshal(body, &cw)
4539 return cw, err
4540 case string(TypeIntangible):
4541 var i Intangible
4542 err := json.Unmarshal(body, &i)
4543 return i, err
4544 case string(TypeMediaObject):
4545 var mo MediaObject
4546 err := json.Unmarshal(body, &mo)
4547 return mo, err
4548 case string(TypeArticle):
4549 var a Article
4550 err := json.Unmarshal(body, &a)
4551 return a, err
4552 case string(TypeStructuredValue):
4553 var sv StructuredValue
4554 err := json.Unmarshal(body, &sv)
4555 return sv, err
4556 default:
4557 var r Response
4558 err := json.Unmarshal(body, &r)
4559 return r, err
4560 }
4561 }
4562 func unmarshalBasicResponseArray(body []byte) ([]BasicResponse, error) {
4563 var rawMessages []*json.RawMessage
4564 err := json.Unmarshal(body, &rawMessages)
4565 if err != nil {
4566 return nil, err
4567 }
4568
4569 rArray := make([]BasicResponse, len(rawMessages))
4570
4571 for index, rawMessage := range rawMessages {
4572 r, err := unmarshalBasicResponse(*rawMessage)
4573 if err != nil {
4574 return nil, err
4575 }
4576 rArray[index] = r
4577 }
4578 return rArray, nil
4579 }
4580
4581
4582 func (r Response) MarshalJSON() ([]byte, error) {
4583 r.Type = TypeResponse
4584 objectMap := make(map[string]interface{})
4585 if r.Type != "" {
4586 objectMap["_type"] = r.Type
4587 }
4588 return json.Marshal(objectMap)
4589 }
4590
4591
4592 func (r Response) AsImageObject() (*ImageObject, bool) {
4593 return nil, false
4594 }
4595
4596
4597 func (r Response) AsWebPage() (*WebPage, bool) {
4598 return nil, false
4599 }
4600
4601
4602 func (r Response) AsWebWebAnswer() (*WebWebAnswer, bool) {
4603 return nil, false
4604 }
4605
4606
4607 func (r Response) AsImages() (*Images, bool) {
4608 return nil, false
4609 }
4610
4611
4612 func (r Response) AsNewsArticle() (*NewsArticle, bool) {
4613 return nil, false
4614 }
4615
4616
4617 func (r Response) AsNews() (*News, bool) {
4618 return nil, false
4619 }
4620
4621
4622 func (r Response) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
4623 return nil, false
4624 }
4625
4626
4627 func (r Response) AsSpellSuggestions() (*SpellSuggestions, bool) {
4628 return nil, false
4629 }
4630
4631
4632 func (r Response) AsTimeZone() (*TimeZone, bool) {
4633 return nil, false
4634 }
4635
4636
4637 func (r Response) AsVideoObject() (*VideoObject, bool) {
4638 return nil, false
4639 }
4640
4641
4642 func (r Response) AsVideos() (*Videos, bool) {
4643 return nil, false
4644 }
4645
4646
4647 func (r Response) AsComputation() (*Computation, bool) {
4648 return nil, false
4649 }
4650
4651
4652 func (r Response) AsIdentifiable() (*Identifiable, bool) {
4653 return nil, false
4654 }
4655
4656
4657 func (r Response) AsBasicIdentifiable() (BasicIdentifiable, bool) {
4658 return &r, true
4659 }
4660
4661
4662 func (r Response) AsSearchResponse() (*SearchResponse, bool) {
4663 return nil, false
4664 }
4665
4666
4667 func (r Response) AsResponse() (*Response, bool) {
4668 return &r, true
4669 }
4670
4671
4672 func (r Response) AsBasicResponse() (BasicResponse, bool) {
4673 return &r, true
4674 }
4675
4676
4677 func (r Response) AsThing() (*Thing, bool) {
4678 return nil, false
4679 }
4680
4681
4682 func (r Response) AsBasicThing() (BasicThing, bool) {
4683 return nil, false
4684 }
4685
4686
4687 func (r Response) AsPlaces() (*Places, bool) {
4688 return nil, false
4689 }
4690
4691
4692 func (r Response) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
4693 return nil, false
4694 }
4695
4696
4697 func (r Response) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
4698 return nil, false
4699 }
4700
4701
4702 func (r Response) AsAnswer() (*Answer, bool) {
4703 return nil, false
4704 }
4705
4706
4707 func (r Response) AsBasicAnswer() (BasicAnswer, bool) {
4708 return nil, false
4709 }
4710
4711
4712 func (r Response) AsErrorResponse() (*ErrorResponse, bool) {
4713 return nil, false
4714 }
4715
4716
4717 func (r Response) AsCreativeWork() (*CreativeWork, bool) {
4718 return nil, false
4719 }
4720
4721
4722 func (r Response) AsBasicCreativeWork() (BasicCreativeWork, bool) {
4723 return nil, false
4724 }
4725
4726
4727 func (r Response) AsIntangible() (*Intangible, bool) {
4728 return nil, false
4729 }
4730
4731
4732 func (r Response) AsBasicIntangible() (BasicIntangible, bool) {
4733 return nil, false
4734 }
4735
4736
4737 func (r Response) AsMediaObject() (*MediaObject, bool) {
4738 return nil, false
4739 }
4740
4741
4742 func (r Response) AsBasicMediaObject() (BasicMediaObject, bool) {
4743 return nil, false
4744 }
4745
4746
4747 func (r Response) AsArticle() (*Article, bool) {
4748 return nil, false
4749 }
4750
4751
4752 func (r Response) AsBasicArticle() (BasicArticle, bool) {
4753 return nil, false
4754 }
4755
4756
4757 func (r Response) AsStructuredValue() (*StructuredValue, bool) {
4758 return nil, false
4759 }
4760
4761
4762 func (r Response) AsResponseBase() (*ResponseBase, bool) {
4763 return nil, false
4764 }
4765
4766
4767 func (r Response) AsBasicResponseBase() (BasicResponseBase, bool) {
4768 return &r, true
4769 }
4770
4771
4772 type BasicResponseBase interface {
4773 AsImageObject() (*ImageObject, bool)
4774 AsWebPage() (*WebPage, bool)
4775 AsWebWebAnswer() (*WebWebAnswer, bool)
4776 AsImages() (*Images, bool)
4777 AsNewsArticle() (*NewsArticle, bool)
4778 AsNews() (*News, bool)
4779 AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool)
4780 AsSpellSuggestions() (*SpellSuggestions, bool)
4781 AsTimeZone() (*TimeZone, bool)
4782 AsVideoObject() (*VideoObject, bool)
4783 AsVideos() (*Videos, bool)
4784 AsComputation() (*Computation, bool)
4785 AsIdentifiable() (*Identifiable, bool)
4786 AsBasicIdentifiable() (BasicIdentifiable, bool)
4787 AsSearchResponse() (*SearchResponse, bool)
4788 AsResponse() (*Response, bool)
4789 AsBasicResponse() (BasicResponse, bool)
4790 AsThing() (*Thing, bool)
4791 AsBasicThing() (BasicThing, bool)
4792 AsPlaces() (*Places, bool)
4793 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
4794 AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool)
4795 AsAnswer() (*Answer, bool)
4796 AsBasicAnswer() (BasicAnswer, bool)
4797 AsErrorResponse() (*ErrorResponse, bool)
4798 AsCreativeWork() (*CreativeWork, bool)
4799 AsBasicCreativeWork() (BasicCreativeWork, bool)
4800 AsIntangible() (*Intangible, bool)
4801 AsBasicIntangible() (BasicIntangible, bool)
4802 AsMediaObject() (*MediaObject, bool)
4803 AsBasicMediaObject() (BasicMediaObject, bool)
4804 AsArticle() (*Article, bool)
4805 AsBasicArticle() (BasicArticle, bool)
4806 AsStructuredValue() (*StructuredValue, bool)
4807 AsResponseBase() (*ResponseBase, bool)
4808 }
4809
4810
4811 type ResponseBase struct {
4812
4813 Type TypeBasicResponseBase `json:"_type,omitempty"`
4814 }
4815
4816 func unmarshalBasicResponseBase(body []byte) (BasicResponseBase, error) {
4817 var m map[string]interface{}
4818 err := json.Unmarshal(body, &m)
4819 if err != nil {
4820 return nil, err
4821 }
4822
4823 switch m["_type"] {
4824 case string(TypeImageObject):
4825 var ioVar ImageObject
4826 err := json.Unmarshal(body, &ioVar)
4827 return ioVar, err
4828 case string(TypeWebPage):
4829 var wp WebPage
4830 err := json.Unmarshal(body, &wp)
4831 return wp, err
4832 case string(TypeWebWebAnswer):
4833 var wwa WebWebAnswer
4834 err := json.Unmarshal(body, &wwa)
4835 return wwa, err
4836 case string(TypeImages):
4837 var i Images
4838 err := json.Unmarshal(body, &i)
4839 return i, err
4840 case string(TypeNewsArticle):
4841 var na NewsArticle
4842 err := json.Unmarshal(body, &na)
4843 return na, err
4844 case string(TypeNews):
4845 var n News
4846 err := json.Unmarshal(body, &n)
4847 return n, err
4848 case string(TypeRelatedSearchesRelatedSearchAnswer):
4849 var rsrsa RelatedSearchesRelatedSearchAnswer
4850 err := json.Unmarshal(body, &rsrsa)
4851 return rsrsa, err
4852 case string(TypeSpellSuggestions):
4853 var ss SpellSuggestions
4854 err := json.Unmarshal(body, &ss)
4855 return ss, err
4856 case string(TypeTimeZone):
4857 var tz TimeZone
4858 err := json.Unmarshal(body, &tz)
4859 return tz, err
4860 case string(TypeVideoObject):
4861 var vo VideoObject
4862 err := json.Unmarshal(body, &vo)
4863 return vo, err
4864 case string(TypeVideos):
4865 var vVar Videos
4866 err := json.Unmarshal(body, &vVar)
4867 return vVar, err
4868 case string(TypeComputation):
4869 var c Computation
4870 err := json.Unmarshal(body, &c)
4871 return c, err
4872 case string(TypeIdentifiable):
4873 var i Identifiable
4874 err := json.Unmarshal(body, &i)
4875 return i, err
4876 case string(TypeSearchResponse):
4877 var sr SearchResponse
4878 err := json.Unmarshal(body, &sr)
4879 return sr, err
4880 case string(TypeResponse):
4881 var r Response
4882 err := json.Unmarshal(body, &r)
4883 return r, err
4884 case string(TypeThing):
4885 var t Thing
4886 err := json.Unmarshal(body, &t)
4887 return t, err
4888 case string(TypePlaces):
4889 var p Places
4890 err := json.Unmarshal(body, &p)
4891 return p, err
4892 case string(TypeSearchResultsAnswer):
4893 var sra SearchResultsAnswer
4894 err := json.Unmarshal(body, &sra)
4895 return sra, err
4896 case string(TypeAnswer):
4897 var a Answer
4898 err := json.Unmarshal(body, &a)
4899 return a, err
4900 case string(TypeErrorResponse):
4901 var er ErrorResponse
4902 err := json.Unmarshal(body, &er)
4903 return er, err
4904 case string(TypeCreativeWork):
4905 var cw CreativeWork
4906 err := json.Unmarshal(body, &cw)
4907 return cw, err
4908 case string(TypeIntangible):
4909 var i Intangible
4910 err := json.Unmarshal(body, &i)
4911 return i, err
4912 case string(TypeMediaObject):
4913 var mo MediaObject
4914 err := json.Unmarshal(body, &mo)
4915 return mo, err
4916 case string(TypeArticle):
4917 var a Article
4918 err := json.Unmarshal(body, &a)
4919 return a, err
4920 case string(TypeStructuredValue):
4921 var sv StructuredValue
4922 err := json.Unmarshal(body, &sv)
4923 return sv, err
4924 default:
4925 var rb ResponseBase
4926 err := json.Unmarshal(body, &rb)
4927 return rb, err
4928 }
4929 }
4930 func unmarshalBasicResponseBaseArray(body []byte) ([]BasicResponseBase, error) {
4931 var rawMessages []*json.RawMessage
4932 err := json.Unmarshal(body, &rawMessages)
4933 if err != nil {
4934 return nil, err
4935 }
4936
4937 rbArray := make([]BasicResponseBase, len(rawMessages))
4938
4939 for index, rawMessage := range rawMessages {
4940 rb, err := unmarshalBasicResponseBase(*rawMessage)
4941 if err != nil {
4942 return nil, err
4943 }
4944 rbArray[index] = rb
4945 }
4946 return rbArray, nil
4947 }
4948
4949
4950 func (rb ResponseBase) MarshalJSON() ([]byte, error) {
4951 rb.Type = TypeResponseBase
4952 objectMap := make(map[string]interface{})
4953 if rb.Type != "" {
4954 objectMap["_type"] = rb.Type
4955 }
4956 return json.Marshal(objectMap)
4957 }
4958
4959
4960 func (rb ResponseBase) AsImageObject() (*ImageObject, bool) {
4961 return nil, false
4962 }
4963
4964
4965 func (rb ResponseBase) AsWebPage() (*WebPage, bool) {
4966 return nil, false
4967 }
4968
4969
4970 func (rb ResponseBase) AsWebWebAnswer() (*WebWebAnswer, bool) {
4971 return nil, false
4972 }
4973
4974
4975 func (rb ResponseBase) AsImages() (*Images, bool) {
4976 return nil, false
4977 }
4978
4979
4980 func (rb ResponseBase) AsNewsArticle() (*NewsArticle, bool) {
4981 return nil, false
4982 }
4983
4984
4985 func (rb ResponseBase) AsNews() (*News, bool) {
4986 return nil, false
4987 }
4988
4989
4990 func (rb ResponseBase) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
4991 return nil, false
4992 }
4993
4994
4995 func (rb ResponseBase) AsSpellSuggestions() (*SpellSuggestions, bool) {
4996 return nil, false
4997 }
4998
4999
5000 func (rb ResponseBase) AsTimeZone() (*TimeZone, bool) {
5001 return nil, false
5002 }
5003
5004
5005 func (rb ResponseBase) AsVideoObject() (*VideoObject, bool) {
5006 return nil, false
5007 }
5008
5009
5010 func (rb ResponseBase) AsVideos() (*Videos, bool) {
5011 return nil, false
5012 }
5013
5014
5015 func (rb ResponseBase) AsComputation() (*Computation, bool) {
5016 return nil, false
5017 }
5018
5019
5020 func (rb ResponseBase) AsIdentifiable() (*Identifiable, bool) {
5021 return nil, false
5022 }
5023
5024
5025 func (rb ResponseBase) AsBasicIdentifiable() (BasicIdentifiable, bool) {
5026 return nil, false
5027 }
5028
5029
5030 func (rb ResponseBase) AsSearchResponse() (*SearchResponse, bool) {
5031 return nil, false
5032 }
5033
5034
5035 func (rb ResponseBase) AsResponse() (*Response, bool) {
5036 return nil, false
5037 }
5038
5039
5040 func (rb ResponseBase) AsBasicResponse() (BasicResponse, bool) {
5041 return nil, false
5042 }
5043
5044
5045 func (rb ResponseBase) AsThing() (*Thing, bool) {
5046 return nil, false
5047 }
5048
5049
5050 func (rb ResponseBase) AsBasicThing() (BasicThing, bool) {
5051 return nil, false
5052 }
5053
5054
5055 func (rb ResponseBase) AsPlaces() (*Places, bool) {
5056 return nil, false
5057 }
5058
5059
5060 func (rb ResponseBase) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
5061 return nil, false
5062 }
5063
5064
5065 func (rb ResponseBase) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
5066 return nil, false
5067 }
5068
5069
5070 func (rb ResponseBase) AsAnswer() (*Answer, bool) {
5071 return nil, false
5072 }
5073
5074
5075 func (rb ResponseBase) AsBasicAnswer() (BasicAnswer, bool) {
5076 return nil, false
5077 }
5078
5079
5080 func (rb ResponseBase) AsErrorResponse() (*ErrorResponse, bool) {
5081 return nil, false
5082 }
5083
5084
5085 func (rb ResponseBase) AsCreativeWork() (*CreativeWork, bool) {
5086 return nil, false
5087 }
5088
5089
5090 func (rb ResponseBase) AsBasicCreativeWork() (BasicCreativeWork, bool) {
5091 return nil, false
5092 }
5093
5094
5095 func (rb ResponseBase) AsIntangible() (*Intangible, bool) {
5096 return nil, false
5097 }
5098
5099
5100 func (rb ResponseBase) AsBasicIntangible() (BasicIntangible, bool) {
5101 return nil, false
5102 }
5103
5104
5105 func (rb ResponseBase) AsMediaObject() (*MediaObject, bool) {
5106 return nil, false
5107 }
5108
5109
5110 func (rb ResponseBase) AsBasicMediaObject() (BasicMediaObject, bool) {
5111 return nil, false
5112 }
5113
5114
5115 func (rb ResponseBase) AsArticle() (*Article, bool) {
5116 return nil, false
5117 }
5118
5119
5120 func (rb ResponseBase) AsBasicArticle() (BasicArticle, bool) {
5121 return nil, false
5122 }
5123
5124
5125 func (rb ResponseBase) AsStructuredValue() (*StructuredValue, bool) {
5126 return nil, false
5127 }
5128
5129
5130 func (rb ResponseBase) AsResponseBase() (*ResponseBase, bool) {
5131 return &rb, true
5132 }
5133
5134
5135 func (rb ResponseBase) AsBasicResponseBase() (BasicResponseBase, bool) {
5136 return &rb, true
5137 }
5138
5139
5140 type SearchResponse struct {
5141 autorest.Response `json:"-"`
5142
5143 QueryContext *QueryContext `json:"queryContext,omitempty"`
5144
5145 WebPages *WebWebAnswer `json:"webPages,omitempty"`
5146
5147 Images *Images `json:"images,omitempty"`
5148
5149 News *News `json:"news,omitempty"`
5150
5151 RelatedSearches *RelatedSearchesRelatedSearchAnswer `json:"relatedSearches,omitempty"`
5152
5153 SpellSuggestions *SpellSuggestions `json:"spellSuggestions,omitempty"`
5154
5155 TimeZone *TimeZone `json:"timeZone,omitempty"`
5156
5157 Videos *Videos `json:"videos,omitempty"`
5158
5159 Computation *Computation `json:"computation,omitempty"`
5160
5161 RankingResponse *RankingRankingResponse `json:"rankingResponse,omitempty"`
5162
5163 WebSearchURL *string `json:"webSearchUrl,omitempty"`
5164
5165 ID *string `json:"id,omitempty"`
5166
5167 Type TypeBasicResponseBase `json:"_type,omitempty"`
5168 }
5169
5170
5171 func (sr SearchResponse) MarshalJSON() ([]byte, error) {
5172 sr.Type = TypeSearchResponse
5173 objectMap := make(map[string]interface{})
5174 if sr.Type != "" {
5175 objectMap["_type"] = sr.Type
5176 }
5177 return json.Marshal(objectMap)
5178 }
5179
5180
5181 func (sr SearchResponse) AsImageObject() (*ImageObject, bool) {
5182 return nil, false
5183 }
5184
5185
5186 func (sr SearchResponse) AsWebPage() (*WebPage, bool) {
5187 return nil, false
5188 }
5189
5190
5191 func (sr SearchResponse) AsWebWebAnswer() (*WebWebAnswer, bool) {
5192 return nil, false
5193 }
5194
5195
5196 func (sr SearchResponse) AsImages() (*Images, bool) {
5197 return nil, false
5198 }
5199
5200
5201 func (sr SearchResponse) AsNewsArticle() (*NewsArticle, bool) {
5202 return nil, false
5203 }
5204
5205
5206 func (sr SearchResponse) AsNews() (*News, bool) {
5207 return nil, false
5208 }
5209
5210
5211 func (sr SearchResponse) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
5212 return nil, false
5213 }
5214
5215
5216 func (sr SearchResponse) AsSpellSuggestions() (*SpellSuggestions, bool) {
5217 return nil, false
5218 }
5219
5220
5221 func (sr SearchResponse) AsTimeZone() (*TimeZone, bool) {
5222 return nil, false
5223 }
5224
5225
5226 func (sr SearchResponse) AsVideoObject() (*VideoObject, bool) {
5227 return nil, false
5228 }
5229
5230
5231 func (sr SearchResponse) AsVideos() (*Videos, bool) {
5232 return nil, false
5233 }
5234
5235
5236 func (sr SearchResponse) AsComputation() (*Computation, bool) {
5237 return nil, false
5238 }
5239
5240
5241 func (sr SearchResponse) AsIdentifiable() (*Identifiable, bool) {
5242 return nil, false
5243 }
5244
5245
5246 func (sr SearchResponse) AsBasicIdentifiable() (BasicIdentifiable, bool) {
5247 return &sr, true
5248 }
5249
5250
5251 func (sr SearchResponse) AsSearchResponse() (*SearchResponse, bool) {
5252 return &sr, true
5253 }
5254
5255
5256 func (sr SearchResponse) AsResponse() (*Response, bool) {
5257 return nil, false
5258 }
5259
5260
5261 func (sr SearchResponse) AsBasicResponse() (BasicResponse, bool) {
5262 return &sr, true
5263 }
5264
5265
5266 func (sr SearchResponse) AsThing() (*Thing, bool) {
5267 return nil, false
5268 }
5269
5270
5271 func (sr SearchResponse) AsBasicThing() (BasicThing, bool) {
5272 return nil, false
5273 }
5274
5275
5276 func (sr SearchResponse) AsPlaces() (*Places, bool) {
5277 return nil, false
5278 }
5279
5280
5281 func (sr SearchResponse) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
5282 return nil, false
5283 }
5284
5285
5286 func (sr SearchResponse) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
5287 return nil, false
5288 }
5289
5290
5291 func (sr SearchResponse) AsAnswer() (*Answer, bool) {
5292 return nil, false
5293 }
5294
5295
5296 func (sr SearchResponse) AsBasicAnswer() (BasicAnswer, bool) {
5297 return nil, false
5298 }
5299
5300
5301 func (sr SearchResponse) AsErrorResponse() (*ErrorResponse, bool) {
5302 return nil, false
5303 }
5304
5305
5306 func (sr SearchResponse) AsCreativeWork() (*CreativeWork, bool) {
5307 return nil, false
5308 }
5309
5310
5311 func (sr SearchResponse) AsBasicCreativeWork() (BasicCreativeWork, bool) {
5312 return nil, false
5313 }
5314
5315
5316 func (sr SearchResponse) AsIntangible() (*Intangible, bool) {
5317 return nil, false
5318 }
5319
5320
5321 func (sr SearchResponse) AsBasicIntangible() (BasicIntangible, bool) {
5322 return nil, false
5323 }
5324
5325
5326 func (sr SearchResponse) AsMediaObject() (*MediaObject, bool) {
5327 return nil, false
5328 }
5329
5330
5331 func (sr SearchResponse) AsBasicMediaObject() (BasicMediaObject, bool) {
5332 return nil, false
5333 }
5334
5335
5336 func (sr SearchResponse) AsArticle() (*Article, bool) {
5337 return nil, false
5338 }
5339
5340
5341 func (sr SearchResponse) AsBasicArticle() (BasicArticle, bool) {
5342 return nil, false
5343 }
5344
5345
5346 func (sr SearchResponse) AsStructuredValue() (*StructuredValue, bool) {
5347 return nil, false
5348 }
5349
5350
5351 func (sr SearchResponse) AsResponseBase() (*ResponseBase, bool) {
5352 return nil, false
5353 }
5354
5355
5356 func (sr SearchResponse) AsBasicResponseBase() (BasicResponseBase, bool) {
5357 return &sr, true
5358 }
5359
5360
5361 type BasicSearchResultsAnswer interface {
5362 AsWebWebAnswer() (*WebWebAnswer, bool)
5363 AsImages() (*Images, bool)
5364 AsNews() (*News, bool)
5365 AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool)
5366 AsSpellSuggestions() (*SpellSuggestions, bool)
5367 AsTimeZone() (*TimeZone, bool)
5368 AsVideos() (*Videos, bool)
5369 AsPlaces() (*Places, bool)
5370 AsSearchResultsAnswer() (*SearchResultsAnswer, bool)
5371 }
5372
5373
5374 type SearchResultsAnswer struct {
5375
5376 QueryContext *QueryContext `json:"queryContext,omitempty"`
5377
5378 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
5379
5380 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
5381
5382 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
5383
5384 WebSearchURL *string `json:"webSearchUrl,omitempty"`
5385
5386 ID *string `json:"id,omitempty"`
5387
5388 Type TypeBasicResponseBase `json:"_type,omitempty"`
5389 }
5390
5391 func unmarshalBasicSearchResultsAnswer(body []byte) (BasicSearchResultsAnswer, error) {
5392 var m map[string]interface{}
5393 err := json.Unmarshal(body, &m)
5394 if err != nil {
5395 return nil, err
5396 }
5397
5398 switch m["_type"] {
5399 case string(TypeWebWebAnswer):
5400 var wwa WebWebAnswer
5401 err := json.Unmarshal(body, &wwa)
5402 return wwa, err
5403 case string(TypeImages):
5404 var i Images
5405 err := json.Unmarshal(body, &i)
5406 return i, err
5407 case string(TypeNews):
5408 var n News
5409 err := json.Unmarshal(body, &n)
5410 return n, err
5411 case string(TypeRelatedSearchesRelatedSearchAnswer):
5412 var rsrsa RelatedSearchesRelatedSearchAnswer
5413 err := json.Unmarshal(body, &rsrsa)
5414 return rsrsa, err
5415 case string(TypeSpellSuggestions):
5416 var ss SpellSuggestions
5417 err := json.Unmarshal(body, &ss)
5418 return ss, err
5419 case string(TypeTimeZone):
5420 var tz TimeZone
5421 err := json.Unmarshal(body, &tz)
5422 return tz, err
5423 case string(TypeVideos):
5424 var vVar Videos
5425 err := json.Unmarshal(body, &vVar)
5426 return vVar, err
5427 case string(TypePlaces):
5428 var p Places
5429 err := json.Unmarshal(body, &p)
5430 return p, err
5431 default:
5432 var sra SearchResultsAnswer
5433 err := json.Unmarshal(body, &sra)
5434 return sra, err
5435 }
5436 }
5437 func unmarshalBasicSearchResultsAnswerArray(body []byte) ([]BasicSearchResultsAnswer, error) {
5438 var rawMessages []*json.RawMessage
5439 err := json.Unmarshal(body, &rawMessages)
5440 if err != nil {
5441 return nil, err
5442 }
5443
5444 sraArray := make([]BasicSearchResultsAnswer, len(rawMessages))
5445
5446 for index, rawMessage := range rawMessages {
5447 sra, err := unmarshalBasicSearchResultsAnswer(*rawMessage)
5448 if err != nil {
5449 return nil, err
5450 }
5451 sraArray[index] = sra
5452 }
5453 return sraArray, nil
5454 }
5455
5456
5457 func (sra SearchResultsAnswer) MarshalJSON() ([]byte, error) {
5458 sra.Type = TypeSearchResultsAnswer
5459 objectMap := make(map[string]interface{})
5460 if sra.Type != "" {
5461 objectMap["_type"] = sra.Type
5462 }
5463 return json.Marshal(objectMap)
5464 }
5465
5466
5467 func (sra SearchResultsAnswer) AsImageObject() (*ImageObject, bool) {
5468 return nil, false
5469 }
5470
5471
5472 func (sra SearchResultsAnswer) AsWebPage() (*WebPage, bool) {
5473 return nil, false
5474 }
5475
5476
5477 func (sra SearchResultsAnswer) AsWebWebAnswer() (*WebWebAnswer, bool) {
5478 return nil, false
5479 }
5480
5481
5482 func (sra SearchResultsAnswer) AsImages() (*Images, bool) {
5483 return nil, false
5484 }
5485
5486
5487 func (sra SearchResultsAnswer) AsNewsArticle() (*NewsArticle, bool) {
5488 return nil, false
5489 }
5490
5491
5492 func (sra SearchResultsAnswer) AsNews() (*News, bool) {
5493 return nil, false
5494 }
5495
5496
5497 func (sra SearchResultsAnswer) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
5498 return nil, false
5499 }
5500
5501
5502 func (sra SearchResultsAnswer) AsSpellSuggestions() (*SpellSuggestions, bool) {
5503 return nil, false
5504 }
5505
5506
5507 func (sra SearchResultsAnswer) AsTimeZone() (*TimeZone, bool) {
5508 return nil, false
5509 }
5510
5511
5512 func (sra SearchResultsAnswer) AsVideoObject() (*VideoObject, bool) {
5513 return nil, false
5514 }
5515
5516
5517 func (sra SearchResultsAnswer) AsVideos() (*Videos, bool) {
5518 return nil, false
5519 }
5520
5521
5522 func (sra SearchResultsAnswer) AsComputation() (*Computation, bool) {
5523 return nil, false
5524 }
5525
5526
5527 func (sra SearchResultsAnswer) AsIdentifiable() (*Identifiable, bool) {
5528 return nil, false
5529 }
5530
5531
5532 func (sra SearchResultsAnswer) AsBasicIdentifiable() (BasicIdentifiable, bool) {
5533 return &sra, true
5534 }
5535
5536
5537 func (sra SearchResultsAnswer) AsSearchResponse() (*SearchResponse, bool) {
5538 return nil, false
5539 }
5540
5541
5542 func (sra SearchResultsAnswer) AsResponse() (*Response, bool) {
5543 return nil, false
5544 }
5545
5546
5547 func (sra SearchResultsAnswer) AsBasicResponse() (BasicResponse, bool) {
5548 return &sra, true
5549 }
5550
5551
5552 func (sra SearchResultsAnswer) AsThing() (*Thing, bool) {
5553 return nil, false
5554 }
5555
5556
5557 func (sra SearchResultsAnswer) AsBasicThing() (BasicThing, bool) {
5558 return nil, false
5559 }
5560
5561
5562 func (sra SearchResultsAnswer) AsPlaces() (*Places, bool) {
5563 return nil, false
5564 }
5565
5566
5567 func (sra SearchResultsAnswer) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
5568 return &sra, true
5569 }
5570
5571
5572 func (sra SearchResultsAnswer) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
5573 return &sra, true
5574 }
5575
5576
5577 func (sra SearchResultsAnswer) AsAnswer() (*Answer, bool) {
5578 return nil, false
5579 }
5580
5581
5582 func (sra SearchResultsAnswer) AsBasicAnswer() (BasicAnswer, bool) {
5583 return &sra, true
5584 }
5585
5586
5587 func (sra SearchResultsAnswer) AsErrorResponse() (*ErrorResponse, bool) {
5588 return nil, false
5589 }
5590
5591
5592 func (sra SearchResultsAnswer) AsCreativeWork() (*CreativeWork, bool) {
5593 return nil, false
5594 }
5595
5596
5597 func (sra SearchResultsAnswer) AsBasicCreativeWork() (BasicCreativeWork, bool) {
5598 return nil, false
5599 }
5600
5601
5602 func (sra SearchResultsAnswer) AsIntangible() (*Intangible, bool) {
5603 return nil, false
5604 }
5605
5606
5607 func (sra SearchResultsAnswer) AsBasicIntangible() (BasicIntangible, bool) {
5608 return nil, false
5609 }
5610
5611
5612 func (sra SearchResultsAnswer) AsMediaObject() (*MediaObject, bool) {
5613 return nil, false
5614 }
5615
5616
5617 func (sra SearchResultsAnswer) AsBasicMediaObject() (BasicMediaObject, bool) {
5618 return nil, false
5619 }
5620
5621
5622 func (sra SearchResultsAnswer) AsArticle() (*Article, bool) {
5623 return nil, false
5624 }
5625
5626
5627 func (sra SearchResultsAnswer) AsBasicArticle() (BasicArticle, bool) {
5628 return nil, false
5629 }
5630
5631
5632 func (sra SearchResultsAnswer) AsStructuredValue() (*StructuredValue, bool) {
5633 return nil, false
5634 }
5635
5636
5637 func (sra SearchResultsAnswer) AsResponseBase() (*ResponseBase, bool) {
5638 return nil, false
5639 }
5640
5641
5642 func (sra SearchResultsAnswer) AsBasicResponseBase() (BasicResponseBase, bool) {
5643 return &sra, true
5644 }
5645
5646
5647
5648
5649
5650 type SpellSuggestions struct {
5651
5652 Value *[]Query `json:"value,omitempty"`
5653
5654 QueryContext *QueryContext `json:"queryContext,omitempty"`
5655
5656 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
5657
5658 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
5659
5660 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
5661
5662 WebSearchURL *string `json:"webSearchUrl,omitempty"`
5663
5664 ID *string `json:"id,omitempty"`
5665
5666 Type TypeBasicResponseBase `json:"_type,omitempty"`
5667 }
5668
5669
5670 func (ss SpellSuggestions) MarshalJSON() ([]byte, error) {
5671 ss.Type = TypeSpellSuggestions
5672 objectMap := make(map[string]interface{})
5673 if ss.Value != nil {
5674 objectMap["value"] = ss.Value
5675 }
5676 if ss.Type != "" {
5677 objectMap["_type"] = ss.Type
5678 }
5679 return json.Marshal(objectMap)
5680 }
5681
5682
5683 func (ss SpellSuggestions) AsImageObject() (*ImageObject, bool) {
5684 return nil, false
5685 }
5686
5687
5688 func (ss SpellSuggestions) AsWebPage() (*WebPage, bool) {
5689 return nil, false
5690 }
5691
5692
5693 func (ss SpellSuggestions) AsWebWebAnswer() (*WebWebAnswer, bool) {
5694 return nil, false
5695 }
5696
5697
5698 func (ss SpellSuggestions) AsImages() (*Images, bool) {
5699 return nil, false
5700 }
5701
5702
5703 func (ss SpellSuggestions) AsNewsArticle() (*NewsArticle, bool) {
5704 return nil, false
5705 }
5706
5707
5708 func (ss SpellSuggestions) AsNews() (*News, bool) {
5709 return nil, false
5710 }
5711
5712
5713 func (ss SpellSuggestions) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
5714 return nil, false
5715 }
5716
5717
5718 func (ss SpellSuggestions) AsSpellSuggestions() (*SpellSuggestions, bool) {
5719 return &ss, true
5720 }
5721
5722
5723 func (ss SpellSuggestions) AsTimeZone() (*TimeZone, bool) {
5724 return nil, false
5725 }
5726
5727
5728 func (ss SpellSuggestions) AsVideoObject() (*VideoObject, bool) {
5729 return nil, false
5730 }
5731
5732
5733 func (ss SpellSuggestions) AsVideos() (*Videos, bool) {
5734 return nil, false
5735 }
5736
5737
5738 func (ss SpellSuggestions) AsComputation() (*Computation, bool) {
5739 return nil, false
5740 }
5741
5742
5743 func (ss SpellSuggestions) AsIdentifiable() (*Identifiable, bool) {
5744 return nil, false
5745 }
5746
5747
5748 func (ss SpellSuggestions) AsBasicIdentifiable() (BasicIdentifiable, bool) {
5749 return &ss, true
5750 }
5751
5752
5753 func (ss SpellSuggestions) AsSearchResponse() (*SearchResponse, bool) {
5754 return nil, false
5755 }
5756
5757
5758 func (ss SpellSuggestions) AsResponse() (*Response, bool) {
5759 return nil, false
5760 }
5761
5762
5763 func (ss SpellSuggestions) AsBasicResponse() (BasicResponse, bool) {
5764 return &ss, true
5765 }
5766
5767
5768 func (ss SpellSuggestions) AsThing() (*Thing, bool) {
5769 return nil, false
5770 }
5771
5772
5773 func (ss SpellSuggestions) AsBasicThing() (BasicThing, bool) {
5774 return nil, false
5775 }
5776
5777
5778 func (ss SpellSuggestions) AsPlaces() (*Places, bool) {
5779 return nil, false
5780 }
5781
5782
5783 func (ss SpellSuggestions) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
5784 return nil, false
5785 }
5786
5787
5788 func (ss SpellSuggestions) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
5789 return &ss, true
5790 }
5791
5792
5793 func (ss SpellSuggestions) AsAnswer() (*Answer, bool) {
5794 return nil, false
5795 }
5796
5797
5798 func (ss SpellSuggestions) AsBasicAnswer() (BasicAnswer, bool) {
5799 return &ss, true
5800 }
5801
5802
5803 func (ss SpellSuggestions) AsErrorResponse() (*ErrorResponse, bool) {
5804 return nil, false
5805 }
5806
5807
5808 func (ss SpellSuggestions) AsCreativeWork() (*CreativeWork, bool) {
5809 return nil, false
5810 }
5811
5812
5813 func (ss SpellSuggestions) AsBasicCreativeWork() (BasicCreativeWork, bool) {
5814 return nil, false
5815 }
5816
5817
5818 func (ss SpellSuggestions) AsIntangible() (*Intangible, bool) {
5819 return nil, false
5820 }
5821
5822
5823 func (ss SpellSuggestions) AsBasicIntangible() (BasicIntangible, bool) {
5824 return nil, false
5825 }
5826
5827
5828 func (ss SpellSuggestions) AsMediaObject() (*MediaObject, bool) {
5829 return nil, false
5830 }
5831
5832
5833 func (ss SpellSuggestions) AsBasicMediaObject() (BasicMediaObject, bool) {
5834 return nil, false
5835 }
5836
5837
5838 func (ss SpellSuggestions) AsArticle() (*Article, bool) {
5839 return nil, false
5840 }
5841
5842
5843 func (ss SpellSuggestions) AsBasicArticle() (BasicArticle, bool) {
5844 return nil, false
5845 }
5846
5847
5848 func (ss SpellSuggestions) AsStructuredValue() (*StructuredValue, bool) {
5849 return nil, false
5850 }
5851
5852
5853 func (ss SpellSuggestions) AsResponseBase() (*ResponseBase, bool) {
5854 return nil, false
5855 }
5856
5857
5858 func (ss SpellSuggestions) AsBasicResponseBase() (BasicResponseBase, bool) {
5859 return &ss, true
5860 }
5861
5862
5863 type StructuredValue struct {
5864
5865 Name *string `json:"name,omitempty"`
5866
5867 URL *string `json:"url,omitempty"`
5868
5869 Image *ImageObject `json:"image,omitempty"`
5870
5871 Description *string `json:"description,omitempty"`
5872
5873 BingID *string `json:"bingId,omitempty"`
5874
5875 WebSearchURL *string `json:"webSearchUrl,omitempty"`
5876
5877 ID *string `json:"id,omitempty"`
5878
5879 Type TypeBasicResponseBase `json:"_type,omitempty"`
5880 }
5881
5882
5883 func (sv StructuredValue) MarshalJSON() ([]byte, error) {
5884 sv.Type = TypeStructuredValue
5885 objectMap := make(map[string]interface{})
5886 if sv.Type != "" {
5887 objectMap["_type"] = sv.Type
5888 }
5889 return json.Marshal(objectMap)
5890 }
5891
5892
5893 func (sv StructuredValue) AsImageObject() (*ImageObject, bool) {
5894 return nil, false
5895 }
5896
5897
5898 func (sv StructuredValue) AsWebPage() (*WebPage, bool) {
5899 return nil, false
5900 }
5901
5902
5903 func (sv StructuredValue) AsWebWebAnswer() (*WebWebAnswer, bool) {
5904 return nil, false
5905 }
5906
5907
5908 func (sv StructuredValue) AsImages() (*Images, bool) {
5909 return nil, false
5910 }
5911
5912
5913 func (sv StructuredValue) AsNewsArticle() (*NewsArticle, bool) {
5914 return nil, false
5915 }
5916
5917
5918 func (sv StructuredValue) AsNews() (*News, bool) {
5919 return nil, false
5920 }
5921
5922
5923 func (sv StructuredValue) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
5924 return nil, false
5925 }
5926
5927
5928 func (sv StructuredValue) AsSpellSuggestions() (*SpellSuggestions, bool) {
5929 return nil, false
5930 }
5931
5932
5933 func (sv StructuredValue) AsTimeZone() (*TimeZone, bool) {
5934 return nil, false
5935 }
5936
5937
5938 func (sv StructuredValue) AsVideoObject() (*VideoObject, bool) {
5939 return nil, false
5940 }
5941
5942
5943 func (sv StructuredValue) AsVideos() (*Videos, bool) {
5944 return nil, false
5945 }
5946
5947
5948 func (sv StructuredValue) AsComputation() (*Computation, bool) {
5949 return nil, false
5950 }
5951
5952
5953 func (sv StructuredValue) AsIdentifiable() (*Identifiable, bool) {
5954 return nil, false
5955 }
5956
5957
5958 func (sv StructuredValue) AsBasicIdentifiable() (BasicIdentifiable, bool) {
5959 return &sv, true
5960 }
5961
5962
5963 func (sv StructuredValue) AsSearchResponse() (*SearchResponse, bool) {
5964 return nil, false
5965 }
5966
5967
5968 func (sv StructuredValue) AsResponse() (*Response, bool) {
5969 return nil, false
5970 }
5971
5972
5973 func (sv StructuredValue) AsBasicResponse() (BasicResponse, bool) {
5974 return &sv, true
5975 }
5976
5977
5978 func (sv StructuredValue) AsThing() (*Thing, bool) {
5979 return nil, false
5980 }
5981
5982
5983 func (sv StructuredValue) AsBasicThing() (BasicThing, bool) {
5984 return &sv, true
5985 }
5986
5987
5988 func (sv StructuredValue) AsPlaces() (*Places, bool) {
5989 return nil, false
5990 }
5991
5992
5993 func (sv StructuredValue) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
5994 return nil, false
5995 }
5996
5997
5998 func (sv StructuredValue) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
5999 return nil, false
6000 }
6001
6002
6003 func (sv StructuredValue) AsAnswer() (*Answer, bool) {
6004 return nil, false
6005 }
6006
6007
6008 func (sv StructuredValue) AsBasicAnswer() (BasicAnswer, bool) {
6009 return nil, false
6010 }
6011
6012
6013 func (sv StructuredValue) AsErrorResponse() (*ErrorResponse, bool) {
6014 return nil, false
6015 }
6016
6017
6018 func (sv StructuredValue) AsCreativeWork() (*CreativeWork, bool) {
6019 return nil, false
6020 }
6021
6022
6023 func (sv StructuredValue) AsBasicCreativeWork() (BasicCreativeWork, bool) {
6024 return nil, false
6025 }
6026
6027
6028 func (sv StructuredValue) AsIntangible() (*Intangible, bool) {
6029 return nil, false
6030 }
6031
6032
6033 func (sv StructuredValue) AsBasicIntangible() (BasicIntangible, bool) {
6034 return &sv, true
6035 }
6036
6037
6038 func (sv StructuredValue) AsMediaObject() (*MediaObject, bool) {
6039 return nil, false
6040 }
6041
6042
6043 func (sv StructuredValue) AsBasicMediaObject() (BasicMediaObject, bool) {
6044 return nil, false
6045 }
6046
6047
6048 func (sv StructuredValue) AsArticle() (*Article, bool) {
6049 return nil, false
6050 }
6051
6052
6053 func (sv StructuredValue) AsBasicArticle() (BasicArticle, bool) {
6054 return nil, false
6055 }
6056
6057
6058 func (sv StructuredValue) AsStructuredValue() (*StructuredValue, bool) {
6059 return &sv, true
6060 }
6061
6062
6063 func (sv StructuredValue) AsResponseBase() (*ResponseBase, bool) {
6064 return nil, false
6065 }
6066
6067
6068 func (sv StructuredValue) AsBasicResponseBase() (BasicResponseBase, bool) {
6069 return &sv, true
6070 }
6071
6072
6073 type BasicThing interface {
6074 AsImageObject() (*ImageObject, bool)
6075 AsWebPage() (*WebPage, bool)
6076 AsNewsArticle() (*NewsArticle, bool)
6077 AsVideoObject() (*VideoObject, bool)
6078 AsCreativeWork() (*CreativeWork, bool)
6079 AsBasicCreativeWork() (BasicCreativeWork, bool)
6080 AsIntangible() (*Intangible, bool)
6081 AsBasicIntangible() (BasicIntangible, bool)
6082 AsMediaObject() (*MediaObject, bool)
6083 AsBasicMediaObject() (BasicMediaObject, bool)
6084 AsArticle() (*Article, bool)
6085 AsBasicArticle() (BasicArticle, bool)
6086 AsStructuredValue() (*StructuredValue, bool)
6087 AsThing() (*Thing, bool)
6088 }
6089
6090
6091 type Thing struct {
6092
6093 Name *string `json:"name,omitempty"`
6094
6095 URL *string `json:"url,omitempty"`
6096
6097 Image *ImageObject `json:"image,omitempty"`
6098
6099 Description *string `json:"description,omitempty"`
6100
6101 BingID *string `json:"bingId,omitempty"`
6102
6103 WebSearchURL *string `json:"webSearchUrl,omitempty"`
6104
6105 ID *string `json:"id,omitempty"`
6106
6107 Type TypeBasicResponseBase `json:"_type,omitempty"`
6108 }
6109
6110 func unmarshalBasicThing(body []byte) (BasicThing, error) {
6111 var m map[string]interface{}
6112 err := json.Unmarshal(body, &m)
6113 if err != nil {
6114 return nil, err
6115 }
6116
6117 switch m["_type"] {
6118 case string(TypeImageObject):
6119 var ioVar ImageObject
6120 err := json.Unmarshal(body, &ioVar)
6121 return ioVar, err
6122 case string(TypeWebPage):
6123 var wp WebPage
6124 err := json.Unmarshal(body, &wp)
6125 return wp, err
6126 case string(TypeNewsArticle):
6127 var na NewsArticle
6128 err := json.Unmarshal(body, &na)
6129 return na, err
6130 case string(TypeVideoObject):
6131 var vo VideoObject
6132 err := json.Unmarshal(body, &vo)
6133 return vo, err
6134 case string(TypeCreativeWork):
6135 var cw CreativeWork
6136 err := json.Unmarshal(body, &cw)
6137 return cw, err
6138 case string(TypeIntangible):
6139 var i Intangible
6140 err := json.Unmarshal(body, &i)
6141 return i, err
6142 case string(TypeMediaObject):
6143 var mo MediaObject
6144 err := json.Unmarshal(body, &mo)
6145 return mo, err
6146 case string(TypeArticle):
6147 var a Article
6148 err := json.Unmarshal(body, &a)
6149 return a, err
6150 case string(TypeStructuredValue):
6151 var sv StructuredValue
6152 err := json.Unmarshal(body, &sv)
6153 return sv, err
6154 default:
6155 var t Thing
6156 err := json.Unmarshal(body, &t)
6157 return t, err
6158 }
6159 }
6160 func unmarshalBasicThingArray(body []byte) ([]BasicThing, error) {
6161 var rawMessages []*json.RawMessage
6162 err := json.Unmarshal(body, &rawMessages)
6163 if err != nil {
6164 return nil, err
6165 }
6166
6167 tArray := make([]BasicThing, len(rawMessages))
6168
6169 for index, rawMessage := range rawMessages {
6170 t, err := unmarshalBasicThing(*rawMessage)
6171 if err != nil {
6172 return nil, err
6173 }
6174 tArray[index] = t
6175 }
6176 return tArray, nil
6177 }
6178
6179
6180 func (t Thing) MarshalJSON() ([]byte, error) {
6181 t.Type = TypeThing
6182 objectMap := make(map[string]interface{})
6183 if t.Type != "" {
6184 objectMap["_type"] = t.Type
6185 }
6186 return json.Marshal(objectMap)
6187 }
6188
6189
6190 func (t Thing) AsImageObject() (*ImageObject, bool) {
6191 return nil, false
6192 }
6193
6194
6195 func (t Thing) AsWebPage() (*WebPage, bool) {
6196 return nil, false
6197 }
6198
6199
6200 func (t Thing) AsWebWebAnswer() (*WebWebAnswer, bool) {
6201 return nil, false
6202 }
6203
6204
6205 func (t Thing) AsImages() (*Images, bool) {
6206 return nil, false
6207 }
6208
6209
6210 func (t Thing) AsNewsArticle() (*NewsArticle, bool) {
6211 return nil, false
6212 }
6213
6214
6215 func (t Thing) AsNews() (*News, bool) {
6216 return nil, false
6217 }
6218
6219
6220 func (t Thing) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
6221 return nil, false
6222 }
6223
6224
6225 func (t Thing) AsSpellSuggestions() (*SpellSuggestions, bool) {
6226 return nil, false
6227 }
6228
6229
6230 func (t Thing) AsTimeZone() (*TimeZone, bool) {
6231 return nil, false
6232 }
6233
6234
6235 func (t Thing) AsVideoObject() (*VideoObject, bool) {
6236 return nil, false
6237 }
6238
6239
6240 func (t Thing) AsVideos() (*Videos, bool) {
6241 return nil, false
6242 }
6243
6244
6245 func (t Thing) AsComputation() (*Computation, bool) {
6246 return nil, false
6247 }
6248
6249
6250 func (t Thing) AsIdentifiable() (*Identifiable, bool) {
6251 return nil, false
6252 }
6253
6254
6255 func (t Thing) AsBasicIdentifiable() (BasicIdentifiable, bool) {
6256 return &t, true
6257 }
6258
6259
6260 func (t Thing) AsSearchResponse() (*SearchResponse, bool) {
6261 return nil, false
6262 }
6263
6264
6265 func (t Thing) AsResponse() (*Response, bool) {
6266 return nil, false
6267 }
6268
6269
6270 func (t Thing) AsBasicResponse() (BasicResponse, bool) {
6271 return &t, true
6272 }
6273
6274
6275 func (t Thing) AsThing() (*Thing, bool) {
6276 return &t, true
6277 }
6278
6279
6280 func (t Thing) AsBasicThing() (BasicThing, bool) {
6281 return &t, true
6282 }
6283
6284
6285 func (t Thing) AsPlaces() (*Places, bool) {
6286 return nil, false
6287 }
6288
6289
6290 func (t Thing) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
6291 return nil, false
6292 }
6293
6294
6295 func (t Thing) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
6296 return nil, false
6297 }
6298
6299
6300 func (t Thing) AsAnswer() (*Answer, bool) {
6301 return nil, false
6302 }
6303
6304
6305 func (t Thing) AsBasicAnswer() (BasicAnswer, bool) {
6306 return nil, false
6307 }
6308
6309
6310 func (t Thing) AsErrorResponse() (*ErrorResponse, bool) {
6311 return nil, false
6312 }
6313
6314
6315 func (t Thing) AsCreativeWork() (*CreativeWork, bool) {
6316 return nil, false
6317 }
6318
6319
6320 func (t Thing) AsBasicCreativeWork() (BasicCreativeWork, bool) {
6321 return nil, false
6322 }
6323
6324
6325 func (t Thing) AsIntangible() (*Intangible, bool) {
6326 return nil, false
6327 }
6328
6329
6330 func (t Thing) AsBasicIntangible() (BasicIntangible, bool) {
6331 return nil, false
6332 }
6333
6334
6335 func (t Thing) AsMediaObject() (*MediaObject, bool) {
6336 return nil, false
6337 }
6338
6339
6340 func (t Thing) AsBasicMediaObject() (BasicMediaObject, bool) {
6341 return nil, false
6342 }
6343
6344
6345 func (t Thing) AsArticle() (*Article, bool) {
6346 return nil, false
6347 }
6348
6349
6350 func (t Thing) AsBasicArticle() (BasicArticle, bool) {
6351 return nil, false
6352 }
6353
6354
6355 func (t Thing) AsStructuredValue() (*StructuredValue, bool) {
6356 return nil, false
6357 }
6358
6359
6360 func (t Thing) AsResponseBase() (*ResponseBase, bool) {
6361 return nil, false
6362 }
6363
6364
6365 func (t Thing) AsBasicResponseBase() (BasicResponseBase, bool) {
6366 return &t, true
6367 }
6368
6369
6370 type TimeZone struct {
6371
6372 PrimaryCityTime *TimeZoneTimeZoneInformation `json:"primaryCityTime,omitempty"`
6373
6374 OtherCityTimes *[]TimeZoneTimeZoneInformation `json:"otherCityTimes,omitempty"`
6375
6376 QueryContext *QueryContext `json:"queryContext,omitempty"`
6377
6378 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
6379
6380 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
6381
6382 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
6383
6384 WebSearchURL *string `json:"webSearchUrl,omitempty"`
6385
6386 ID *string `json:"id,omitempty"`
6387
6388 Type TypeBasicResponseBase `json:"_type,omitempty"`
6389 }
6390
6391
6392 func (tz TimeZone) MarshalJSON() ([]byte, error) {
6393 tz.Type = TypeTimeZone
6394 objectMap := make(map[string]interface{})
6395 if tz.PrimaryCityTime != nil {
6396 objectMap["primaryCityTime"] = tz.PrimaryCityTime
6397 }
6398 if tz.Type != "" {
6399 objectMap["_type"] = tz.Type
6400 }
6401 return json.Marshal(objectMap)
6402 }
6403
6404
6405 func (tz TimeZone) AsImageObject() (*ImageObject, bool) {
6406 return nil, false
6407 }
6408
6409
6410 func (tz TimeZone) AsWebPage() (*WebPage, bool) {
6411 return nil, false
6412 }
6413
6414
6415 func (tz TimeZone) AsWebWebAnswer() (*WebWebAnswer, bool) {
6416 return nil, false
6417 }
6418
6419
6420 func (tz TimeZone) AsImages() (*Images, bool) {
6421 return nil, false
6422 }
6423
6424
6425 func (tz TimeZone) AsNewsArticle() (*NewsArticle, bool) {
6426 return nil, false
6427 }
6428
6429
6430 func (tz TimeZone) AsNews() (*News, bool) {
6431 return nil, false
6432 }
6433
6434
6435 func (tz TimeZone) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
6436 return nil, false
6437 }
6438
6439
6440 func (tz TimeZone) AsSpellSuggestions() (*SpellSuggestions, bool) {
6441 return nil, false
6442 }
6443
6444
6445 func (tz TimeZone) AsTimeZone() (*TimeZone, bool) {
6446 return &tz, true
6447 }
6448
6449
6450 func (tz TimeZone) AsVideoObject() (*VideoObject, bool) {
6451 return nil, false
6452 }
6453
6454
6455 func (tz TimeZone) AsVideos() (*Videos, bool) {
6456 return nil, false
6457 }
6458
6459
6460 func (tz TimeZone) AsComputation() (*Computation, bool) {
6461 return nil, false
6462 }
6463
6464
6465 func (tz TimeZone) AsIdentifiable() (*Identifiable, bool) {
6466 return nil, false
6467 }
6468
6469
6470 func (tz TimeZone) AsBasicIdentifiable() (BasicIdentifiable, bool) {
6471 return &tz, true
6472 }
6473
6474
6475 func (tz TimeZone) AsSearchResponse() (*SearchResponse, bool) {
6476 return nil, false
6477 }
6478
6479
6480 func (tz TimeZone) AsResponse() (*Response, bool) {
6481 return nil, false
6482 }
6483
6484
6485 func (tz TimeZone) AsBasicResponse() (BasicResponse, bool) {
6486 return &tz, true
6487 }
6488
6489
6490 func (tz TimeZone) AsThing() (*Thing, bool) {
6491 return nil, false
6492 }
6493
6494
6495 func (tz TimeZone) AsBasicThing() (BasicThing, bool) {
6496 return nil, false
6497 }
6498
6499
6500 func (tz TimeZone) AsPlaces() (*Places, bool) {
6501 return nil, false
6502 }
6503
6504
6505 func (tz TimeZone) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
6506 return nil, false
6507 }
6508
6509
6510 func (tz TimeZone) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
6511 return &tz, true
6512 }
6513
6514
6515 func (tz TimeZone) AsAnswer() (*Answer, bool) {
6516 return nil, false
6517 }
6518
6519
6520 func (tz TimeZone) AsBasicAnswer() (BasicAnswer, bool) {
6521 return &tz, true
6522 }
6523
6524
6525 func (tz TimeZone) AsErrorResponse() (*ErrorResponse, bool) {
6526 return nil, false
6527 }
6528
6529
6530 func (tz TimeZone) AsCreativeWork() (*CreativeWork, bool) {
6531 return nil, false
6532 }
6533
6534
6535 func (tz TimeZone) AsBasicCreativeWork() (BasicCreativeWork, bool) {
6536 return nil, false
6537 }
6538
6539
6540 func (tz TimeZone) AsIntangible() (*Intangible, bool) {
6541 return nil, false
6542 }
6543
6544
6545 func (tz TimeZone) AsBasicIntangible() (BasicIntangible, bool) {
6546 return nil, false
6547 }
6548
6549
6550 func (tz TimeZone) AsMediaObject() (*MediaObject, bool) {
6551 return nil, false
6552 }
6553
6554
6555 func (tz TimeZone) AsBasicMediaObject() (BasicMediaObject, bool) {
6556 return nil, false
6557 }
6558
6559
6560 func (tz TimeZone) AsArticle() (*Article, bool) {
6561 return nil, false
6562 }
6563
6564
6565 func (tz TimeZone) AsBasicArticle() (BasicArticle, bool) {
6566 return nil, false
6567 }
6568
6569
6570 func (tz TimeZone) AsStructuredValue() (*StructuredValue, bool) {
6571 return nil, false
6572 }
6573
6574
6575 func (tz TimeZone) AsResponseBase() (*ResponseBase, bool) {
6576 return nil, false
6577 }
6578
6579
6580 func (tz TimeZone) AsBasicResponseBase() (BasicResponseBase, bool) {
6581 return &tz, true
6582 }
6583
6584
6585 type TimeZoneTimeZoneInformation struct {
6586
6587 Location *string `json:"location,omitempty"`
6588
6589 Time *string `json:"time,omitempty"`
6590
6591 UtcOffset *string `json:"utcOffset,omitempty"`
6592 }
6593
6594
6595 type VideoObject struct {
6596
6597 MotionThumbnailURL *string `json:"motionThumbnailUrl,omitempty"`
6598
6599 MotionThumbnailID *string `json:"motionThumbnailId,omitempty"`
6600
6601 EmbedHTML *string `json:"embedHtml,omitempty"`
6602
6603 AllowHTTPSEmbed *bool `json:"allowHttpsEmbed,omitempty"`
6604
6605 ViewCount *int32 `json:"viewCount,omitempty"`
6606
6607 Thumbnail *ImageObject `json:"thumbnail,omitempty"`
6608
6609 VideoID *string `json:"videoId,omitempty"`
6610
6611 AllowMobileEmbed *bool `json:"allowMobileEmbed,omitempty"`
6612
6613 IsSuperfresh *bool `json:"isSuperfresh,omitempty"`
6614
6615 ContentURL *string `json:"contentUrl,omitempty"`
6616
6617 HostPageURL *string `json:"hostPageUrl,omitempty"`
6618
6619 Width *int32 `json:"width,omitempty"`
6620
6621 Height *int32 `json:"height,omitempty"`
6622
6623 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
6624
6625 Provider *[]BasicThing `json:"provider,omitempty"`
6626
6627 Text *string `json:"text,omitempty"`
6628
6629 Name *string `json:"name,omitempty"`
6630
6631 URL *string `json:"url,omitempty"`
6632
6633 Image *ImageObject `json:"image,omitempty"`
6634
6635 Description *string `json:"description,omitempty"`
6636
6637 BingID *string `json:"bingId,omitempty"`
6638
6639 WebSearchURL *string `json:"webSearchUrl,omitempty"`
6640
6641 ID *string `json:"id,omitempty"`
6642
6643 Type TypeBasicResponseBase `json:"_type,omitempty"`
6644 }
6645
6646
6647 func (vo VideoObject) MarshalJSON() ([]byte, error) {
6648 vo.Type = TypeVideoObject
6649 objectMap := make(map[string]interface{})
6650 if vo.Type != "" {
6651 objectMap["_type"] = vo.Type
6652 }
6653 return json.Marshal(objectMap)
6654 }
6655
6656
6657 func (vo VideoObject) AsImageObject() (*ImageObject, bool) {
6658 return nil, false
6659 }
6660
6661
6662 func (vo VideoObject) AsWebPage() (*WebPage, bool) {
6663 return nil, false
6664 }
6665
6666
6667 func (vo VideoObject) AsWebWebAnswer() (*WebWebAnswer, bool) {
6668 return nil, false
6669 }
6670
6671
6672 func (vo VideoObject) AsImages() (*Images, bool) {
6673 return nil, false
6674 }
6675
6676
6677 func (vo VideoObject) AsNewsArticle() (*NewsArticle, bool) {
6678 return nil, false
6679 }
6680
6681
6682 func (vo VideoObject) AsNews() (*News, bool) {
6683 return nil, false
6684 }
6685
6686
6687 func (vo VideoObject) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
6688 return nil, false
6689 }
6690
6691
6692 func (vo VideoObject) AsSpellSuggestions() (*SpellSuggestions, bool) {
6693 return nil, false
6694 }
6695
6696
6697 func (vo VideoObject) AsTimeZone() (*TimeZone, bool) {
6698 return nil, false
6699 }
6700
6701
6702 func (vo VideoObject) AsVideoObject() (*VideoObject, bool) {
6703 return &vo, true
6704 }
6705
6706
6707 func (vo VideoObject) AsVideos() (*Videos, bool) {
6708 return nil, false
6709 }
6710
6711
6712 func (vo VideoObject) AsComputation() (*Computation, bool) {
6713 return nil, false
6714 }
6715
6716
6717 func (vo VideoObject) AsIdentifiable() (*Identifiable, bool) {
6718 return nil, false
6719 }
6720
6721
6722 func (vo VideoObject) AsBasicIdentifiable() (BasicIdentifiable, bool) {
6723 return &vo, true
6724 }
6725
6726
6727 func (vo VideoObject) AsSearchResponse() (*SearchResponse, bool) {
6728 return nil, false
6729 }
6730
6731
6732 func (vo VideoObject) AsResponse() (*Response, bool) {
6733 return nil, false
6734 }
6735
6736
6737 func (vo VideoObject) AsBasicResponse() (BasicResponse, bool) {
6738 return &vo, true
6739 }
6740
6741
6742 func (vo VideoObject) AsThing() (*Thing, bool) {
6743 return nil, false
6744 }
6745
6746
6747 func (vo VideoObject) AsBasicThing() (BasicThing, bool) {
6748 return &vo, true
6749 }
6750
6751
6752 func (vo VideoObject) AsPlaces() (*Places, bool) {
6753 return nil, false
6754 }
6755
6756
6757 func (vo VideoObject) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
6758 return nil, false
6759 }
6760
6761
6762 func (vo VideoObject) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
6763 return nil, false
6764 }
6765
6766
6767 func (vo VideoObject) AsAnswer() (*Answer, bool) {
6768 return nil, false
6769 }
6770
6771
6772 func (vo VideoObject) AsBasicAnswer() (BasicAnswer, bool) {
6773 return nil, false
6774 }
6775
6776
6777 func (vo VideoObject) AsErrorResponse() (*ErrorResponse, bool) {
6778 return nil, false
6779 }
6780
6781
6782 func (vo VideoObject) AsCreativeWork() (*CreativeWork, bool) {
6783 return nil, false
6784 }
6785
6786
6787 func (vo VideoObject) AsBasicCreativeWork() (BasicCreativeWork, bool) {
6788 return &vo, true
6789 }
6790
6791
6792 func (vo VideoObject) AsIntangible() (*Intangible, bool) {
6793 return nil, false
6794 }
6795
6796
6797 func (vo VideoObject) AsBasicIntangible() (BasicIntangible, bool) {
6798 return nil, false
6799 }
6800
6801
6802 func (vo VideoObject) AsMediaObject() (*MediaObject, bool) {
6803 return nil, false
6804 }
6805
6806
6807 func (vo VideoObject) AsBasicMediaObject() (BasicMediaObject, bool) {
6808 return &vo, true
6809 }
6810
6811
6812 func (vo VideoObject) AsArticle() (*Article, bool) {
6813 return nil, false
6814 }
6815
6816
6817 func (vo VideoObject) AsBasicArticle() (BasicArticle, bool) {
6818 return nil, false
6819 }
6820
6821
6822 func (vo VideoObject) AsStructuredValue() (*StructuredValue, bool) {
6823 return nil, false
6824 }
6825
6826
6827 func (vo VideoObject) AsResponseBase() (*ResponseBase, bool) {
6828 return nil, false
6829 }
6830
6831
6832 func (vo VideoObject) AsBasicResponseBase() (BasicResponseBase, bool) {
6833 return &vo, true
6834 }
6835
6836
6837 func (vo *VideoObject) UnmarshalJSON(body []byte) error {
6838 var m map[string]*json.RawMessage
6839 err := json.Unmarshal(body, &m)
6840 if err != nil {
6841 return err
6842 }
6843 for k, v := range m {
6844 switch k {
6845 case "motionThumbnailUrl":
6846 if v != nil {
6847 var motionThumbnailURL string
6848 err = json.Unmarshal(*v, &motionThumbnailURL)
6849 if err != nil {
6850 return err
6851 }
6852 vo.MotionThumbnailURL = &motionThumbnailURL
6853 }
6854 case "motionThumbnailId":
6855 if v != nil {
6856 var motionThumbnailID string
6857 err = json.Unmarshal(*v, &motionThumbnailID)
6858 if err != nil {
6859 return err
6860 }
6861 vo.MotionThumbnailID = &motionThumbnailID
6862 }
6863 case "embedHtml":
6864 if v != nil {
6865 var embedHTML string
6866 err = json.Unmarshal(*v, &embedHTML)
6867 if err != nil {
6868 return err
6869 }
6870 vo.EmbedHTML = &embedHTML
6871 }
6872 case "allowHttpsEmbed":
6873 if v != nil {
6874 var allowHTTPSEmbed bool
6875 err = json.Unmarshal(*v, &allowHTTPSEmbed)
6876 if err != nil {
6877 return err
6878 }
6879 vo.AllowHTTPSEmbed = &allowHTTPSEmbed
6880 }
6881 case "viewCount":
6882 if v != nil {
6883 var viewCount int32
6884 err = json.Unmarshal(*v, &viewCount)
6885 if err != nil {
6886 return err
6887 }
6888 vo.ViewCount = &viewCount
6889 }
6890 case "thumbnail":
6891 if v != nil {
6892 var thumbnail ImageObject
6893 err = json.Unmarshal(*v, &thumbnail)
6894 if err != nil {
6895 return err
6896 }
6897 vo.Thumbnail = &thumbnail
6898 }
6899 case "videoId":
6900 if v != nil {
6901 var videoID string
6902 err = json.Unmarshal(*v, &videoID)
6903 if err != nil {
6904 return err
6905 }
6906 vo.VideoID = &videoID
6907 }
6908 case "allowMobileEmbed":
6909 if v != nil {
6910 var allowMobileEmbed bool
6911 err = json.Unmarshal(*v, &allowMobileEmbed)
6912 if err != nil {
6913 return err
6914 }
6915 vo.AllowMobileEmbed = &allowMobileEmbed
6916 }
6917 case "isSuperfresh":
6918 if v != nil {
6919 var isSuperfresh bool
6920 err = json.Unmarshal(*v, &isSuperfresh)
6921 if err != nil {
6922 return err
6923 }
6924 vo.IsSuperfresh = &isSuperfresh
6925 }
6926 case "contentUrl":
6927 if v != nil {
6928 var contentURL string
6929 err = json.Unmarshal(*v, &contentURL)
6930 if err != nil {
6931 return err
6932 }
6933 vo.ContentURL = &contentURL
6934 }
6935 case "hostPageUrl":
6936 if v != nil {
6937 var hostPageURL string
6938 err = json.Unmarshal(*v, &hostPageURL)
6939 if err != nil {
6940 return err
6941 }
6942 vo.HostPageURL = &hostPageURL
6943 }
6944 case "width":
6945 if v != nil {
6946 var width int32
6947 err = json.Unmarshal(*v, &width)
6948 if err != nil {
6949 return err
6950 }
6951 vo.Width = &width
6952 }
6953 case "height":
6954 if v != nil {
6955 var height int32
6956 err = json.Unmarshal(*v, &height)
6957 if err != nil {
6958 return err
6959 }
6960 vo.Height = &height
6961 }
6962 case "thumbnailUrl":
6963 if v != nil {
6964 var thumbnailURL string
6965 err = json.Unmarshal(*v, &thumbnailURL)
6966 if err != nil {
6967 return err
6968 }
6969 vo.ThumbnailURL = &thumbnailURL
6970 }
6971 case "provider":
6972 if v != nil {
6973 provider, err := unmarshalBasicThingArray(*v)
6974 if err != nil {
6975 return err
6976 }
6977 vo.Provider = &provider
6978 }
6979 case "text":
6980 if v != nil {
6981 var textVar string
6982 err = json.Unmarshal(*v, &textVar)
6983 if err != nil {
6984 return err
6985 }
6986 vo.Text = &textVar
6987 }
6988 case "name":
6989 if v != nil {
6990 var name string
6991 err = json.Unmarshal(*v, &name)
6992 if err != nil {
6993 return err
6994 }
6995 vo.Name = &name
6996 }
6997 case "url":
6998 if v != nil {
6999 var URL string
7000 err = json.Unmarshal(*v, &URL)
7001 if err != nil {
7002 return err
7003 }
7004 vo.URL = &URL
7005 }
7006 case "image":
7007 if v != nil {
7008 var imageVar ImageObject
7009 err = json.Unmarshal(*v, &imageVar)
7010 if err != nil {
7011 return err
7012 }
7013 vo.Image = &imageVar
7014 }
7015 case "description":
7016 if v != nil {
7017 var description string
7018 err = json.Unmarshal(*v, &description)
7019 if err != nil {
7020 return err
7021 }
7022 vo.Description = &description
7023 }
7024 case "bingId":
7025 if v != nil {
7026 var bingID string
7027 err = json.Unmarshal(*v, &bingID)
7028 if err != nil {
7029 return err
7030 }
7031 vo.BingID = &bingID
7032 }
7033 case "webSearchUrl":
7034 if v != nil {
7035 var webSearchURL string
7036 err = json.Unmarshal(*v, &webSearchURL)
7037 if err != nil {
7038 return err
7039 }
7040 vo.WebSearchURL = &webSearchURL
7041 }
7042 case "id":
7043 if v != nil {
7044 var ID string
7045 err = json.Unmarshal(*v, &ID)
7046 if err != nil {
7047 return err
7048 }
7049 vo.ID = &ID
7050 }
7051 case "_type":
7052 if v != nil {
7053 var typeVar TypeBasicResponseBase
7054 err = json.Unmarshal(*v, &typeVar)
7055 if err != nil {
7056 return err
7057 }
7058 vo.Type = typeVar
7059 }
7060 }
7061 }
7062
7063 return nil
7064 }
7065
7066
7067 type Videos struct {
7068
7069 Value *[]VideoObject `json:"value,omitempty"`
7070
7071 NextOffset *int32 `json:"nextOffset,omitempty"`
7072
7073 QueryExpansions *[]Query `json:"queryExpansions,omitempty"`
7074
7075 RelatedSearches *[]Query `json:"relatedSearches,omitempty"`
7076
7077 QueryContext *QueryContext `json:"queryContext,omitempty"`
7078
7079 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
7080
7081 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
7082
7083 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
7084
7085 WebSearchURL *string `json:"webSearchUrl,omitempty"`
7086
7087 ID *string `json:"id,omitempty"`
7088
7089 Type TypeBasicResponseBase `json:"_type,omitempty"`
7090 }
7091
7092
7093 func (vVar Videos) MarshalJSON() ([]byte, error) {
7094 vVar.Type = TypeVideos
7095 objectMap := make(map[string]interface{})
7096 if vVar.Value != nil {
7097 objectMap["value"] = vVar.Value
7098 }
7099 if vVar.Type != "" {
7100 objectMap["_type"] = vVar.Type
7101 }
7102 return json.Marshal(objectMap)
7103 }
7104
7105
7106 func (vVar Videos) AsImageObject() (*ImageObject, bool) {
7107 return nil, false
7108 }
7109
7110
7111 func (vVar Videos) AsWebPage() (*WebPage, bool) {
7112 return nil, false
7113 }
7114
7115
7116 func (vVar Videos) AsWebWebAnswer() (*WebWebAnswer, bool) {
7117 return nil, false
7118 }
7119
7120
7121 func (vVar Videos) AsImages() (*Images, bool) {
7122 return nil, false
7123 }
7124
7125
7126 func (vVar Videos) AsNewsArticle() (*NewsArticle, bool) {
7127 return nil, false
7128 }
7129
7130
7131 func (vVar Videos) AsNews() (*News, bool) {
7132 return nil, false
7133 }
7134
7135
7136 func (vVar Videos) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
7137 return nil, false
7138 }
7139
7140
7141 func (vVar Videos) AsSpellSuggestions() (*SpellSuggestions, bool) {
7142 return nil, false
7143 }
7144
7145
7146 func (vVar Videos) AsTimeZone() (*TimeZone, bool) {
7147 return nil, false
7148 }
7149
7150
7151 func (vVar Videos) AsVideoObject() (*VideoObject, bool) {
7152 return nil, false
7153 }
7154
7155
7156 func (vVar Videos) AsVideos() (*Videos, bool) {
7157 return &vVar, true
7158 }
7159
7160
7161 func (vVar Videos) AsComputation() (*Computation, bool) {
7162 return nil, false
7163 }
7164
7165
7166 func (vVar Videos) AsIdentifiable() (*Identifiable, bool) {
7167 return nil, false
7168 }
7169
7170
7171 func (vVar Videos) AsBasicIdentifiable() (BasicIdentifiable, bool) {
7172 return &vVar, true
7173 }
7174
7175
7176 func (vVar Videos) AsSearchResponse() (*SearchResponse, bool) {
7177 return nil, false
7178 }
7179
7180
7181 func (vVar Videos) AsResponse() (*Response, bool) {
7182 return nil, false
7183 }
7184
7185
7186 func (vVar Videos) AsBasicResponse() (BasicResponse, bool) {
7187 return &vVar, true
7188 }
7189
7190
7191 func (vVar Videos) AsThing() (*Thing, bool) {
7192 return nil, false
7193 }
7194
7195
7196 func (vVar Videos) AsBasicThing() (BasicThing, bool) {
7197 return nil, false
7198 }
7199
7200
7201 func (vVar Videos) AsPlaces() (*Places, bool) {
7202 return nil, false
7203 }
7204
7205
7206 func (vVar Videos) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
7207 return nil, false
7208 }
7209
7210
7211 func (vVar Videos) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
7212 return &vVar, true
7213 }
7214
7215
7216 func (vVar Videos) AsAnswer() (*Answer, bool) {
7217 return nil, false
7218 }
7219
7220
7221 func (vVar Videos) AsBasicAnswer() (BasicAnswer, bool) {
7222 return &vVar, true
7223 }
7224
7225
7226 func (vVar Videos) AsErrorResponse() (*ErrorResponse, bool) {
7227 return nil, false
7228 }
7229
7230
7231 func (vVar Videos) AsCreativeWork() (*CreativeWork, bool) {
7232 return nil, false
7233 }
7234
7235
7236 func (vVar Videos) AsBasicCreativeWork() (BasicCreativeWork, bool) {
7237 return nil, false
7238 }
7239
7240
7241 func (vVar Videos) AsIntangible() (*Intangible, bool) {
7242 return nil, false
7243 }
7244
7245
7246 func (vVar Videos) AsBasicIntangible() (BasicIntangible, bool) {
7247 return nil, false
7248 }
7249
7250
7251 func (vVar Videos) AsMediaObject() (*MediaObject, bool) {
7252 return nil, false
7253 }
7254
7255
7256 func (vVar Videos) AsBasicMediaObject() (BasicMediaObject, bool) {
7257 return nil, false
7258 }
7259
7260
7261 func (vVar Videos) AsArticle() (*Article, bool) {
7262 return nil, false
7263 }
7264
7265
7266 func (vVar Videos) AsBasicArticle() (BasicArticle, bool) {
7267 return nil, false
7268 }
7269
7270
7271 func (vVar Videos) AsStructuredValue() (*StructuredValue, bool) {
7272 return nil, false
7273 }
7274
7275
7276 func (vVar Videos) AsResponseBase() (*ResponseBase, bool) {
7277 return nil, false
7278 }
7279
7280
7281 func (vVar Videos) AsBasicResponseBase() (BasicResponseBase, bool) {
7282 return &vVar, true
7283 }
7284
7285
7286 type WebMetaTag struct {
7287
7288 Name *string `json:"name,omitempty"`
7289
7290 Content *string `json:"content,omitempty"`
7291 }
7292
7293
7294 func (wmt WebMetaTag) MarshalJSON() ([]byte, error) {
7295 objectMap := make(map[string]interface{})
7296 return json.Marshal(objectMap)
7297 }
7298
7299
7300 type WebPage struct {
7301
7302 DisplayURL *string `json:"displayUrl,omitempty"`
7303
7304 Snippet *string `json:"snippet,omitempty"`
7305
7306 DeepLinks *[]WebPage `json:"deepLinks,omitempty"`
7307
7308 DateLastCrawled *string `json:"dateLastCrawled,omitempty"`
7309
7310 SearchTags *[]WebMetaTag `json:"searchTags,omitempty"`
7311
7312 PrimaryImageOfPage *ImageObject `json:"primaryImageOfPage,omitempty"`
7313
7314 ThumbnailURL *string `json:"thumbnailUrl,omitempty"`
7315
7316 Provider *[]BasicThing `json:"provider,omitempty"`
7317
7318 Text *string `json:"text,omitempty"`
7319
7320 Name *string `json:"name,omitempty"`
7321
7322 URL *string `json:"url,omitempty"`
7323
7324 Image *ImageObject `json:"image,omitempty"`
7325
7326 Description *string `json:"description,omitempty"`
7327
7328 BingID *string `json:"bingId,omitempty"`
7329
7330 WebSearchURL *string `json:"webSearchUrl,omitempty"`
7331
7332 ID *string `json:"id,omitempty"`
7333
7334 Type TypeBasicResponseBase `json:"_type,omitempty"`
7335 }
7336
7337
7338 func (wp WebPage) MarshalJSON() ([]byte, error) {
7339 wp.Type = TypeWebPage
7340 objectMap := make(map[string]interface{})
7341 if wp.Type != "" {
7342 objectMap["_type"] = wp.Type
7343 }
7344 return json.Marshal(objectMap)
7345 }
7346
7347
7348 func (wp WebPage) AsImageObject() (*ImageObject, bool) {
7349 return nil, false
7350 }
7351
7352
7353 func (wp WebPage) AsWebPage() (*WebPage, bool) {
7354 return &wp, true
7355 }
7356
7357
7358 func (wp WebPage) AsWebWebAnswer() (*WebWebAnswer, bool) {
7359 return nil, false
7360 }
7361
7362
7363 func (wp WebPage) AsImages() (*Images, bool) {
7364 return nil, false
7365 }
7366
7367
7368 func (wp WebPage) AsNewsArticle() (*NewsArticle, bool) {
7369 return nil, false
7370 }
7371
7372
7373 func (wp WebPage) AsNews() (*News, bool) {
7374 return nil, false
7375 }
7376
7377
7378 func (wp WebPage) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
7379 return nil, false
7380 }
7381
7382
7383 func (wp WebPage) AsSpellSuggestions() (*SpellSuggestions, bool) {
7384 return nil, false
7385 }
7386
7387
7388 func (wp WebPage) AsTimeZone() (*TimeZone, bool) {
7389 return nil, false
7390 }
7391
7392
7393 func (wp WebPage) AsVideoObject() (*VideoObject, bool) {
7394 return nil, false
7395 }
7396
7397
7398 func (wp WebPage) AsVideos() (*Videos, bool) {
7399 return nil, false
7400 }
7401
7402
7403 func (wp WebPage) AsComputation() (*Computation, bool) {
7404 return nil, false
7405 }
7406
7407
7408 func (wp WebPage) AsIdentifiable() (*Identifiable, bool) {
7409 return nil, false
7410 }
7411
7412
7413 func (wp WebPage) AsBasicIdentifiable() (BasicIdentifiable, bool) {
7414 return &wp, true
7415 }
7416
7417
7418 func (wp WebPage) AsSearchResponse() (*SearchResponse, bool) {
7419 return nil, false
7420 }
7421
7422
7423 func (wp WebPage) AsResponse() (*Response, bool) {
7424 return nil, false
7425 }
7426
7427
7428 func (wp WebPage) AsBasicResponse() (BasicResponse, bool) {
7429 return &wp, true
7430 }
7431
7432
7433 func (wp WebPage) AsThing() (*Thing, bool) {
7434 return nil, false
7435 }
7436
7437
7438 func (wp WebPage) AsBasicThing() (BasicThing, bool) {
7439 return &wp, true
7440 }
7441
7442
7443 func (wp WebPage) AsPlaces() (*Places, bool) {
7444 return nil, false
7445 }
7446
7447
7448 func (wp WebPage) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
7449 return nil, false
7450 }
7451
7452
7453 func (wp WebPage) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
7454 return nil, false
7455 }
7456
7457
7458 func (wp WebPage) AsAnswer() (*Answer, bool) {
7459 return nil, false
7460 }
7461
7462
7463 func (wp WebPage) AsBasicAnswer() (BasicAnswer, bool) {
7464 return nil, false
7465 }
7466
7467
7468 func (wp WebPage) AsErrorResponse() (*ErrorResponse, bool) {
7469 return nil, false
7470 }
7471
7472
7473 func (wp WebPage) AsCreativeWork() (*CreativeWork, bool) {
7474 return nil, false
7475 }
7476
7477
7478 func (wp WebPage) AsBasicCreativeWork() (BasicCreativeWork, bool) {
7479 return &wp, true
7480 }
7481
7482
7483 func (wp WebPage) AsIntangible() (*Intangible, bool) {
7484 return nil, false
7485 }
7486
7487
7488 func (wp WebPage) AsBasicIntangible() (BasicIntangible, bool) {
7489 return nil, false
7490 }
7491
7492
7493 func (wp WebPage) AsMediaObject() (*MediaObject, bool) {
7494 return nil, false
7495 }
7496
7497
7498 func (wp WebPage) AsBasicMediaObject() (BasicMediaObject, bool) {
7499 return nil, false
7500 }
7501
7502
7503 func (wp WebPage) AsArticle() (*Article, bool) {
7504 return nil, false
7505 }
7506
7507
7508 func (wp WebPage) AsBasicArticle() (BasicArticle, bool) {
7509 return nil, false
7510 }
7511
7512
7513 func (wp WebPage) AsStructuredValue() (*StructuredValue, bool) {
7514 return nil, false
7515 }
7516
7517
7518 func (wp WebPage) AsResponseBase() (*ResponseBase, bool) {
7519 return nil, false
7520 }
7521
7522
7523 func (wp WebPage) AsBasicResponseBase() (BasicResponseBase, bool) {
7524 return &wp, true
7525 }
7526
7527
7528 func (wp *WebPage) UnmarshalJSON(body []byte) error {
7529 var m map[string]*json.RawMessage
7530 err := json.Unmarshal(body, &m)
7531 if err != nil {
7532 return err
7533 }
7534 for k, v := range m {
7535 switch k {
7536 case "displayUrl":
7537 if v != nil {
7538 var displayURL string
7539 err = json.Unmarshal(*v, &displayURL)
7540 if err != nil {
7541 return err
7542 }
7543 wp.DisplayURL = &displayURL
7544 }
7545 case "snippet":
7546 if v != nil {
7547 var snippet string
7548 err = json.Unmarshal(*v, &snippet)
7549 if err != nil {
7550 return err
7551 }
7552 wp.Snippet = &snippet
7553 }
7554 case "deepLinks":
7555 if v != nil {
7556 var deepLinks []WebPage
7557 err = json.Unmarshal(*v, &deepLinks)
7558 if err != nil {
7559 return err
7560 }
7561 wp.DeepLinks = &deepLinks
7562 }
7563 case "dateLastCrawled":
7564 if v != nil {
7565 var dateLastCrawled string
7566 err = json.Unmarshal(*v, &dateLastCrawled)
7567 if err != nil {
7568 return err
7569 }
7570 wp.DateLastCrawled = &dateLastCrawled
7571 }
7572 case "searchTags":
7573 if v != nil {
7574 var searchTags []WebMetaTag
7575 err = json.Unmarshal(*v, &searchTags)
7576 if err != nil {
7577 return err
7578 }
7579 wp.SearchTags = &searchTags
7580 }
7581 case "primaryImageOfPage":
7582 if v != nil {
7583 var primaryImageOfPage ImageObject
7584 err = json.Unmarshal(*v, &primaryImageOfPage)
7585 if err != nil {
7586 return err
7587 }
7588 wp.PrimaryImageOfPage = &primaryImageOfPage
7589 }
7590 case "thumbnailUrl":
7591 if v != nil {
7592 var thumbnailURL string
7593 err = json.Unmarshal(*v, &thumbnailURL)
7594 if err != nil {
7595 return err
7596 }
7597 wp.ThumbnailURL = &thumbnailURL
7598 }
7599 case "provider":
7600 if v != nil {
7601 provider, err := unmarshalBasicThingArray(*v)
7602 if err != nil {
7603 return err
7604 }
7605 wp.Provider = &provider
7606 }
7607 case "text":
7608 if v != nil {
7609 var textVar string
7610 err = json.Unmarshal(*v, &textVar)
7611 if err != nil {
7612 return err
7613 }
7614 wp.Text = &textVar
7615 }
7616 case "name":
7617 if v != nil {
7618 var name string
7619 err = json.Unmarshal(*v, &name)
7620 if err != nil {
7621 return err
7622 }
7623 wp.Name = &name
7624 }
7625 case "url":
7626 if v != nil {
7627 var URL string
7628 err = json.Unmarshal(*v, &URL)
7629 if err != nil {
7630 return err
7631 }
7632 wp.URL = &URL
7633 }
7634 case "image":
7635 if v != nil {
7636 var imageVar ImageObject
7637 err = json.Unmarshal(*v, &imageVar)
7638 if err != nil {
7639 return err
7640 }
7641 wp.Image = &imageVar
7642 }
7643 case "description":
7644 if v != nil {
7645 var description string
7646 err = json.Unmarshal(*v, &description)
7647 if err != nil {
7648 return err
7649 }
7650 wp.Description = &description
7651 }
7652 case "bingId":
7653 if v != nil {
7654 var bingID string
7655 err = json.Unmarshal(*v, &bingID)
7656 if err != nil {
7657 return err
7658 }
7659 wp.BingID = &bingID
7660 }
7661 case "webSearchUrl":
7662 if v != nil {
7663 var webSearchURL string
7664 err = json.Unmarshal(*v, &webSearchURL)
7665 if err != nil {
7666 return err
7667 }
7668 wp.WebSearchURL = &webSearchURL
7669 }
7670 case "id":
7671 if v != nil {
7672 var ID string
7673 err = json.Unmarshal(*v, &ID)
7674 if err != nil {
7675 return err
7676 }
7677 wp.ID = &ID
7678 }
7679 case "_type":
7680 if v != nil {
7681 var typeVar TypeBasicResponseBase
7682 err = json.Unmarshal(*v, &typeVar)
7683 if err != nil {
7684 return err
7685 }
7686 wp.Type = typeVar
7687 }
7688 }
7689 }
7690
7691 return nil
7692 }
7693
7694
7695 type WebWebAnswer struct {
7696
7697 Value *[]WebPage `json:"value,omitempty"`
7698
7699 SomeResultsRemoved *bool `json:"someResultsRemoved,omitempty"`
7700
7701 QueryContext *QueryContext `json:"queryContext,omitempty"`
7702
7703 TotalEstimatedMatches *int64 `json:"totalEstimatedMatches,omitempty"`
7704
7705 IsFamilyFriendly *bool `json:"isFamilyFriendly,omitempty"`
7706
7707 FollowUpQueries *[]Query `json:"followUpQueries,omitempty"`
7708
7709 WebSearchURL *string `json:"webSearchUrl,omitempty"`
7710
7711 ID *string `json:"id,omitempty"`
7712
7713 Type TypeBasicResponseBase `json:"_type,omitempty"`
7714 }
7715
7716
7717 func (wwa WebWebAnswer) MarshalJSON() ([]byte, error) {
7718 wwa.Type = TypeWebWebAnswer
7719 objectMap := make(map[string]interface{})
7720 if wwa.Value != nil {
7721 objectMap["value"] = wwa.Value
7722 }
7723 if wwa.Type != "" {
7724 objectMap["_type"] = wwa.Type
7725 }
7726 return json.Marshal(objectMap)
7727 }
7728
7729
7730 func (wwa WebWebAnswer) AsImageObject() (*ImageObject, bool) {
7731 return nil, false
7732 }
7733
7734
7735 func (wwa WebWebAnswer) AsWebPage() (*WebPage, bool) {
7736 return nil, false
7737 }
7738
7739
7740 func (wwa WebWebAnswer) AsWebWebAnswer() (*WebWebAnswer, bool) {
7741 return &wwa, true
7742 }
7743
7744
7745 func (wwa WebWebAnswer) AsImages() (*Images, bool) {
7746 return nil, false
7747 }
7748
7749
7750 func (wwa WebWebAnswer) AsNewsArticle() (*NewsArticle, bool) {
7751 return nil, false
7752 }
7753
7754
7755 func (wwa WebWebAnswer) AsNews() (*News, bool) {
7756 return nil, false
7757 }
7758
7759
7760 func (wwa WebWebAnswer) AsRelatedSearchesRelatedSearchAnswer() (*RelatedSearchesRelatedSearchAnswer, bool) {
7761 return nil, false
7762 }
7763
7764
7765 func (wwa WebWebAnswer) AsSpellSuggestions() (*SpellSuggestions, bool) {
7766 return nil, false
7767 }
7768
7769
7770 func (wwa WebWebAnswer) AsTimeZone() (*TimeZone, bool) {
7771 return nil, false
7772 }
7773
7774
7775 func (wwa WebWebAnswer) AsVideoObject() (*VideoObject, bool) {
7776 return nil, false
7777 }
7778
7779
7780 func (wwa WebWebAnswer) AsVideos() (*Videos, bool) {
7781 return nil, false
7782 }
7783
7784
7785 func (wwa WebWebAnswer) AsComputation() (*Computation, bool) {
7786 return nil, false
7787 }
7788
7789
7790 func (wwa WebWebAnswer) AsIdentifiable() (*Identifiable, bool) {
7791 return nil, false
7792 }
7793
7794
7795 func (wwa WebWebAnswer) AsBasicIdentifiable() (BasicIdentifiable, bool) {
7796 return &wwa, true
7797 }
7798
7799
7800 func (wwa WebWebAnswer) AsSearchResponse() (*SearchResponse, bool) {
7801 return nil, false
7802 }
7803
7804
7805 func (wwa WebWebAnswer) AsResponse() (*Response, bool) {
7806 return nil, false
7807 }
7808
7809
7810 func (wwa WebWebAnswer) AsBasicResponse() (BasicResponse, bool) {
7811 return &wwa, true
7812 }
7813
7814
7815 func (wwa WebWebAnswer) AsThing() (*Thing, bool) {
7816 return nil, false
7817 }
7818
7819
7820 func (wwa WebWebAnswer) AsBasicThing() (BasicThing, bool) {
7821 return nil, false
7822 }
7823
7824
7825 func (wwa WebWebAnswer) AsPlaces() (*Places, bool) {
7826 return nil, false
7827 }
7828
7829
7830 func (wwa WebWebAnswer) AsSearchResultsAnswer() (*SearchResultsAnswer, bool) {
7831 return nil, false
7832 }
7833
7834
7835 func (wwa WebWebAnswer) AsBasicSearchResultsAnswer() (BasicSearchResultsAnswer, bool) {
7836 return &wwa, true
7837 }
7838
7839
7840 func (wwa WebWebAnswer) AsAnswer() (*Answer, bool) {
7841 return nil, false
7842 }
7843
7844
7845 func (wwa WebWebAnswer) AsBasicAnswer() (BasicAnswer, bool) {
7846 return &wwa, true
7847 }
7848
7849
7850 func (wwa WebWebAnswer) AsErrorResponse() (*ErrorResponse, bool) {
7851 return nil, false
7852 }
7853
7854
7855 func (wwa WebWebAnswer) AsCreativeWork() (*CreativeWork, bool) {
7856 return nil, false
7857 }
7858
7859
7860 func (wwa WebWebAnswer) AsBasicCreativeWork() (BasicCreativeWork, bool) {
7861 return nil, false
7862 }
7863
7864
7865 func (wwa WebWebAnswer) AsIntangible() (*Intangible, bool) {
7866 return nil, false
7867 }
7868
7869
7870 func (wwa WebWebAnswer) AsBasicIntangible() (BasicIntangible, bool) {
7871 return nil, false
7872 }
7873
7874
7875 func (wwa WebWebAnswer) AsMediaObject() (*MediaObject, bool) {
7876 return nil, false
7877 }
7878
7879
7880 func (wwa WebWebAnswer) AsBasicMediaObject() (BasicMediaObject, bool) {
7881 return nil, false
7882 }
7883
7884
7885 func (wwa WebWebAnswer) AsArticle() (*Article, bool) {
7886 return nil, false
7887 }
7888
7889
7890 func (wwa WebWebAnswer) AsBasicArticle() (BasicArticle, bool) {
7891 return nil, false
7892 }
7893
7894
7895 func (wwa WebWebAnswer) AsStructuredValue() (*StructuredValue, bool) {
7896 return nil, false
7897 }
7898
7899
7900 func (wwa WebWebAnswer) AsResponseBase() (*ResponseBase, bool) {
7901 return nil, false
7902 }
7903
7904
7905 func (wwa WebWebAnswer) AsBasicResponseBase() (BasicResponseBase, bool) {
7906 return &wwa, true
7907 }
7908
7909
7910 type BasicWebWebGrouping interface {
7911 AsWebWebGrouping() (*WebWebGrouping, bool)
7912 }
7913
7914
7915 type WebWebGrouping struct {
7916 WebPages *[]WebPage `json:"webPages,omitempty"`
7917
7918 Type Type `json:"_type,omitempty"`
7919 }
7920
7921 func unmarshalBasicWebWebGrouping(body []byte) (BasicWebWebGrouping, error) {
7922 var m map[string]interface{}
7923 err := json.Unmarshal(body, &m)
7924 if err != nil {
7925 return nil, err
7926 }
7927
7928 switch m["_type"] {
7929 default:
7930 var wwg WebWebGrouping
7931 err := json.Unmarshal(body, &wwg)
7932 return wwg, err
7933 }
7934 }
7935 func unmarshalBasicWebWebGroupingArray(body []byte) ([]BasicWebWebGrouping, error) {
7936 var rawMessages []*json.RawMessage
7937 err := json.Unmarshal(body, &rawMessages)
7938 if err != nil {
7939 return nil, err
7940 }
7941
7942 wwgArray := make([]BasicWebWebGrouping, len(rawMessages))
7943
7944 for index, rawMessage := range rawMessages {
7945 wwg, err := unmarshalBasicWebWebGrouping(*rawMessage)
7946 if err != nil {
7947 return nil, err
7948 }
7949 wwgArray[index] = wwg
7950 }
7951 return wwgArray, nil
7952 }
7953
7954
7955 func (wwg WebWebGrouping) MarshalJSON() ([]byte, error) {
7956 wwg.Type = TypeWebWebGrouping
7957 objectMap := make(map[string]interface{})
7958 if wwg.WebPages != nil {
7959 objectMap["webPages"] = wwg.WebPages
7960 }
7961 if wwg.Type != "" {
7962 objectMap["_type"] = wwg.Type
7963 }
7964 return json.Marshal(objectMap)
7965 }
7966
7967
7968 func (wwg WebWebGrouping) AsWebWebGrouping() (*WebWebGrouping, bool) {
7969 return &wwg, true
7970 }
7971
7972
7973 func (wwg WebWebGrouping) AsBasicWebWebGrouping() (BasicWebWebGrouping, bool) {
7974 return &wwg, true
7975 }
7976
View as plain text