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 }