/*
Edge Application API

No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

API version: 2.0.0
*/

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package edgeapplications

import (
	"encoding/json"
)

// checks if the ApplicationUpdateRequest type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &ApplicationUpdateRequest{}

// ApplicationUpdateRequest struct for ApplicationUpdateRequest
type ApplicationUpdateRequest struct {
	Name *string `json:"name,omitempty"`
	DeliveryProtocol *string `json:"delivery_protocol,omitempty"`
	HttpPort interface{} `json:"http_port,omitempty"`
	HttpsPort interface{} `json:"https_port,omitempty"`
	MinimumTlsVersion *string `json:"minimum_tls_version,omitempty"`
	Active *bool `json:"active,omitempty"`
	DebugRules *bool `json:"debug_rules,omitempty"`
	ApplicationAcceleration *bool `json:"application_acceleration,omitempty"`
	DeviceDetection *bool `json:"device_detection,omitempty"`
	EdgeFirewall *bool `json:"edge_firewall,omitempty"`
	EdgeFunctions *bool `json:"edge_functions,omitempty"`
	ImageOptimization *bool `json:"image_optimization,omitempty"`
	L2Caching *bool `json:"l2_caching,omitempty"`
	LoadBalancer *bool `json:"load_balancer,omitempty"`
	RawLogs *bool `json:"raw_logs,omitempty"`
	WebApplicationFirewall *bool `json:"web_application_firewall,omitempty"`
	Websocket *bool `json:"websocket,omitempty"`
}

// NewApplicationUpdateRequest instantiates a new ApplicationUpdateRequest 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 NewApplicationUpdateRequest() *ApplicationUpdateRequest {
	this := ApplicationUpdateRequest{}
	return &this
}

// NewApplicationUpdateRequestWithDefaults instantiates a new ApplicationUpdateRequest 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 NewApplicationUpdateRequestWithDefaults() *ApplicationUpdateRequest {
	this := ApplicationUpdateRequest{}
	return &this
}

// GetName returns the Name field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetName() string {
	if o == nil || IsNil(o.Name) {
		var ret string
		return ret
	}
	return *o.Name
}

// GetNameOk returns a tuple with the Name field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetNameOk() (*string, bool) {
	if o == nil || IsNil(o.Name) {
		return nil, false
	}
	return o.Name, true
}

// HasName returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasName() bool {
	if o != nil && !IsNil(o.Name) {
		return true
	}

	return false
}

// SetName gets a reference to the given string and assigns it to the Name field.
func (o *ApplicationUpdateRequest) SetName(v string) {
	o.Name = &v
}

// GetDeliveryProtocol returns the DeliveryProtocol field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetDeliveryProtocol() string {
	if o == nil || IsNil(o.DeliveryProtocol) {
		var ret string
		return ret
	}
	return *o.DeliveryProtocol
}

// GetDeliveryProtocolOk returns a tuple with the DeliveryProtocol field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetDeliveryProtocolOk() (*string, bool) {
	if o == nil || IsNil(o.DeliveryProtocol) {
		return nil, false
	}
	return o.DeliveryProtocol, true
}

// HasDeliveryProtocol returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasDeliveryProtocol() bool {
	if o != nil && !IsNil(o.DeliveryProtocol) {
		return true
	}

	return false
}

// SetDeliveryProtocol gets a reference to the given string and assigns it to the DeliveryProtocol field.
func (o *ApplicationUpdateRequest) SetDeliveryProtocol(v string) {
	o.DeliveryProtocol = &v
}

// GetHttpPort returns the HttpPort field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *ApplicationUpdateRequest) GetHttpPort() interface{} {
	if o == nil {
		var ret interface{}
		return ret
	}
	return o.HttpPort
}

// GetHttpPortOk returns a tuple with the HttpPort field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *ApplicationUpdateRequest) GetHttpPortOk() (*interface{}, bool) {
	if o == nil || IsNil(o.HttpPort) {
		return nil, false
	}
	return &o.HttpPort, true
}

