bunnyshell.com/sdk@v0.16.0/model_from_template_variables_value.go (about)

     1  /*
     2  API Bunnyshell Environments
     3  
     4  Interact with Bunnyshell Platform
     5  
     6  API version: 1.1.0
     7  Contact: osi+support@bunnyshell.com
     8  */
     9  
    10  // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
    11  
    12  package sdk
    13  
    14  import (
    15  	"encoding/json"
    16  	"fmt"
    17  )
    18  
    19  // FromTemplateVariablesValue - struct for FromTemplateVariablesValue
    20  type FromTemplateVariablesValue struct {
    21  	Bool    *bool
    22  	Float32 *float32
    23  	Int32   *int32
    24  	String  *string
    25  }
    26  
    27  // boolAsFromTemplateVariablesValue is a convenience function that returns bool wrapped in FromTemplateVariablesValue
    28  func BoolAsFromTemplateVariablesValue(v *bool) FromTemplateVariablesValue {
    29  	return FromTemplateVariablesValue{
    30  		Bool: v,
    31  	}
    32  }
    33  
    34  // float32AsFromTemplateVariablesValue is a convenience function that returns float32 wrapped in FromTemplateVariablesValue
    35  func Float32AsFromTemplateVariablesValue(v *float32) FromTemplateVariablesValue {
    36  	return FromTemplateVariablesValue{
    37  		Float32: v,
    38  	}
    39  }
    40  
    41  // int32AsFromTemplateVariablesValue is a convenience function that returns int32 wrapped in FromTemplateVariablesValue
    42  func Int32AsFromTemplateVariablesValue(v *int32) FromTemplateVariablesValue {
    43  	return FromTemplateVariablesValue{
    44  		Int32: v,
    45  	}
    46  }
    47  
    48  // stringAsFromTemplateVariablesValue is a convenience function that returns string wrapped in FromTemplateVariablesValue
    49  func StringAsFromTemplateVariablesValue(v *string) FromTemplateVariablesValue {
    50  	return FromTemplateVariablesValue{
    51  		String: v,
    52  	}
    53  }
    54  
    55  // Unmarshal JSON data into one of the pointers in the struct
    56  func (dst *FromTemplateVariablesValue) UnmarshalJSON(data []byte) error {
    57  	var err error
    58  	match := 0
    59  	// try to unmarshal data into Bool
    60  	err = json.Unmarshal(data, &dst.Bool)
    61  	if err == nil {
    62  		jsonBool, _ := json.Marshal(dst.Bool)
    63  		if string(jsonBool) == "{}" { // empty struct
    64  			dst.Bool = nil
    65  		} else {
    66  			match++
    67  		}
    68  	} else {
    69  		dst.Bool = nil
    70  	}
    71  
    72  	// try to unmarshal data into Float32
    73  	err = json.Unmarshal(data, &dst.Float32)
    74  	if err == nil {
    75  		jsonFloat32, _ := json.Marshal(dst.Float32)
    76  		if string(jsonFloat32) == "{}" { // empty struct
    77  			dst.Float32 = nil
    78  		} else {
    79  			match++
    80  		}
    81  	} else {
    82  		dst.Float32 = nil
    83  	}
    84  
    85  	// try to unmarshal data into Int32
    86  	err = json.Unmarshal(data, &dst.Int32)
    87  	if err == nil {
    88  		jsonInt32, _ := json.Marshal(dst.Int32)
    89  		if string(jsonInt32) == "{}" { // empty struct
    90  			dst.Int32 = nil
    91  		} else {
    92  			match++
    93  		}
    94  	} else {
    95  		dst.Int32 = nil
    96  	}
    97  
    98  	// try to unmarshal data into String
    99  	err = json.Unmarshal(data, &dst.String)
   100  	if err == nil {
   101  		jsonString, _ := json.Marshal(dst.String)
   102  		if string(jsonString) == "{}" { // empty struct
   103  			dst.String = nil
   104  		} else {
   105  			match++
   106  		}
   107  	} else {
   108  		dst.String = nil
   109  	}
   110  
   111  	if match > 1 { // more than 1 match
   112  		// reset to nil
   113  		dst.Bool = nil
   114  		dst.Float32 = nil
   115  		dst.Int32 = nil
   116  		dst.String = nil
   117  
   118  		return fmt.Errorf("data matches more than one schema in oneOf(FromTemplateVariablesValue)")
   119  	} else if match == 1 {
   120  		return nil // exactly one match
   121  	} else { // no match
   122  		return fmt.Errorf("data failed to match schemas in oneOf(FromTemplateVariablesValue)")
   123  	}
   124  }
   125  
   126  // Marshal data from the first non-nil pointers in the struct to JSON
   127  func (src FromTemplateVariablesValue) MarshalJSON() ([]byte, error) {
   128  	if src.Bool != nil {
   129  		return json.Marshal(&src.Bool)
   130  	}
   131  
   132  	if src.Float32 != nil {
   133  		return json.Marshal(&src.Float32)
   134  	}
   135  
   136  	if src.Int32 != nil {
   137  		return json.Marshal(&src.Int32)
   138  	}
   139  
   140  	if src.String != nil {
   141  		return json.Marshal(&src.String)
   142  	}
   143  
   144  	return nil, nil // no data in oneOf schemas
   145  }
   146  
   147  // Get the actual instance
   148  func (obj *FromTemplateVariablesValue) GetActualInstance() interface{} {
   149  	if obj == nil {
   150  		return nil
   151  	}
   152  	if obj.Bool != nil {
   153  		return obj.Bool
   154  	}
   155  
   156  	if obj.Float32 != nil {
   157  		return obj.Float32
   158  	}
   159  
   160  	if obj.Int32 != nil {
   161  		return obj.Int32
   162  	}
   163  
   164  	if obj.String != nil {
   165  		return obj.String
   166  	}
   167  
   168  	// all schemas are nil
   169  	return nil
   170  }
   171  
   172  type NullableFromTemplateVariablesValue struct {
   173  	value *FromTemplateVariablesValue
   174  	isSet bool
   175  }
   176  
   177  func (v NullableFromTemplateVariablesValue) Get() *FromTemplateVariablesValue {
   178  	return v.value
   179  }
   180  
   181  func (v *NullableFromTemplateVariablesValue) Set(val *FromTemplateVariablesValue) {
   182  	v.value = val
   183  	v.isSet = true
   184  }
   185  
   186  func (v NullableFromTemplateVariablesValue) IsSet() bool {
   187  	return v.isSet
   188  }
   189  
   190  func (v *NullableFromTemplateVariablesValue) Unset() {
   191  	v.value = nil
   192  	v.isSet = false
   193  }
   194  
   195  func NewNullableFromTemplateVariablesValue(val *FromTemplateVariablesValue) *NullableFromTemplateVariablesValue {
   196  	return &NullableFromTemplateVariablesValue{value: val, isSet: true}
   197  }
   198  
   199  func (v NullableFromTemplateVariablesValue) MarshalJSON() ([]byte, error) {
   200  	return json.Marshal(v.value)
   201  }
   202  
   203  func (v *NullableFromTemplateVariablesValue) UnmarshalJSON(src []byte) error {
   204  	v.isSet = true
   205  	return json.Unmarshal(src, &v.value)
   206  }