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 armnetwork 9 10import "encoding/json" 11 12func unmarshalFirewallPolicyRuleClassification(rawMsg json.RawMessage) (FirewallPolicyRuleClassification, 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 FirewallPolicyRuleClassification 21 switch m["ruleType"] { 22 case string(FirewallPolicyRuleTypeApplicationRule): 23 b = &ApplicationRule{} 24 case string(FirewallPolicyRuleTypeNatRule): 25 b = &NatRule{} 26 case string(FirewallPolicyRuleTypeNetworkRule): 27 b = &NetworkRule{} 28 default: 29 b = &FirewallPolicyRule{} 30 } 31 return b, json.Unmarshal(rawMsg, b) 32} 33 34func unmarshalFirewallPolicyRuleClassificationArray(rawMsg json.RawMessage) ([]FirewallPolicyRuleClassification, error) { 35 if rawMsg == nil { 36 return nil, nil 37 } 38 var rawMessages []json.RawMessage 39 if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { 40 return nil, err 41 } 42 fArray := make([]FirewallPolicyRuleClassification, len(rawMessages)) 43 for index, rawMessage := range rawMessages { 44 f, err := unmarshalFirewallPolicyRuleClassification(rawMessage) 45 if err != nil { 46 return nil, err 47 } 48 fArray[index] = f 49 } 50 return fArray, nil 51} 52 53func unmarshalFirewallPolicyRuleCollectionClassification(rawMsg json.RawMessage) (FirewallPolicyRuleCollectionClassification, error) { 54 if rawMsg == nil { 55 return nil, nil 56 } 57 var m map[string]interface{} 58 if err := json.Unmarshal(rawMsg, &m); err != nil { 59 return nil, err 60 } 61 var b FirewallPolicyRuleCollectionClassification 62 switch m["ruleCollectionType"] { 63 case string(FirewallPolicyRuleCollectionTypeFirewallPolicyFilterRuleCollection): 64 b = &FirewallPolicyFilterRuleCollection{} 65 case string(FirewallPolicyRuleCollectionTypeFirewallPolicyNatRuleCollection): 66 b = &FirewallPolicyNatRuleCollection{} 67 default: 68 b = &FirewallPolicyRuleCollection{} 69 } 70 return b, json.Unmarshal(rawMsg, b) 71} 72 73func unmarshalFirewallPolicyRuleCollectionClassificationArray(rawMsg json.RawMessage) ([]FirewallPolicyRuleCollectionClassification, error) { 74 if rawMsg == nil { 75 return nil, nil 76 } 77 var rawMessages []json.RawMessage 78 if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { 79 return nil, err 80 } 81 fArray := make([]FirewallPolicyRuleCollectionClassification, len(rawMessages)) 82 for index, rawMessage := range rawMessages { 83 f, err := unmarshalFirewallPolicyRuleCollectionClassification(rawMessage) 84 if err != nil { 85 return nil, err 86 } 87 fArray[index] = f 88 } 89 return fArray, nil 90} 91