// HasHttpPort returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasHttpPort() bool {
	if o != nil && !IsNil(o.HttpPort) {
		return true
	}

	return false
}

// SetHttpPort gets a reference to the given interface{} and assigns it to the HttpPort field.
func (o *ApplicationUpdateRequest) SetHttpPort(v interface{}) {
	o.HttpPort = v
}

// GetHttpsPort returns the HttpsPort field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *ApplicationUpdateRequest) GetHttpsPort() interface{} {
	if o == nil {
		var ret interface{}
		return ret
	}
	return o.HttpsPort
}

// GetHttpsPortOk returns a tuple with the HttpsPort field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *ApplicationUpdateRequest) GetHttpsPortOk() (*interface{}, bool) {
	if o == nil || IsNil(o.HttpsPort) {
		return nil, false
	}
	return &o.HttpsPort, true
}

// HasHttpsPort returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasHttpsPort() bool {
	if o != nil && !IsNil(o.HttpsPort) {
		return true
	}

	return false
}

// SetHttpsPort gets a reference to the given interface{} and assigns it to the HttpsPort field.
func (o *ApplicationUpdateRequest) SetHttpsPort(v interface{}) {
	o.HttpsPort = v
}

// GetMinimumTlsVersion returns the MinimumTlsVersion field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetMinimumTlsVersion() string {
	if o == nil || IsNil(o.MinimumTlsVersion) {
		var ret string
		return ret
	}
	return *o.MinimumTlsVersion
}

// GetMinimumTlsVersionOk returns a tuple with the MinimumTlsVersion field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetMinimumTlsVersionOk() (*string, bool) {
	if o == nil || IsNil(o.MinimumTlsVersion) {
		return nil, false
	}
	return o.MinimumTlsVersion, true
}

// HasMinimumTlsVersion returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasMinimumTlsVersion() bool {
	if o != nil && !IsNil(o.MinimumTlsVersion) {
		return true
	}

	return false
}

// SetMinimumTlsVersion gets a reference to the given string and assigns it to the MinimumTlsVersion field.
func (o *ApplicationUpdateRequest) SetMinimumTlsVersion(v string) {
	o.MinimumTlsVersion = &v
}

// GetActive returns the Active field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetActive() bool {
	if o == nil || IsNil(o.Active) {
		var ret bool
		return ret
	}
	return *o.Active
}

// GetActiveOk returns a tuple with the Active field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetActiveOk() (*bool, bool) {
	if o == nil || IsNil(o.Active) {
		return nil, false
	}
	return o.Active, true
}

// HasActive returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasActive() bool {
	if o != nil && !IsNil(o.Active) {
		return true
	}

	return false
}

// SetActive gets a reference to the given bool and assigns it to the Active field.
func (o *ApplicationUpdateRequest) SetActive(v bool) {
	o.Active = &v
}

// GetDebugRules returns the DebugRules field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetDebugRules() bool {
	if o == nil || IsNil(o.DebugRules) {
		var ret bool
		return ret
	}
	return *o.DebugRules
}

// GetDebugRulesOk returns a tuple with the DebugRules field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetDebugRulesOk() (*bool, bool) {
	if o == nil || IsNil(o.DebugRules) {
		return nil, false
	}
	return o.DebugRules, true
}

// HasDebugRules returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasDebugRules() bool {
	if o != nil && !IsNil(o.DebugRules) {
		return true
	}

	return false
}

// SetDebugRules gets a reference to the given bool and assigns it to the DebugRules field.
func (o *ApplicationUpdateRequest) SetDebugRules(v bool) {
	o.DebugRules = &v
}

// GetApplicationAcceleration returns the ApplicationAcceleration field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetApplicationAcceleration() bool {
	if o == nil || IsNil(o.ApplicationAcceleration) {
		var ret bool
		return ret
	}
	return *o.ApplicationAcceleration
}

