-
Notifications
You must be signed in to change notification settings - Fork 38
/
model_datasetlocation.go
157 lines (134 loc) · 4.42 KB
/
model_datasetlocation.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package datasets
import (
"encoding/json"
"fmt"
"strings"
)
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See NOTICE.txt in the project root for license information.
type DatasetLocation interface {
}
// RawDatasetLocationImpl is returned when the Discriminated Value
// doesn't match any of the defined types
// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround)
// and is used only for Deserialization (e.g. this cannot be used as a Request Payload).
type RawDatasetLocationImpl struct {
Type string
Values map[string]interface{}
}
func unmarshalDatasetLocationImplementation(input []byte) (DatasetLocation, error) {
if input == nil {
return nil, nil
}
var temp map[string]interface{}
if err := json.Unmarshal(input, &temp); err != nil {
return nil, fmt.Errorf("unmarshaling DatasetLocation into map[string]interface: %+v", err)
}
value, ok := temp["type"].(string)
if !ok {
return nil, nil
}
if strings.EqualFold(value, "AmazonS3CompatibleLocation") {
var out AmazonS3CompatibleLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AmazonS3CompatibleLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AmazonS3Location") {
var out AmazonS3Location
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AmazonS3Location: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureBlobFSLocation") {
var out AzureBlobFSLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureBlobFSLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureBlobStorageLocation") {
var out AzureBlobStorageLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureBlobStorageLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureDataLakeStoreLocation") {
var out AzureDataLakeStoreLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureDataLakeStoreLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureFileStorageLocation") {
var out AzureFileStorageLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureFileStorageLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "FileServerLocation") {
var out FileServerLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into FileServerLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "FtpServerLocation") {
var out FtpServerLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into FtpServerLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "GoogleCloudStorageLocation") {
var out GoogleCloudStorageLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into GoogleCloudStorageLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "HttpServerLocation") {
var out HTTPServerLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into HTTPServerLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "HdfsLocation") {
var out HdfsLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into HdfsLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "LakeHouseLocation") {
var out LakeHouseLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into LakeHouseLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "OracleCloudStorageLocation") {
var out OracleCloudStorageLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into OracleCloudStorageLocation: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "SftpLocation") {
var out SftpLocation
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into SftpLocation: %+v", err)
}
return out, nil
}
out := RawDatasetLocationImpl{
Type: value,
Values: temp,
}
return out, nil
}