1// +build go1.13
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5// Code generated by Microsoft (R) AutoRest Code Generator.
6// Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
8package armeventgrid
9
10import "encoding/json"
11
12func unmarshalAdvancedFilterClassification(rawMsg json.RawMessage) (AdvancedFilterClassification, error) {
13	if rawMsg == nil {
14		return nil, nil
15	}
16	var m map[string]interface{}
17	if err := json.Unmarshal(rawMsg, &m); err != nil {
18		return nil, err
19	}
20	var b AdvancedFilterClassification
21	switch m["operatorType"] {
22	case string(AdvancedFilterOperatorTypeBoolEquals):
23		b = &BoolEqualsAdvancedFilter{}
24	case string(AdvancedFilterOperatorTypeIsNotNull):
25		b = &IsNotNullAdvancedFilter{}
26	case string(AdvancedFilterOperatorTypeIsNullOrUndefined):
27		b = &IsNullOrUndefinedAdvancedFilter{}
28	case string(AdvancedFilterOperatorTypeNumberGreaterThan):
29		b = &NumberGreaterThanAdvancedFilter{}
30	case string(AdvancedFilterOperatorTypeNumberGreaterThanOrEquals):
31		b = &NumberGreaterThanOrEqualsAdvancedFilter{}
32	case string(AdvancedFilterOperatorTypeNumberIn):
33		b = &NumberInAdvancedFilter{}
34	case string(AdvancedFilterOperatorTypeNumberInRange):
35		b = &NumberInRangeAdvancedFilter{}
36	case string(AdvancedFilterOperatorTypeNumberLessThan):
37		b = &NumberLessThanAdvancedFilter{}
38	case string(AdvancedFilterOperatorTypeNumberLessThanOrEquals):
39		b = &NumberLessThanOrEqualsAdvancedFilter{}
40	case string(AdvancedFilterOperatorTypeNumberNotIn):
41		b = &NumberNotInAdvancedFilter{}
42	case string(AdvancedFilterOperatorTypeNumberNotInRange):
43		b = &NumberNotInRangeAdvancedFilter{}
44	case string(AdvancedFilterOperatorTypeStringBeginsWith):
45		b = &StringBeginsWithAdvancedFilter{}
46	case string(AdvancedFilterOperatorTypeStringContains):
47		b = &StringContainsAdvancedFilter{}
48	case string(AdvancedFilterOperatorTypeStringEndsWith):
49		b = &StringEndsWithAdvancedFilter{}
50	case string(AdvancedFilterOperatorTypeStringIn):
51		b = &StringInAdvancedFilter{}
52	case string(AdvancedFilterOperatorTypeStringNotBeginsWith):
53		b = &StringNotBeginsWithAdvancedFilter{}
54	case string(AdvancedFilterOperatorTypeStringNotContains):
55		b = &StringNotContainsAdvancedFilter{}
56	case string(AdvancedFilterOperatorTypeStringNotEndsWith):
57		b = &StringNotEndsWithAdvancedFilter{}
58	case string(AdvancedFilterOperatorTypeStringNotIn):
59		b = &StringNotInAdvancedFilter{}
60	default:
61		b = &AdvancedFilter{}
62	}
63	return b, json.Unmarshal(rawMsg, b)
64}
65
66func unmarshalAdvancedFilterClassificationArray(rawMsg json.RawMessage) ([]AdvancedFilterClassification, error) {
67	if rawMsg == nil {
68		return nil, nil
69	}
70	var rawMessages []json.RawMessage
71	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
72		return nil, err
73	}
74	fArray := make([]AdvancedFilterClassification, len(rawMessages))
75	for index, rawMessage := range rawMessages {
76		f, err := unmarshalAdvancedFilterClassification(rawMessage)
77		if err != nil {
78			return nil, err
79		}
80		fArray[index] = f
81	}
82	return fArray, nil
83}
84
85func unmarshalDeadLetterDestinationClassification(rawMsg json.RawMessage) (DeadLetterDestinationClassification, error) {
86	if rawMsg == nil {
87		return nil, nil
88	}
89	var m map[string]interface{}
90	if err := json.Unmarshal(rawMsg, &m); err != nil {
91		return nil, err
92	}
93	var b DeadLetterDestinationClassification
94	switch m["endpointType"] {
95	case string(DeadLetterEndPointTypeStorageBlob):
96		b = &StorageBlobDeadLetterDestination{}
97	default:
98		b = &DeadLetterDestination{}
99	}
100	return b, json.Unmarshal(rawMsg, b)
101}
102
103func unmarshalDeadLetterDestinationClassificationArray(rawMsg json.RawMessage) ([]DeadLetterDestinationClassification, error) {
104	if rawMsg == nil {
105		return nil, nil
106	}
107	var rawMessages []json.RawMessage
108	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
109		return nil, err
110	}
111	fArray := make([]DeadLetterDestinationClassification, len(rawMessages))
112	for index, rawMessage := range rawMessages {
113		f, err := unmarshalDeadLetterDestinationClassification(rawMessage)
114		if err != nil {
115			return nil, err
116		}
117		fArray[index] = f
118	}
119	return fArray, nil
120}
121
122func unmarshalDeliveryAttributeMappingClassification(rawMsg json.RawMessage) (DeliveryAttributeMappingClassification, error) {
123	if rawMsg == nil {
124		return nil, nil
125	}
126	var m map[string]interface{}
127	if err := json.Unmarshal(rawMsg, &m); err != nil {
128		return nil, err
129	}
130	var b DeliveryAttributeMappingClassification
131	switch m["type"] {
132	case string(DeliveryAttributeMappingTypeDynamic):
133		b = &DynamicDeliveryAttributeMapping{}
134	case string(DeliveryAttributeMappingTypeStatic):
135		b = &StaticDeliveryAttributeMapping{}
136	default:
137		b = &DeliveryAttributeMapping{}
138	}
139	return b, json.Unmarshal(rawMsg, b)
140}
141
142func unmarshalDeliveryAttributeMappingClassificationArray(rawMsg json.RawMessage) ([]DeliveryAttributeMappingClassification, error) {
143	if rawMsg == nil {
144		return nil, nil
145	}
146	var rawMessages []json.RawMessage
147	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
148		return nil, err
149	}
150	fArray := make([]DeliveryAttributeMappingClassification, len(rawMessages))
151	for index, rawMessage := range rawMessages {
152		f, err := unmarshalDeliveryAttributeMappingClassification(rawMessage)
153		if err != nil {
154			return nil, err
155		}
156		fArray[index] = f
157	}
158	return fArray, nil
159}
160
161func unmarshalEventSubscriptionDestinationClassification(rawMsg json.RawMessage) (EventSubscriptionDestinationClassification, error) {
162	if rawMsg == nil {
163		return nil, nil
164	}
165	var m map[string]interface{}
166	if err := json.Unmarshal(rawMsg, &m); err != nil {
167		return nil, err
168	}
169	var b EventSubscriptionDestinationClassification
170	switch m["endpointType"] {
171	case string(EndpointTypeAzureFunction):
172		b = &AzureFunctionEventSubscriptionDestination{}
173	case string(EndpointTypeEventHub):
174		b = &EventHubEventSubscriptionDestination{}
175	case string(EndpointTypeHybridConnection):
176		b = &HybridConnectionEventSubscriptionDestination{}
177	case string(EndpointTypeServiceBusQueue):
178		b = &ServiceBusQueueEventSubscriptionDestination{}
179	case string(EndpointTypeServiceBusTopic):
180		b = &ServiceBusTopicEventSubscriptionDestination{}
181	case string(EndpointTypeStorageQueue):
182		b = &StorageQueueEventSubscriptionDestination{}
183	case string(EndpointTypeWebHook):
184		b = &WebHookEventSubscriptionDestination{}
185	default:
186		b = &EventSubscriptionDestination{}
187	}
188	return b, json.Unmarshal(rawMsg, b)
189}
190
191func unmarshalEventSubscriptionDestinationClassificationArray(rawMsg json.RawMessage) ([]EventSubscriptionDestinationClassification, error) {
192	if rawMsg == nil {
193		return nil, nil
194	}
195	var rawMessages []json.RawMessage
196	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
197		return nil, err
198	}
199	fArray := make([]EventSubscriptionDestinationClassification, len(rawMessages))
200	for index, rawMessage := range rawMessages {
201		f, err := unmarshalEventSubscriptionDestinationClassification(rawMessage)
202		if err != nil {
203			return nil, err
204		}
205		fArray[index] = f
206	}
207	return fArray, nil
208}
209
210func unmarshalInputSchemaMappingClassification(rawMsg json.RawMessage) (InputSchemaMappingClassification, error) {
211	if rawMsg == nil {
212		return nil, nil
213	}
214	var m map[string]interface{}
215	if err := json.Unmarshal(rawMsg, &m); err != nil {
216		return nil, err
217	}
218	var b InputSchemaMappingClassification
219	switch m["inputSchemaMappingType"] {
220	case string(InputSchemaMappingTypeJSON):
221		b = &JSONInputSchemaMapping{}
222	default:
223		b = &InputSchemaMapping{}
224	}
225	return b, json.Unmarshal(rawMsg, b)
226}
227
228func unmarshalInputSchemaMappingClassificationArray(rawMsg json.RawMessage) ([]InputSchemaMappingClassification, error) {
229	if rawMsg == nil {
230		return nil, nil
231	}
232	var rawMessages []json.RawMessage
233	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
234		return nil, err
235	}
236	fArray := make([]InputSchemaMappingClassification, len(rawMessages))
237	for index, rawMessage := range rawMessages {
238		f, err := unmarshalInputSchemaMappingClassification(rawMessage)
239		if err != nil {
240			return nil, err
241		}
242		fArray[index] = f
243	}
244	return fArray, nil
245}
246