// GetApplicationAccelerationOk returns a tuple with the ApplicationAcceleration field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetApplicationAccelerationOk() (*bool, bool) {
	if o == nil || IsNil(o.ApplicationAcceleration) {
		return nil, false
	}
	return o.ApplicationAcceleration, true
}

// HasApplicationAcceleration returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasApplicationAcceleration() bool {
	if o != nil && !IsNil(o.ApplicationAcceleration) {
		return true
	}

	return false
}

// SetApplicationAcceleration gets a reference to the given bool and assigns it to the ApplicationAcceleration field.
func (o *ApplicationUpdateRequest) SetApplicationAcceleration(v bool) {
	o.ApplicationAcceleration = &v
}

// GetDeviceDetection returns the DeviceDetection field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetDeviceDetection() bool {
	if o == nil || IsNil(o.DeviceDetection) {
		var ret bool
		return ret
	}
	return *o.DeviceDetection
}

// GetDeviceDetectionOk returns a tuple with the DeviceDetection field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetDeviceDetectionOk() (*bool, bool) {
	if o == nil || IsNil(o.DeviceDetection) {
		return nil, false
	}
	return o.DeviceDetection, true
}

// HasDeviceDetection returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasDeviceDetection() bool {
	if o != nil && !IsNil(o.DeviceDetection) {
		return true
	}

	return false
}

// SetDeviceDetection gets a reference to the given bool and assigns it to the DeviceDetection field.
func (o *ApplicationUpdateRequest) SetDeviceDetection(v bool) {
	o.DeviceDetection = &v
}

// GetEdgeFirewall returns the EdgeFirewall field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetEdgeFirewall() bool {
	if o == nil || IsNil(o.EdgeFirewall) {
		var ret bool
		return ret
	}
	return *o.EdgeFirewall
}

// GetEdgeFirewallOk returns a tuple with the EdgeFirewall field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetEdgeFirewallOk() (*bool, bool) {
	if o == nil || IsNil(o.EdgeFirewall) {
		return nil, false
	}
	return o.EdgeFirewall, true
}

// HasEdgeFirewall returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasEdgeFirewall() bool {
	if o != nil && !IsNil(o.EdgeFirewall) {
		return true
	}

	return false
}

// SetEdgeFirewall gets a reference to the given bool and assigns it to the EdgeFirewall field.
func (o *ApplicationUpdateRequest) SetEdgeFirewall(v bool) {
	o.EdgeFirewall = &v
}

// GetEdgeFunctions returns the EdgeFunctions field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetEdgeFunctions() bool {
	if o == nil || IsNil(o.EdgeFunctions) {
		var ret bool
		return ret
	}
	return *o.EdgeFunctions
}

// GetEdgeFunctionsOk returns a tuple with the EdgeFunctions field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetEdgeFunctionsOk() (*bool, bool) {
	if o == nil || IsNil(o.EdgeFunctions) {
		return nil, false
	}
	return o.EdgeFunctions, true
}

// HasEdgeFunctions returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasEdgeFunctions() bool {
	if o != nil && !IsNil(o.EdgeFunctions) {
		return true
	}

	return false
}

// SetEdgeFunctions gets a reference to the given bool and assigns it to the EdgeFunctions field.
func (o *ApplicationUpdateRequest) SetEdgeFunctions(v bool) {
	o.EdgeFunctions = &v
}

// GetImageOptimization returns the ImageOptimization field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetImageOptimization() bool {
	if o == nil || IsNil(o.ImageOptimization) {
		var ret bool
		return ret
	}
	return *o.ImageOptimization
}

// GetImageOptimizationOk returns a tuple with the ImageOptimization field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetImageOptimizationOk() (*bool, bool) {
	if o == nil || IsNil(o.ImageOptimization) {
		return nil, false
	}
	return o.ImageOptimization, true
}

