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  }