/* STACKIT VPN API The STACKIT VPN API provides endpoints to provision and manage VPN instances in your STACKIT project. API version: 1alpha1 */ // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. package vpnalpha import ( "encoding/json" "fmt" ) // checks if the TunnelConfigurationPhase2 type satisfies the MappedNullable interface at compile time var _ MappedNullable = &TunnelConfigurationPhase2{} /* types and functions for dhGroups */ // isArray type TunnelConfigurationPhase2GetDhGroupsAttributeType = *[]string type TunnelConfigurationPhase2GetDhGroupsArgType = []string type TunnelConfigurationPhase2GetDhGroupsRetType = []string func getTunnelConfigurationPhase2GetDhGroupsAttributeTypeOk(arg TunnelConfigurationPhase2GetDhGroupsAttributeType) (ret TunnelConfigurationPhase2GetDhGroupsRetType, ok bool) { if arg == nil { return ret, false } return *arg, true } func setTunnelConfigurationPhase2GetDhGroupsAttributeType(arg *TunnelConfigurationPhase2GetDhGroupsAttributeType, val TunnelConfigurationPhase2GetDhGroupsRetType) { *arg = &val } /* types and functions for encryptionAlgorithms */ // isArray type TunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType = *[]string type TunnelConfigurationPhase2GetEncryptionAlgorithmsArgType = []string type TunnelConfigurationPhase2GetEncryptionAlgorithmsRetType = []string func getTunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeTypeOk(arg TunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType) (ret TunnelConfigurationPhase2GetEncryptionAlgorithmsRetType, ok bool) { if arg == nil { return ret, false } return *arg, true } func setTunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType(arg *TunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType, val TunnelConfigurationPhase2GetEncryptionAlgorithmsRetType) { *arg = &val } /* types and functions for integrityAlgorithms */ // isArray type TunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType = *[]string type TunnelConfigurationPhase2GetIntegrityAlgorithmsArgType = []string type TunnelConfigurationPhase2GetIntegrityAlgorithmsRetType = []string func getTunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeTypeOk(arg TunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType) (ret TunnelConfigurationPhase2GetIntegrityAlgorithmsRetType, ok bool) { if arg == nil { return ret, false } return *arg, true } func setTunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType(arg *TunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType, val TunnelConfigurationPhase2GetIntegrityAlgorithmsRetType) { *arg = &val } /* types and functions for dpdAction */ // isEnum // TunnelConfigurationPhase2DpdAction Action to perform for this CHILD_SA on DPD timeout. \"clear\": Closes the CHILD_SA and does not take further action. \"trap\": installs a trap policy which will catch matching traffic and tries to re-negotiate the tunnel on-demand). \"restart\": immediately tries to re-negotiate the CILD_SA under a fresh IKE_SA. // value type for enums type TunnelConfigurationPhase2DpdAction string // List of DpdAction const ( TUNNELCONFIGURATIONPHASE2DPD_ACTION_CLEAR TunnelConfigurationPhase2DpdAction = "clear" TUNNELCONFIGURATIONPHASE2DPD_ACTION_TRAP TunnelConfigurationPhase2DpdAction = "trap" TUNNELCONFIGURATIONPHASE2DPD_ACTION_RESTART TunnelConfigurationPhase2DpdAction = "restart" ) // All allowed values of TunnelConfigurationPhase2 enum var AllowedTunnelConfigurationPhase2DpdActionEnumValues = []TunnelConfigurationPhase2DpdAction{ "clear", "trap", "restart", } func (v *TunnelConfigurationPhase2DpdAction) UnmarshalJSON(src []byte) error { // use a type alias to prevent infinite recursion during unmarshal, // see https://biscuit.ninja/posts/go-avoid-an-infitine-loop-with-custom-json-unmarshallers type TmpJson TunnelConfigurationPhase2DpdAction var value TmpJson err := json.Unmarshal(src, &value) if err != nil { return err } // Allow unmarshalling zero value for testing purposes var zeroValue TmpJson if value == zeroValue { return nil } enumTypeValue := TunnelConfigurationPhase2DpdAction(value) for _, existing := range AllowedTunnelConfigurationPhase2DpdActionEnumValues { if existing == enumTypeValue { *v = enumTypeValue return nil } } return fmt.Errorf("%+v is not a valid TunnelConfigurationPhase2", value) } // NewTunnelConfigurationPhase2DpdActionFromValue returns a pointer to a valid TunnelConfigurationPhase2DpdAction // for the value passed as argument, or an error if the value passed is not allowed by the enum func NewTunnelConfigurationPhase2DpdActionFromValue(v TunnelConfigurationPhase2DpdAction) (*TunnelConfigurationPhase2DpdAction, error) { ev := TunnelConfigurationPhase2DpdAction(v) if ev.IsValid() { return &ev, nil } else { return nil, fmt.Errorf("invalid value '%v' for TunnelConfigurationPhase2DpdAction: valid values are %v", v, AllowedTunnelConfigurationPhase2DpdActionEnumValues) } } // IsValid return true if the value is valid for the enum, false otherwise func (v TunnelConfigurationPhase2DpdAction) IsValid() bool { for _, existing := range AllowedTunnelConfigurationPhase2DpdActionEnumValues { if existing == v { return true } } return false } // Ptr returns reference to DpdActionDpdAction value func (v TunnelConfigurationPhase2DpdAction) Ptr() *TunnelConfigurationPhase2DpdAction { return &v } type NullableTunnelConfigurationPhase2DpdAction struct { value *TunnelConfigurationPhase2DpdAction isSet bool } func (v NullableTunnelConfigurationPhase2DpdAction) Get() *TunnelConfigurationPhase2DpdAction { return v.value } func (v *NullableTunnelConfigurationPhase2DpdAction) Set(val *TunnelConfigurationPhase2DpdAction) { v.value = val v.isSet = true } func (v NullableTunnelConfigurationPhase2DpdAction) IsSet() bool { return v.isSet } func (v *NullableTunnelConfigurationPhase2DpdAction) Unset() { v.value = nil v.isSet = false } func NewNullableTunnelConfigurationPhase2DpdAction(val *TunnelConfigurationPhase2DpdAction) *NullableTunnelConfigurationPhase2DpdAction { return &NullableTunnelConfigurationPhase2DpdAction{value: val, isSet: true} } func (v NullableTunnelConfigurationPhase2DpdAction) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } func (v *NullableTunnelConfigurationPhase2DpdAction) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) } type TunnelConfigurationPhase2GetDpdActionAttributeType = *TunnelConfigurationPhase2DpdAction type TunnelConfigurationPhase2GetDpdActionArgType = TunnelConfigurationPhase2DpdAction type TunnelConfigurationPhase2GetDpdActionRetType = TunnelConfigurationPhase2DpdAction func getTunnelConfigurationPhase2GetDpdActionAttributeTypeOk(arg TunnelConfigurationPhase2GetDpdActionAttributeType) (ret TunnelConfigurationPhase2GetDpdActionRetType, ok bool) { if arg == nil { return ret, false } return *arg, true } func setTunnelConfigurationPhase2GetDpdActionAttributeType(arg *TunnelConfigurationPhase2GetDpdActionAttributeType, val TunnelConfigurationPhase2GetDpdActionRetType) { *arg = &val } /* types and functions for rekeyTime */ // isInteger type TunnelConfigurationPhase2GetRekeyTimeAttributeType = *int64 type TunnelConfigurationPhase2GetRekeyTimeArgType = int64 type TunnelConfigurationPhase2GetRekeyTimeRetType = int64 func getTunnelConfigurationPhase2GetRekeyTimeAttributeTypeOk(arg TunnelConfigurationPhase2GetRekeyTimeAttributeType) (ret TunnelConfigurationPhase2GetRekeyTimeRetType, ok bool) { if arg == nil { return ret, false } return *arg, true } func setTunnelConfigurationPhase2GetRekeyTimeAttributeType(arg *TunnelConfigurationPhase2GetRekeyTimeAttributeType, val TunnelConfigurationPhase2GetRekeyTimeRetType) { *arg = &val } /* types and functions for startAction */ // isEnum // TunnelConfigurationPhase2StartAction Action to perform after loading the connection configuration. \"none\": The connection will be loaded but needs to be manually initiated. \"trap\": installs a trap policy which triggers the tunnel as soon as matching traffic has been detected. \"start\": initiates the connection actively. \"start|stop\": Immediately initiate a connection for which trap policies have been installed. // value type for enums type TunnelConfigurationPhase2StartAction string // List of StartAction const ( TUNNELCONFIGURATIONPHASE2START_ACTION_NONE TunnelConfigurationPhase2StartAction = "none" TUNNELCONFIGURATIONPHASE2START_ACTION_TRAP TunnelConfigurationPhase2StartAction = "trap" TUNNELCONFIGURATIONPHASE2START_ACTION_START TunnelConfigurationPhase2StartAction = "start" TUNNELCONFIGURATIONPHASE2START_ACTION_TRAP_START TunnelConfigurationPhase2StartAction = "trap|start" ) // All allowed values of TunnelConfigurationPhase2 enum var AllowedTunnelConfigurationPhase2StartActionEnumValues = []TunnelConfigurationPhase2StartAction{ "none", "trap", "start", "trap|start", } func (v *TunnelConfigurationPhase2StartAction) UnmarshalJSON(src []byte) error { // use a type alias to prevent infinite recursion during unmarshal, // see https://biscuit.ninja/posts/go-avoid-an-infitine-loop-with-custom-json-unmarshallers type TmpJson TunnelConfigurationPhase2StartAction var value TmpJson err := json.Unmarshal(src, &value) if err != nil { return err } // Allow unmarshalling zero value for testing purposes var zeroValue TmpJson if value == zeroValue { return nil } enumTypeValue := TunnelConfigurationPhase2StartAction(value) for _, existing := range AllowedTunnelConfigurationPhase2StartActionEnumValues { if existing == enumTypeValue { *v = enumTypeValue return nil } } return fmt.Errorf("%+v is not a valid TunnelConfigurationPhase2", value) } // NewTunnelConfigurationPhase2StartActionFromValue returns a pointer to a valid TunnelConfigurationPhase2StartAction // for the value passed as argument, or an error if the value passed is not allowed by the enum func NewTunnelConfigurationPhase2StartActionFromValue(v TunnelConfigurationPhase2StartAction) (*TunnelConfigurationPhase2StartAction, error) { ev := TunnelConfigurationPhase2StartAction(v) if ev.IsValid() { return &ev, nil } else { return nil, fmt.Errorf("invalid value '%v' for TunnelConfigurationPhase2StartAction: valid values are %v", v, AllowedTunnelConfigurationPhase2StartActionEnumValues) } } // IsValid return true if the value is valid for the enum, false otherwise func (v TunnelConfigurationPhase2StartAction) IsValid() bool { for _, existing := range AllowedTunnelConfigurationPhase2StartActionEnumValues { if existing == v { return true } } return false } // Ptr returns reference to StartActionStartAction value func (v TunnelConfigurationPhase2StartAction) Ptr() *TunnelConfigurationPhase2StartAction { return &v } type NullableTunnelConfigurationPhase2StartAction struct { value *TunnelConfigurationPhase2StartAction isSet bool } func (v NullableTunnelConfigurationPhase2StartAction) Get() *TunnelConfigurationPhase2StartAction { return v.value } func (v *NullableTunnelConfigurationPhase2StartAction) Set(val *TunnelConfigurationPhase2StartAction) { v.value = val v.isSet = true } func (v NullableTunnelConfigurationPhase2StartAction) IsSet() bool { return v.isSet } func (v *NullableTunnelConfigurationPhase2StartAction) Unset() { v.value = nil v.isSet = false } func NewNullableTunnelConfigurationPhase2StartAction(val *TunnelConfigurationPhase2StartAction) *NullableTunnelConfigurationPhase2StartAction { return &NullableTunnelConfigurationPhase2StartAction{value: val, isSet: true} } func (v NullableTunnelConfigurationPhase2StartAction) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } func (v *NullableTunnelConfigurationPhase2StartAction) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) } type TunnelConfigurationPhase2GetStartActionAttributeType = *TunnelConfigurationPhase2StartAction type TunnelConfigurationPhase2GetStartActionArgType = TunnelConfigurationPhase2StartAction type TunnelConfigurationPhase2GetStartActionRetType = TunnelConfigurationPhase2StartAction func getTunnelConfigurationPhase2GetStartActionAttributeTypeOk(arg TunnelConfigurationPhase2GetStartActionAttributeType) (ret TunnelConfigurationPhase2GetStartActionRetType, ok bool) { if arg == nil { return ret, false } return *arg, true } func setTunnelConfigurationPhase2GetStartActionAttributeType(arg *TunnelConfigurationPhase2GetStartActionAttributeType, val TunnelConfigurationPhase2GetStartActionRetType) { *arg = &val } // TunnelConfigurationPhase2 struct for TunnelConfigurationPhase2 type TunnelConfigurationPhase2 struct { // The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. DhGroups TunnelConfigurationPhase2GetDhGroupsAttributeType `json:"dhGroups,omitempty"` // REQUIRED EncryptionAlgorithms TunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType `json:"encryptionAlgorithms" required:"true"` // REQUIRED IntegrityAlgorithms TunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType `json:"integrityAlgorithms" required:"true"` // Action to perform for this CHILD_SA on DPD timeout. \"clear\": Closes the CHILD_SA and does not take further action. \"trap\": installs a trap policy which will catch matching traffic and tries to re-negotiate the tunnel on-demand). \"restart\": immediately tries to re-negotiate the CILD_SA under a fresh IKE_SA. DpdAction TunnelConfigurationPhase2GetDpdActionAttributeType `json:"dpdAction,omitempty"` // Time to schedule a Child SA re-keying (in seconds). // Can be cast to int32 without loss of precision. RekeyTime TunnelConfigurationPhase2GetRekeyTimeAttributeType `json:"rekeyTime,omitempty"` // Action to perform after loading the connection configuration. \"none\": The connection will be loaded but needs to be manually initiated. \"trap\": installs a trap policy which triggers the tunnel as soon as matching traffic has been detected. \"start\": initiates the connection actively. \"start|stop\": Immediately initiate a connection for which trap policies have been installed. StartAction TunnelConfigurationPhase2GetStartActionAttributeType `json:"startAction,omitempty"` } type _TunnelConfigurationPhase2 TunnelConfigurationPhase2 // NewTunnelConfigurationPhase2 instantiates a new TunnelConfigurationPhase2 object // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed func NewTunnelConfigurationPhase2(encryptionAlgorithms TunnelConfigurationPhase2GetEncryptionAlgorithmsArgType, integrityAlgorithms TunnelConfigurationPhase2GetIntegrityAlgorithmsArgType) *TunnelConfigurationPhase2 { this := TunnelConfigurationPhase2{} setTunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType(&this.EncryptionAlgorithms, encryptionAlgorithms) setTunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType(&this.IntegrityAlgorithms, integrityAlgorithms) return &this } // NewTunnelConfigurationPhase2WithDefaults instantiates a new TunnelConfigurationPhase2 object // This constructor will only assign default values to properties that have it defined, // but it doesn't guarantee that properties required by API are set func NewTunnelConfigurationPhase2WithDefaults() *TunnelConfigurationPhase2 { this := TunnelConfigurationPhase2{} var dpdAction TunnelConfigurationPhase2DpdAction = "restart" this.DpdAction = &dpdAction var rekeyTime int64 = 3600 this.RekeyTime = &rekeyTime var startAction TunnelConfigurationPhase2StartAction = "start" this.StartAction = &startAction return &this } // GetDhGroups returns the DhGroups field value if set, zero value otherwise. func (o *TunnelConfigurationPhase2) GetDhGroups() (res TunnelConfigurationPhase2GetDhGroupsRetType) { res, _ = o.GetDhGroupsOk() return } // GetDhGroupsOk returns a tuple with the DhGroups field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TunnelConfigurationPhase2) GetDhGroupsOk() (ret TunnelConfigurationPhase2GetDhGroupsRetType, ok bool) { return getTunnelConfigurationPhase2GetDhGroupsAttributeTypeOk(o.DhGroups) } // HasDhGroups returns a boolean if a field has been set. func (o *TunnelConfigurationPhase2) HasDhGroups() bool { _, ok := o.GetDhGroupsOk() return ok } // SetDhGroups gets a reference to the given []string and assigns it to the DhGroups field. func (o *TunnelConfigurationPhase2) SetDhGroups(v TunnelConfigurationPhase2GetDhGroupsRetType) { setTunnelConfigurationPhase2GetDhGroupsAttributeType(&o.DhGroups, v) } // GetEncryptionAlgorithms returns the EncryptionAlgorithms field value func (o *TunnelConfigurationPhase2) GetEncryptionAlgorithms() (ret TunnelConfigurationPhase2GetEncryptionAlgorithmsRetType) { ret, _ = o.GetEncryptionAlgorithmsOk() return ret } // GetEncryptionAlgorithmsOk returns a tuple with the EncryptionAlgorithms field value // and a boolean to check if the value has been set. func (o *TunnelConfigurationPhase2) GetEncryptionAlgorithmsOk() (ret TunnelConfigurationPhase2GetEncryptionAlgorithmsRetType, ok bool) { return getTunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeTypeOk(o.EncryptionAlgorithms) } // SetEncryptionAlgorithms sets field value func (o *TunnelConfigurationPhase2) SetEncryptionAlgorithms(v TunnelConfigurationPhase2GetEncryptionAlgorithmsRetType) { setTunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeType(&o.EncryptionAlgorithms, v) } // GetIntegrityAlgorithms returns the IntegrityAlgorithms field value func (o *TunnelConfigurationPhase2) GetIntegrityAlgorithms() (ret TunnelConfigurationPhase2GetIntegrityAlgorithmsRetType) { ret, _ = o.GetIntegrityAlgorithmsOk() return ret } // GetIntegrityAlgorithmsOk returns a tuple with the IntegrityAlgorithms field value // and a boolean to check if the value has been set. func (o *TunnelConfigurationPhase2) GetIntegrityAlgorithmsOk() (ret TunnelConfigurationPhase2GetIntegrityAlgorithmsRetType, ok bool) { return getTunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeTypeOk(o.IntegrityAlgorithms) } // SetIntegrityAlgorithms sets field value func (o *TunnelConfigurationPhase2) SetIntegrityAlgorithms(v TunnelConfigurationPhase2GetIntegrityAlgorithmsRetType) { setTunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeType(&o.IntegrityAlgorithms, v) } // GetDpdAction returns the DpdAction field value if set, zero value otherwise. func (o *TunnelConfigurationPhase2) GetDpdAction() (res TunnelConfigurationPhase2GetDpdActionRetType) { res, _ = o.GetDpdActionOk() return } // GetDpdActionOk returns a tuple with the DpdAction field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TunnelConfigurationPhase2) GetDpdActionOk() (ret TunnelConfigurationPhase2GetDpdActionRetType, ok bool) { return getTunnelConfigurationPhase2GetDpdActionAttributeTypeOk(o.DpdAction) } // HasDpdAction returns a boolean if a field has been set. func (o *TunnelConfigurationPhase2) HasDpdAction() bool { _, ok := o.GetDpdActionOk() return ok } // SetDpdAction gets a reference to the given string and assigns it to the DpdAction field. func (o *TunnelConfigurationPhase2) SetDpdAction(v TunnelConfigurationPhase2GetDpdActionRetType) { setTunnelConfigurationPhase2GetDpdActionAttributeType(&o.DpdAction, v) } // GetRekeyTime returns the RekeyTime field value if set, zero value otherwise. func (o *TunnelConfigurationPhase2) GetRekeyTime() (res TunnelConfigurationPhase2GetRekeyTimeRetType) { res, _ = o.GetRekeyTimeOk() return } // GetRekeyTimeOk returns a tuple with the RekeyTime field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TunnelConfigurationPhase2) GetRekeyTimeOk() (ret TunnelConfigurationPhase2GetRekeyTimeRetType, ok bool) { return getTunnelConfigurationPhase2GetRekeyTimeAttributeTypeOk(o.RekeyTime) } // HasRekeyTime returns a boolean if a field has been set. func (o *TunnelConfigurationPhase2) HasRekeyTime() bool { _, ok := o.GetRekeyTimeOk() return ok } // SetRekeyTime gets a reference to the given int64 and assigns it to the RekeyTime field. func (o *TunnelConfigurationPhase2) SetRekeyTime(v TunnelConfigurationPhase2GetRekeyTimeRetType) { setTunnelConfigurationPhase2GetRekeyTimeAttributeType(&o.RekeyTime, v) } // GetStartAction returns the StartAction field value if set, zero value otherwise. func (o *TunnelConfigurationPhase2) GetStartAction() (res TunnelConfigurationPhase2GetStartActionRetType) { res, _ = o.GetStartActionOk() return } // GetStartActionOk returns a tuple with the StartAction field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TunnelConfigurationPhase2) GetStartActionOk() (ret TunnelConfigurationPhase2GetStartActionRetType, ok bool) { return getTunnelConfigurationPhase2GetStartActionAttributeTypeOk(o.StartAction) } // HasStartAction returns a boolean if a field has been set. func (o *TunnelConfigurationPhase2) HasStartAction() bool { _, ok := o.GetStartActionOk() return ok } // SetStartAction gets a reference to the given string and assigns it to the StartAction field. func (o *TunnelConfigurationPhase2) SetStartAction(v TunnelConfigurationPhase2GetStartActionRetType) { setTunnelConfigurationPhase2GetStartActionAttributeType(&o.StartAction, v) } func (o TunnelConfigurationPhase2) ToMap() (map[string]interface{}, error) { toSerialize := map[string]interface{}{} if val, ok := getTunnelConfigurationPhase2GetDhGroupsAttributeTypeOk(o.DhGroups); ok { toSerialize["DhGroups"] = val } if val, ok := getTunnelConfigurationPhase2GetEncryptionAlgorithmsAttributeTypeOk(o.EncryptionAlgorithms); ok { toSerialize["EncryptionAlgorithms"] = val } if val, ok := getTunnelConfigurationPhase2GetIntegrityAlgorithmsAttributeTypeOk(o.IntegrityAlgorithms); ok { toSerialize["IntegrityAlgorithms"] = val } if val, ok := getTunnelConfigurationPhase2GetDpdActionAttributeTypeOk(o.DpdAction); ok { toSerialize["DpdAction"] = val } if val, ok := getTunnelConfigurationPhase2GetRekeyTimeAttributeTypeOk(o.RekeyTime); ok { toSerialize["RekeyTime"] = val } if val, ok := getTunnelConfigurationPhase2GetStartActionAttributeTypeOk(o.StartAction); ok { toSerialize["StartAction"] = val } return toSerialize, nil } type NullableTunnelConfigurationPhase2 struct { value *TunnelConfigurationPhase2 isSet bool } func (v NullableTunnelConfigurationPhase2) Get() *TunnelConfigurationPhase2 { return v.value } func (v *NullableTunnelConfigurationPhase2) Set(val *TunnelConfigurationPhase2) { v.value = val v.isSet = true } func (v NullableTunnelConfigurationPhase2) IsSet() bool { return v.isSet } func (v *NullableTunnelConfigurationPhase2) Unset() { v.value = nil v.isSet = false } func NewNullableTunnelConfigurationPhase2(val *TunnelConfigurationPhase2) *NullableTunnelConfigurationPhase2 { return &NullableTunnelConfigurationPhase2{value: val, isSet: true} } func (v NullableTunnelConfigurationPhase2) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } func (v *NullableTunnelConfigurationPhase2) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) }