// HasImageOptimization returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasImageOptimization() bool {
	if o != nil && !IsNil(o.ImageOptimization) {
		return true
	}

	return false
}

// SetImageOptimization gets a reference to the given bool and assigns it to the ImageOptimization field.
func (o *ApplicationUpdateRequest) SetImageOptimization(v bool) {
	o.ImageOptimization = &v
}

// GetL2Caching returns the L2Caching field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetL2Caching() bool {
	if o == nil || IsNil(o.L2Caching) {
		var ret bool
		return ret
	}
	return *o.L2Caching
}

// GetL2CachingOk returns a tuple with the L2Caching field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetL2CachingOk() (*bool, bool) {
	if o == nil || IsNil(o.L2Caching) {
		return nil, false
	}
	return o.L2Caching, true
}

// HasL2Caching returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasL2Caching() bool {
	if o != nil && !IsNil(o.L2Caching) {
		return true
	}

	return false
}

// SetL2Caching gets a reference to the given bool and assigns it to the L2Caching field.
func (o *ApplicationUpdateRequest) SetL2Caching(v bool) {
	o.L2Caching = &v
}

// GetLoadBalancer returns the LoadBalancer field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetLoadBalancer() bool {
	if o == nil || IsNil(o.LoadBalancer) {
		var ret bool
		return ret
	}
	return *o.LoadBalancer
}

// GetLoadBalancerOk returns a tuple with the LoadBalancer field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetLoadBalancerOk() (*bool, bool) {
	if o == nil || IsNil(o.LoadBalancer) {
		return nil, false
	}
	return o.LoadBalancer, true
}

// HasLoadBalancer returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasLoadBalancer() bool {
	if o != nil && !IsNil(o.LoadBalancer) {
		return true
	}

	return false
}

// SetLoadBalancer gets a reference to the given bool and assigns it to the LoadBalancer field.
func (o *ApplicationUpdateRequest) SetLoadBalancer(v bool) {
	o.LoadBalancer = &v
}

// GetRawLogs returns the RawLogs field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetRawLogs() bool {
	if o == nil || IsNil(o.RawLogs) {
		var ret bool
		return ret
	}
	return *o.RawLogs
}

// GetRawLogsOk returns a tuple with the RawLogs field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetRawLogsOk() (*bool, bool) {
	if o == nil || IsNil(o.RawLogs) {
		return nil, false
	}
	return o.RawLogs, true
}

// HasRawLogs returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasRawLogs() bool {
	if o != nil && !IsNil(o.RawLogs) {
		return true
	}

	return false
}

// SetRawLogs gets a reference to the given bool and assigns it to the RawLogs field.
func (o *ApplicationUpdateRequest) SetRawLogs(v bool) {
	o.RawLogs = &v
}

// GetWebApplicationFirewall returns the WebApplicationFirewall field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetWebApplicationFirewall() bool {
	if o == nil || IsNil(o.WebApplicationFirewall) {
		var ret bool
		return ret
	}
	return *o.WebApplicationFirewall
}

// GetWebApplicationFirewallOk returns a tuple with the WebApplicationFirewall field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetWebApplicationFirewallOk() (*bool, bool) {
	if o == nil || IsNil(o.WebApplicationFirewall) {
		return nil, false
	}
	return o.WebApplicationFirewall, true
}

// HasWebApplicationFirewall returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasWebApplicationFirewall() bool {
	if o != nil && !IsNil(o.WebApplicationFirewall) {
		return true
	}

	return false
}

// SetWebApplicationFirewall gets a reference to the given bool and assigns it to the WebApplicationFirewall field.
func (o *ApplicationUpdateRequest) SetWebApplicationFirewall(v bool) {
	o.WebApplicationFirewall = &v
}

