-
Notifications
You must be signed in to change notification settings - Fork 40
/
model_protecteditem.go
149 lines (127 loc) · 4.56 KB
/
model_protecteditem.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
package protecteditems
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 ProtectedItem interface {
}
// RawProtectedItemImpl 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 RawProtectedItemImpl struct {
Type string
Values map[string]interface{}
}
func unmarshalProtectedItemImplementation(input []byte) (ProtectedItem, 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 ProtectedItem into map[string]interface: %+v", err)
}
value, ok := temp["protectedItemType"].(string)
if !ok {
return nil, nil
}
if strings.EqualFold(value, "AzureFileShareProtectedItem") {
var out AzureFileshareProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureFileshareProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "Microsoft.ClassicCompute/virtualMachines") {
var out AzureIaaSClassicComputeVMProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureIaaSClassicComputeVMProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "Microsoft.Compute/virtualMachines") {
var out AzureIaaSComputeVMProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureIaaSComputeVMProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureIaaSVMProtectedItem") {
var out AzureIaaSVMProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureIaaSVMProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "Microsoft.Sql/servers/databases") {
var out AzureSqlProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureSqlProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureVmWorkloadProtectedItem") {
var out AzureVMWorkloadProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureVMWorkloadProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureVmWorkloadSAPAseDatabase") {
var out AzureVMWorkloadSAPAseDatabaseProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureVMWorkloadSAPAseDatabaseProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureVmWorkloadSAPHanaDBInstance") {
var out AzureVMWorkloadSAPHanaDBInstanceProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureVMWorkloadSAPHanaDBInstanceProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureVmWorkloadSAPHanaDatabase") {
var out AzureVMWorkloadSAPHanaDatabaseProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureVMWorkloadSAPHanaDatabaseProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AzureVmWorkloadSQLDatabase") {
var out AzureVMWorkloadSQLDatabaseProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into AzureVMWorkloadSQLDatabaseProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "DPMProtectedItem") {
var out DPMProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into DPMProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "GenericProtectedItem") {
var out GenericProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into GenericProtectedItem: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "MabFileFolderProtectedItem") {
var out MabFileFolderProtectedItem
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into MabFileFolderProtectedItem: %+v", err)
}
return out, nil
}
out := RawProtectedItemImpl{
Type: value,
Values: temp,
}
return out, nil
}