github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/polymorphic_helpers.go (about) 1 //go:build go1.18 2 // +build go1.18 3 4 // Copyright (c) Microsoft Corporation. All rights reserved. 5 // Licensed under the MIT License. See License.txt in the project root for license information. 6 // Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. 7 // Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9 package armnetwork 10 11 import "encoding/json" 12 13 func unmarshalActiveBaseSecurityAdminRuleClassification(rawMsg json.RawMessage) (ActiveBaseSecurityAdminRuleClassification, error) { 14 if rawMsg == nil || string(rawMsg) == "null" { 15 return nil, nil 16 } 17 var m map[string]any 18 if err := json.Unmarshal(rawMsg, &m); err != nil { 19 return nil, err 20 } 21 var b ActiveBaseSecurityAdminRuleClassification 22 switch m["kind"] { 23 case string(EffectiveAdminRuleKindCustom): 24 b = &ActiveSecurityAdminRule{} 25 case string(EffectiveAdminRuleKindDefault): 26 b = &ActiveDefaultSecurityAdminRule{} 27 default: 28 b = &ActiveBaseSecurityAdminRule{} 29 } 30 if err := json.Unmarshal(rawMsg, b); err != nil { 31 return nil, err 32 } 33 return b, nil 34 } 35 36 func unmarshalActiveBaseSecurityAdminRuleClassificationArray(rawMsg json.RawMessage) ([]ActiveBaseSecurityAdminRuleClassification, error) { 37 if rawMsg == nil || string(rawMsg) == "null" { 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([]ActiveBaseSecurityAdminRuleClassification, len(rawMessages)) 45 for index, rawMessage := range rawMessages { 46 f, err := unmarshalActiveBaseSecurityAdminRuleClassification(rawMessage) 47 if err != nil { 48 return nil, err 49 } 50 fArray[index] = f 51 } 52 return fArray, nil 53 } 54 55 func unmarshalBaseAdminRuleClassification(rawMsg json.RawMessage) (BaseAdminRuleClassification, error) { 56 if rawMsg == nil || string(rawMsg) == "null" { 57 return nil, nil 58 } 59 var m map[string]any 60 if err := json.Unmarshal(rawMsg, &m); err != nil { 61 return nil, err 62 } 63 var b BaseAdminRuleClassification 64 switch m["kind"] { 65 case string(AdminRuleKindCustom): 66 b = &AdminRule{} 67 case string(AdminRuleKindDefault): 68 b = &DefaultAdminRule{} 69 default: 70 b = &BaseAdminRule{} 71 } 72 if err := json.Unmarshal(rawMsg, b); err != nil { 73 return nil, err 74 } 75 return b, nil 76 } 77 78 func unmarshalBaseAdminRuleClassificationArray(rawMsg json.RawMessage) ([]BaseAdminRuleClassification, error) { 79 if rawMsg == nil || string(rawMsg) == "null" { 80 return nil, nil 81 } 82 var rawMessages []json.RawMessage 83 if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { 84 return nil, err 85 } 86 fArray := make([]BaseAdminRuleClassification, len(rawMessages)) 87 for index, rawMessage := range rawMessages { 88 f, err := unmarshalBaseAdminRuleClassification(rawMessage) 89 if err != nil { 90 return nil, err 91 } 92 fArray[index] = f 93 } 94 return fArray, nil 95 } 96 97 func unmarshalEffectiveBaseSecurityAdminRuleClassification(rawMsg json.RawMessage) (EffectiveBaseSecurityAdminRuleClassification, error) { 98 if rawMsg == nil || string(rawMsg) == "null" { 99 return nil, nil 100 } 101 var m map[string]any 102 if err := json.Unmarshal(rawMsg, &m); err != nil { 103 return nil, err 104 } 105 var b EffectiveBaseSecurityAdminRuleClassification 106 switch m["kind"] { 107 case string(EffectiveAdminRuleKindCustom): 108 b = &EffectiveSecurityAdminRule{} 109 case string(EffectiveAdminRuleKindDefault): 110 b = &EffectiveDefaultSecurityAdminRule{} 111 default: 112 b = &EffectiveBaseSecurityAdminRule{} 113 } 114 if err := json.Unmarshal(rawMsg, b); err != nil { 115 return nil, err 116 } 117 return b, nil 118 } 119 120 func unmarshalEffectiveBaseSecurityAdminRuleClassificationArray(rawMsg json.RawMessage) ([]EffectiveBaseSecurityAdminRuleClassification, error) { 121 if rawMsg == nil || string(rawMsg) == "null" { 122 return nil, nil 123 } 124 var rawMessages []json.RawMessage 125 if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { 126 return nil, err 127 } 128 fArray := make([]EffectiveBaseSecurityAdminRuleClassification, len(rawMessages)) 129 for index, rawMessage := range rawMessages { 130 f, err := unmarshalEffectiveBaseSecurityAdminRuleClassification(rawMessage) 131 if err != nil { 132 return nil, err 133 } 134 fArray[index] = f 135 } 136 return fArray, nil 137 } 138 139 func unmarshalFirewallPolicyRuleClassification(rawMsg json.RawMessage) (FirewallPolicyRuleClassification, error) { 140 if rawMsg == nil || string(rawMsg) == "null" { 141 return nil, nil 142 } 143 var m map[string]any 144 if err := json.Unmarshal(rawMsg, &m); err != nil { 145 return nil, err 146 } 147 var b FirewallPolicyRuleClassification 148 switch m["ruleType"] { 149 case string(FirewallPolicyRuleTypeApplicationRule): 150 b = &ApplicationRule{} 151 case string(FirewallPolicyRuleTypeNatRule): 152 b = &NatRule{} 153 case string(FirewallPolicyRuleTypeNetworkRule): 154 b = &Rule{} 155 default: 156 b = &FirewallPolicyRule{} 157 } 158 if err := json.Unmarshal(rawMsg, b); err != nil { 159 return nil, err 160 } 161 return b, nil 162 } 163 164 func unmarshalFirewallPolicyRuleClassificationArray(rawMsg json.RawMessage) ([]FirewallPolicyRuleClassification, error) { 165 if rawMsg == nil || string(rawMsg) == "null" { 166 return nil, nil 167 } 168 var rawMessages []json.RawMessage 169 if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { 170 return nil, err 171 } 172 fArray := make([]FirewallPolicyRuleClassification, len(rawMessages)) 173 for index, rawMessage := range rawMessages { 174 f, err := unmarshalFirewallPolicyRuleClassification(rawMessage) 175 if err != nil { 176 return nil, err 177 } 178 fArray[index] = f 179 } 180 return fArray, nil 181 } 182 183 func unmarshalFirewallPolicyRuleCollectionClassification(rawMsg json.RawMessage) (FirewallPolicyRuleCollectionClassification, error) { 184 if rawMsg == nil || string(rawMsg) == "null" { 185 return nil, nil 186 } 187 var m map[string]any 188 if err := json.Unmarshal(rawMsg, &m); err != nil { 189 return nil, err 190 } 191 var b FirewallPolicyRuleCollectionClassification 192 switch m["ruleCollectionType"] { 193 case string(FirewallPolicyRuleCollectionTypeFirewallPolicyFilterRuleCollection): 194 b = &FirewallPolicyFilterRuleCollection{} 195 case string(FirewallPolicyRuleCollectionTypeFirewallPolicyNatRuleCollection): 196 b = &FirewallPolicyNatRuleCollection{} 197 default: 198 b = &FirewallPolicyRuleCollection{} 199 } 200 if err := json.Unmarshal(rawMsg, b); err != nil { 201 return nil, err 202 } 203 return b, nil 204 } 205 206 func unmarshalFirewallPolicyRuleCollectionClassificationArray(rawMsg json.RawMessage) ([]FirewallPolicyRuleCollectionClassification, error) { 207 if rawMsg == nil || string(rawMsg) == "null" { 208 return nil, nil 209 } 210 var rawMessages []json.RawMessage 211 if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { 212 return nil, err 213 } 214 fArray := make([]FirewallPolicyRuleCollectionClassification, len(rawMessages)) 215 for index, rawMessage := range rawMessages { 216 f, err := unmarshalFirewallPolicyRuleCollectionClassification(rawMessage) 217 if err != nil { 218 return nil, err 219 } 220 fArray[index] = f 221 } 222 return fArray, nil 223 }