// GetWebsocket returns the Websocket field value if set, zero value otherwise.
func (o *ApplicationUpdateRequest) GetWebsocket() bool {
	if o == nil || IsNil(o.Websocket) {
		var ret bool
		return ret
	}
	return *o.Websocket
}

// GetWebsocketOk returns a tuple with the Websocket field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ApplicationUpdateRequest) GetWebsocketOk() (*bool, bool) {
	if o == nil || IsNil(o.Websocket) {
		return nil, false
	}
	return o.Websocket, true
}

// HasWebsocket returns a boolean if a field has been set.
func (o *ApplicationUpdateRequest) HasWebsocket() bool {
	if o != nil && !IsNil(o.Websocket) {
		return true
	}

	return false
}

// SetWebsocket gets a reference to the given bool and assigns it to the Websocket field.
func (o *ApplicationUpdateRequest) SetWebsocket(v bool) {
	o.Websocket = &v
}

func (o ApplicationUpdateRequest) MarshalJSON() ([]byte, error) {
	toSerialize,err := o.ToMap()
	if err != nil {
		return []byte{}, err
	}
	return json.Marshal(toSerialize)
}

func (o ApplicationUpdateRequest) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !IsNil(o.Name) {
		toSerialize["name"] = o.Name
	}
	if !IsNil(o.DeliveryProtocol) {
		toSerialize["delivery_protocol"] = o.DeliveryProtocol
	}
	if o.HttpPort != nil {
		toSerialize["http_port"] = o.HttpPort
	}
	if o.HttpsPort != nil {
		toSerialize["https_port"] = o.HttpsPort
	}
	if !IsNil(o.MinimumTlsVersion) {
		toSerialize["minimum_tls_version"] = o.MinimumTlsVersion
	}
	if !IsNil(o.Active) {
		toSerialize["active"] = o.Active
	}
	if !IsNil(o.DebugRules) {
		toSerialize["debug_rules"] = o.DebugRules
	}
	if !IsNil(o.ApplicationAcceleration) {
		toSerialize["application_acceleration"] = o.ApplicationAcceleration
	}
	if !IsNil(o.DeviceDetection) {
		toSerialize["device_detection"] = o.DeviceDetection
	}
	if !IsNil(o.EdgeFirewall) {
		toSerialize["edge_firewall"] = o.EdgeFirewall
	}
	if !IsNil(o.EdgeFunctions) {
		toSerialize["edge_functions"] = o.EdgeFunctions
	}
	if !IsNil(o.ImageOptimization) {
		toSerialize["image_optimization"] = o.ImageOptimization
	}
	if !IsNil(o.L2Caching) {
		toSerialize["l2_caching"] = o.L2Caching
	}
	if !IsNil(o.LoadBalancer) {
		toSerialize["load_balancer"] = o.LoadBalancer
	}
	if !IsNil(o.RawLogs) {
		toSerialize["raw_logs"] = o.RawLogs
	}
	if !IsNil(o.WebApplicationFirewall) {
		toSerialize["web_application_firewall"] = o.WebApplicationFirewall
	}
	if !IsNil(o.Websocket) {
		toSerialize["websocket"] = o.Websocket
	}
	return toSerialize, nil
}

type NullableApplicationUpdateRequest struct {
	value *ApplicationUpdateRequest
	isSet bool
}

func (v NullableApplicationUpdateRequest) Get() *ApplicationUpdateRequest {
	return v.value
}

func (v *NullableApplicationUpdateRequest) Set(val *ApplicationUpdateRequest) {
	v.value = val
	v.isSet = true
}

func (v NullableApplicationUpdateRequest) IsSet() bool {
	return v.isSet
}

func (v *NullableApplicationUpdateRequest) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableApplicationUpdateRequest(val *ApplicationUpdateRequest) *NullableApplicationUpdateRequest {
	return &NullableApplicationUpdateRequest{value: val, isSet: true}
}

func (v NullableApplicationUpdateRequest) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableApplicationUpdateRequest) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}


