/*
Web Application Firewall 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 waf

import (
	"encoding/json"
)

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

// SingleWAF struct for SingleWAF
type SingleWAF struct {
	Id *int64 `json:"id,omitempty"`
	// Identification name for WAF Rule Set.
	Name *string `json:"name,omitempty"`
	Mode *string `json:"mode,omitempty"`
	Active *bool `json:"active,omitempty"`
	SqlInjection *bool `json:"sql_injection,omitempty"`
	SqlInjectionSensitivity *WAFSensitivityChoices `json:"sql_injection_sensitivity,omitempty"`
	RemoteFileInclusion *bool `json:"remote_file_inclusion,omitempty"`
	RemoteFileInclusionSensitivity *WAFSensitivityChoices `json:"remote_file_inclusion_sensitivity,omitempty"`
	DirectoryTraversal *bool `json:"directory_traversal,omitempty"`
	DirectoryTraversalSensitivity *WAFSensitivityChoices `json:"directory_traversal_sensitivity,omitempty"`
	CrossSiteScripting *bool `json:"cross_site_scripting,omitempty"`
	CrossSiteScriptingSensitivity *WAFSensitivityChoices `json:"cross_site_scripting_sensitivity,omitempty"`
	EvadingTricks *bool `json:"evading_tricks,omitempty"`
	EvadingTricksSensitivity *WAFSensitivityChoices `json:"evading_tricks_sensitivity,omitempty"`
	FileUpload *bool `json:"file_upload,omitempty"`
	FileUploadSensitivity *WAFSensitivityChoices `json:"file_upload_sensitivity,omitempty"`
	UnwantedAccess *bool `json:"unwanted_access,omitempty"`
	UnwantedAccessSensitivity *WAFSensitivityChoices `json:"unwanted_access_sensitivity,omitempty"`
	IdentifiedAttack *bool `json:"identified_attack,omitempty"`
	IdentifiedAttackSensitivity *WAFSensitivityChoices `json:"identified_attack_sensitivity,omitempty"`
	BypassAddresses []string `json:"bypass_addresses,omitempty"`
}

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

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

// GetId returns the Id field value if set, zero value otherwise.
func (o *SingleWAF) GetId() int64 {
	if o == nil || IsNil(o.Id) {
		var ret int64
		return ret
	}
	return *o.Id
}

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

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

	return false
}

// SetId gets a reference to the given int64 and assigns it to the Id field.
func (o *SingleWAF) SetId(v int64) {
	o.Id = &v
}

// GetName returns the Name field value if set, zero value otherwise.
func (o *SingleWAF) 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 *SingleWAF) 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 *SingleWAF) 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 *SingleWAF) SetName(v string) {
	o.Name = &v
}

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

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

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

	return false
}

// SetMode gets a reference to the given string and assigns it to the Mode field.
func (o *SingleWAF) SetMode(v string) {
	o.Mode = &v
}

// GetActive returns the Active field value if set, zero value otherwise.
func (o *SingleWAF) 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 *SingleWAF) 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 *SingleWAF) 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 *SingleWAF) SetActive(v bool) {
	o.Active = &v
}

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

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

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

	return false
}

// SetSqlInjection gets a reference to the given bool and assigns it to the SqlInjection field.
func (o *SingleWAF) SetSqlInjection(v bool) {
	o.SqlInjection = &v
}

// GetSqlInjectionSensitivity returns the SqlInjectionSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetSqlInjectionSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.SqlInjectionSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.SqlInjectionSensitivity
}

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

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

	return false
}

// SetSqlInjectionSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the SqlInjectionSensitivity field.
func (o *SingleWAF) SetSqlInjectionSensitivity(v WAFSensitivityChoices) {
	o.SqlInjectionSensitivity = &v
}

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

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

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

	return false
}

// SetRemoteFileInclusion gets a reference to the given bool and assigns it to the RemoteFileInclusion field.
func (o *SingleWAF) SetRemoteFileInclusion(v bool) {
	o.RemoteFileInclusion = &v
}

// GetRemoteFileInclusionSensitivity returns the RemoteFileInclusionSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetRemoteFileInclusionSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.RemoteFileInclusionSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.RemoteFileInclusionSensitivity
}

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

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

	return false
}

// SetRemoteFileInclusionSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the RemoteFileInclusionSensitivity field.
func (o *SingleWAF) SetRemoteFileInclusionSensitivity(v WAFSensitivityChoices) {
	o.RemoteFileInclusionSensitivity = &v
}

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

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

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

	return false
}

// SetDirectoryTraversal gets a reference to the given bool and assigns it to the DirectoryTraversal field.
func (o *SingleWAF) SetDirectoryTraversal(v bool) {
	o.DirectoryTraversal = &v
}

// GetDirectoryTraversalSensitivity returns the DirectoryTraversalSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetDirectoryTraversalSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.DirectoryTraversalSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.DirectoryTraversalSensitivity
}

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

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

	return false
}

// SetDirectoryTraversalSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the DirectoryTraversalSensitivity field.
func (o *SingleWAF) SetDirectoryTraversalSensitivity(v WAFSensitivityChoices) {
	o.DirectoryTraversalSensitivity = &v
}

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

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

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

	return false
}

// SetCrossSiteScripting gets a reference to the given bool and assigns it to the CrossSiteScripting field.
func (o *SingleWAF) SetCrossSiteScripting(v bool) {
	o.CrossSiteScripting = &v
}

// GetCrossSiteScriptingSensitivity returns the CrossSiteScriptingSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetCrossSiteScriptingSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.CrossSiteScriptingSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.CrossSiteScriptingSensitivity
}

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

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

	return false
}

// SetCrossSiteScriptingSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the CrossSiteScriptingSensitivity field.
func (o *SingleWAF) SetCrossSiteScriptingSensitivity(v WAFSensitivityChoices) {
	o.CrossSiteScriptingSensitivity = &v
}

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

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

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

	return false
}

// SetEvadingTricks gets a reference to the given bool and assigns it to the EvadingTricks field.
func (o *SingleWAF) SetEvadingTricks(v bool) {
	o.EvadingTricks = &v
}

// GetEvadingTricksSensitivity returns the EvadingTricksSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetEvadingTricksSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.EvadingTricksSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.EvadingTricksSensitivity
}

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

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

	return false
}

// SetEvadingTricksSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the EvadingTricksSensitivity field.
func (o *SingleWAF) SetEvadingTricksSensitivity(v WAFSensitivityChoices) {
	o.EvadingTricksSensitivity = &v
}

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

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

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

	return false
}

// SetFileUpload gets a reference to the given bool and assigns it to the FileUpload field.
func (o *SingleWAF) SetFileUpload(v bool) {
	o.FileUpload = &v
}

// GetFileUploadSensitivity returns the FileUploadSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetFileUploadSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.FileUploadSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.FileUploadSensitivity
}

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

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

	return false
}

// SetFileUploadSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the FileUploadSensitivity field.
func (o *SingleWAF) SetFileUploadSensitivity(v WAFSensitivityChoices) {
	o.FileUploadSensitivity = &v
}

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

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

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

	return false
}

// SetUnwantedAccess gets a reference to the given bool and assigns it to the UnwantedAccess field.
func (o *SingleWAF) SetUnwantedAccess(v bool) {
	o.UnwantedAccess = &v
}

// GetUnwantedAccessSensitivity returns the UnwantedAccessSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetUnwantedAccessSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.UnwantedAccessSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.UnwantedAccessSensitivity
}

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

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

	return false
}

// SetUnwantedAccessSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the UnwantedAccessSensitivity field.
func (o *SingleWAF) SetUnwantedAccessSensitivity(v WAFSensitivityChoices) {
	o.UnwantedAccessSensitivity = &v
}

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

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

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

	return false
}

// SetIdentifiedAttack gets a reference to the given bool and assigns it to the IdentifiedAttack field.
func (o *SingleWAF) SetIdentifiedAttack(v bool) {
	o.IdentifiedAttack = &v
}

// GetIdentifiedAttackSensitivity returns the IdentifiedAttackSensitivity field value if set, zero value otherwise.
func (o *SingleWAF) GetIdentifiedAttackSensitivity() WAFSensitivityChoices {
	if o == nil || IsNil(o.IdentifiedAttackSensitivity) {
		var ret WAFSensitivityChoices
		return ret
	}
	return *o.IdentifiedAttackSensitivity
}

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

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

	return false
}

// SetIdentifiedAttackSensitivity gets a reference to the given WAFSensitivityChoices and assigns it to the IdentifiedAttackSensitivity field.
func (o *SingleWAF) SetIdentifiedAttackSensitivity(v WAFSensitivityChoices) {
	o.IdentifiedAttackSensitivity = &v
}

// GetBypassAddresses returns the BypassAddresses field value if set, zero value otherwise.
func (o *SingleWAF) GetBypassAddresses() []string {
	if o == nil || IsNil(o.BypassAddresses) {
		var ret []string
		return ret
	}
	return o.BypassAddresses
}

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

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

	return false
}

// SetBypassAddresses gets a reference to the given []string and assigns it to the BypassAddresses field.
func (o *SingleWAF) SetBypassAddresses(v []string) {
	o.BypassAddresses = v
}

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

func (o SingleWAF) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !IsNil(o.Id) {
		toSerialize["id"] = o.Id
	}
	if !IsNil(o.Name) {
		toSerialize["name"] = o.Name
	}
	if !IsNil(o.Mode) {
		toSerialize["mode"] = o.Mode
	}
	if !IsNil(o.Active) {
		toSerialize["active"] = o.Active
	}
	if !IsNil(o.SqlInjection) {
		toSerialize["sql_injection"] = o.SqlInjection
	}
	if !IsNil(o.SqlInjectionSensitivity) {
		toSerialize["sql_injection_sensitivity"] = o.SqlInjectionSensitivity
	}
	if !IsNil(o.RemoteFileInclusion) {
		toSerialize["remote_file_inclusion"] = o.RemoteFileInclusion
	}
	if !IsNil(o.RemoteFileInclusionSensitivity) {
		toSerialize["remote_file_inclusion_sensitivity"] = o.RemoteFileInclusionSensitivity
	}
	if !IsNil(o.DirectoryTraversal) {
		toSerialize["directory_traversal"] = o.DirectoryTraversal
	}
	if !IsNil(o.DirectoryTraversalSensitivity) {
		toSerialize["directory_traversal_sensitivity"] = o.DirectoryTraversalSensitivity
	}
	if !IsNil(o.CrossSiteScripting) {
		toSerialize["cross_site_scripting"] = o.CrossSiteScripting
	}
	if !IsNil(o.CrossSiteScriptingSensitivity) {
		toSerialize["cross_site_scripting_sensitivity"] = o.CrossSiteScriptingSensitivity
	}
	if !IsNil(o.EvadingTricks) {
		toSerialize["evading_tricks"] = o.EvadingTricks
	}
	if !IsNil(o.EvadingTricksSensitivity) {
		toSerialize["evading_tricks_sensitivity"] = o.EvadingTricksSensitivity
	}
	if !IsNil(o.FileUpload) {
		toSerialize["file_upload"] = o.FileUpload
	}
	if !IsNil(o.FileUploadSensitivity) {
		toSerialize["file_upload_sensitivity"] = o.FileUploadSensitivity
	}
	if !IsNil(o.UnwantedAccess) {
		toSerialize["unwanted_access"] = o.UnwantedAccess
	}
	if !IsNil(o.UnwantedAccessSensitivity) {
		toSerialize["unwanted_access_sensitivity"] = o.UnwantedAccessSensitivity
	}
	if !IsNil(o.IdentifiedAttack) {
		toSerialize["identified_attack"] = o.IdentifiedAttack
	}
	if !IsNil(o.IdentifiedAttackSensitivity) {
		toSerialize["identified_attack_sensitivity"] = o.IdentifiedAttackSensitivity
	}
	if !IsNil(o.BypassAddresses) {
		toSerialize["bypass_addresses"] = o.BypassAddresses
	}
	return toSerialize, nil
}

type NullableSingleWAF struct {
	value *SingleWAF
	isSet bool
}

func (v NullableSingleWAF) Get() *SingleWAF {
	return v.value
}

func (v *NullableSingleWAF) Set(val *SingleWAF) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableSingleWAF(val *SingleWAF) *NullableSingleWAF {
	return &NullableSingleWAF{value: val, isSet: true}
}

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

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


