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 armcontainerregistry
9
10import "encoding/json"
11
12func unmarshalRunRequestClassification(rawMsg json.RawMessage) (RunRequestClassification, 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 RunRequestClassification
21	switch m["type"] {
22	case "DockerBuildRequest":
23		b = &DockerBuildRequest{}
24	case "EncodedTaskRunRequest":
25		b = &EncodedTaskRunRequest{}
26	case "FileTaskRunRequest":
27		b = &FileTaskRunRequest{}
28	case "TaskRunRequest":
29		b = &TaskRunRequest{}
30	default:
31		b = &RunRequest{}
32	}
33	return b, json.Unmarshal(rawMsg, b)
34}
35
36func unmarshalRunRequestClassificationArray(rawMsg json.RawMessage) ([]RunRequestClassification, error) {
37	if rawMsg == nil {
38		return nil, nil
39	}
40	var rawMessages []json.RawMessage
41	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
42		return nil, err
43	}
44	fArray := make([]RunRequestClassification, len(rawMessages))
45	for index, rawMessage := range rawMessages {
46		f, err := unmarshalRunRequestClassification(rawMessage)
47		if err != nil {
48			return nil, err
49		}
50		fArray[index] = f
51	}
52	return fArray, nil
53}
54
55func unmarshalTaskStepPropertiesClassification(rawMsg json.RawMessage) (TaskStepPropertiesClassification, error) {
56	if rawMsg == nil {
57		return nil, nil
58	}
59	var m map[string]interface{}
60	if err := json.Unmarshal(rawMsg, &m); err != nil {
61		return nil, err
62	}
63	var b TaskStepPropertiesClassification
64	switch m["type"] {
65	case string(StepTypeDocker):
66		b = &DockerBuildStep{}
67	case string(StepTypeEncodedTask):
68		b = &EncodedTaskStep{}
69	case string(StepTypeFileTask):
70		b = &FileTaskStep{}
71	default:
72		b = &TaskStepProperties{}
73	}
74	return b, json.Unmarshal(rawMsg, b)
75}
76
77func unmarshalTaskStepPropertiesClassificationArray(rawMsg json.RawMessage) ([]TaskStepPropertiesClassification, error) {
78	if rawMsg == nil {
79		return nil, nil
80	}
81	var rawMessages []json.RawMessage
82	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
83		return nil, err
84	}
85	fArray := make([]TaskStepPropertiesClassification, len(rawMessages))
86	for index, rawMessage := range rawMessages {
87		f, err := unmarshalTaskStepPropertiesClassification(rawMessage)
88		if err != nil {
89			return nil, err
90		}
91		fArray[index] = f
92	}
93	return fArray, nil
94}
95
96func unmarshalTaskStepUpdateParametersClassification(rawMsg json.RawMessage) (TaskStepUpdateParametersClassification, error) {
97	if rawMsg == nil {
98		return nil, nil
99	}
100	var m map[string]interface{}
101	if err := json.Unmarshal(rawMsg, &m); err != nil {
102		return nil, err
103	}
104	var b TaskStepUpdateParametersClassification
105	switch m["type"] {
106	case string(StepTypeDocker):
107		b = &DockerBuildStepUpdateParameters{}
108	case string(StepTypeEncodedTask):
109		b = &EncodedTaskStepUpdateParameters{}
110	case string(StepTypeFileTask):
111		b = &FileTaskStepUpdateParameters{}
112	default:
113		b = &TaskStepUpdateParameters{}
114	}
115	return b, json.Unmarshal(rawMsg, b)
116}
117
118func unmarshalTaskStepUpdateParametersClassificationArray(rawMsg json.RawMessage) ([]TaskStepUpdateParametersClassification, error) {
119	if rawMsg == nil {
120		return nil, nil
121	}
122	var rawMessages []json.RawMessage
123	if err := json.Unmarshal(rawMsg, &rawMessages); err != nil {
124		return nil, err
125	}
126	fArray := make([]TaskStepUpdateParametersClassification, len(rawMessages))
127	for index, rawMessage := range rawMessages {
128		f, err := unmarshalTaskStepUpdateParametersClassification(rawMessage)
129		if err != nil {
130			return nil, err
131		}
132		fArray[index] = f
133	}
134	return fArray, nil
135}
136