/*
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 CreateNewWAFRulesetRequest type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &CreateNewWAFRulesetRequest{}

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

// NewCreateNewWAFRulesetRequest instantiates a new CreateNewWAFRulesetRequest 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 NewCreateNewWAFRulesetRequest(name string, mode string, active bool, sqlInjection bool, sqlInjectionSensitivity WAFSensitivityChoices, remoteFileInclusion bool, remoteFileInclusionSensitivity WAFSensitivityChoices, directoryTraversal bool, directoryTraversalSensitivity WAFSensitivityChoices, crossSiteScripting bool, crossSiteScriptingSensitivity WAFSensitivityChoices, evadingTricks bool, evadingTricksSensitivity WAFSensitivityChoices, fileUpload bool, fileUploadSensitivity WAFSensitivityChoices, unwantedAccess bool, unwantedAccessSensitivity WAFSensitivityChoices, identifiedAttack bool, identifiedAttackSensitivity WAFSensitivityChoices, bypassAddresses []string) *CreateNewWAFRulesetRequest {
	this := CreateNewWAFRulesetRequest{}
	this.Name = name
	this.Mode = mode
	this.Active = active
	this.SqlInjection = sqlInjection
	this.SqlInjectionSensitivity = sqlInjectionSensitivity
	this.RemoteFileInclusion = remoteFileInclusion
	this.RemoteFileInclusionSensitivity = remoteFileInclusionSensitivity
	this.DirectoryTraversal = directoryTraversal
	this.DirectoryTraversalSensitivity = directoryTraversalSensitivity
	this.CrossSiteScripting = crossSiteScripting
	this.CrossSiteScriptingSensitivity = crossSiteScriptingSensitivity
	this.EvadingTricks = evadingTricks
	this.EvadingTricksSensitivity = evadingTricksSensitivity
	this.FileUpload = fileUpload
	this.FileUploadSensitivity = fileUploadSensitivity
	this.UnwantedAccess = unwantedAccess
	this.UnwantedAccessSensitivity = unwantedAccessSensitivity
	this.IdentifiedAttack = identifiedAttack
	this.IdentifiedAttackSensitivity = identifiedAttackSensitivity
	this.BypassAddresses = bypassAddresses
	return &this
}

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

// GetId returns the Id field value if set, zero value otherwise.
func (o *CreateNewWAFRulesetRequest) 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 *CreateNewWAFRulesetRequest) 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 *CreateNewWAFRulesetRequest) 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 *CreateNewWAFRulesetRequest) SetId(v int64) {
	o.Id = &v
}

// GetName returns the Name field value
func (o *CreateNewWAFRulesetRequest) GetName() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Name
}

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

// SetName sets field value
func (o *CreateNewWAFRulesetRequest) SetName(v string) {
	o.Name = v
}

// GetMode returns the Mode field value
func (o *CreateNewWAFRulesetRequest) GetMode() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Mode
}

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

// SetMode sets field value
func (o *CreateNewWAFRulesetRequest) SetMode(v string) {
	o.Mode = v
}

// GetActive returns the Active field value
func (o *CreateNewWAFRulesetRequest) GetActive() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.Active
}

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

// SetActive sets field value
func (o *CreateNewWAFRulesetRequest) SetActive(v bool) {
	o.Active = v
}

// GetSqlInjection returns the SqlInjection field value
func (o *CreateNewWAFRulesetRequest) GetSqlInjection() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.SqlInjection
}

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

// SetSqlInjection sets field value
func (o *CreateNewWAFRulesetRequest) SetSqlInjection(v bool) {
	o.SqlInjection = v
}

// GetSqlInjectionSensitivity returns the SqlInjectionSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetSqlInjectionSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.SqlInjectionSensitivity
}

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

// SetSqlInjectionSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetSqlInjectionSensitivity(v WAFSensitivityChoices) {
	o.SqlInjectionSensitivity = v
}

// GetRemoteFileInclusion returns the RemoteFileInclusion field value
func (o *CreateNewWAFRulesetRequest) GetRemoteFileInclusion() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.RemoteFileInclusion
}

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

// SetRemoteFileInclusion sets field value
func (o *CreateNewWAFRulesetRequest) SetRemoteFileInclusion(v bool) {
	o.RemoteFileInclusion = v
}

// GetRemoteFileInclusionSensitivity returns the RemoteFileInclusionSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetRemoteFileInclusionSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.RemoteFileInclusionSensitivity
}

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

// SetRemoteFileInclusionSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetRemoteFileInclusionSensitivity(v WAFSensitivityChoices) {
	o.RemoteFileInclusionSensitivity = v
}

// GetDirectoryTraversal returns the DirectoryTraversal field value
func (o *CreateNewWAFRulesetRequest) GetDirectoryTraversal() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.DirectoryTraversal
}

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

// SetDirectoryTraversal sets field value
func (o *CreateNewWAFRulesetRequest) SetDirectoryTraversal(v bool) {
	o.DirectoryTraversal = v
}

// GetDirectoryTraversalSensitivity returns the DirectoryTraversalSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetDirectoryTraversalSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.DirectoryTraversalSensitivity
}

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

// SetDirectoryTraversalSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetDirectoryTraversalSensitivity(v WAFSensitivityChoices) {
	o.DirectoryTraversalSensitivity = v
}

// GetCrossSiteScripting returns the CrossSiteScripting field value
func (o *CreateNewWAFRulesetRequest) GetCrossSiteScripting() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.CrossSiteScripting
}

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

// SetCrossSiteScripting sets field value
func (o *CreateNewWAFRulesetRequest) SetCrossSiteScripting(v bool) {
	o.CrossSiteScripting = v
}

// GetCrossSiteScriptingSensitivity returns the CrossSiteScriptingSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetCrossSiteScriptingSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.CrossSiteScriptingSensitivity
}

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

// SetCrossSiteScriptingSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetCrossSiteScriptingSensitivity(v WAFSensitivityChoices) {
	o.CrossSiteScriptingSensitivity = v
}

// GetEvadingTricks returns the EvadingTricks field value
func (o *CreateNewWAFRulesetRequest) GetEvadingTricks() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.EvadingTricks
}

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

// SetEvadingTricks sets field value
func (o *CreateNewWAFRulesetRequest) SetEvadingTricks(v bool) {
	o.EvadingTricks = v
}

// GetEvadingTricksSensitivity returns the EvadingTricksSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetEvadingTricksSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.EvadingTricksSensitivity
}

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

// SetEvadingTricksSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetEvadingTricksSensitivity(v WAFSensitivityChoices) {
	o.EvadingTricksSensitivity = v
}

// GetFileUpload returns the FileUpload field value
func (o *CreateNewWAFRulesetRequest) GetFileUpload() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.FileUpload
}

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

// SetFileUpload sets field value
func (o *CreateNewWAFRulesetRequest) SetFileUpload(v bool) {
	o.FileUpload = v
}

// GetFileUploadSensitivity returns the FileUploadSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetFileUploadSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.FileUploadSensitivity
}

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

// SetFileUploadSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetFileUploadSensitivity(v WAFSensitivityChoices) {
	o.FileUploadSensitivity = v
}

// GetUnwantedAccess returns the UnwantedAccess field value
func (o *CreateNewWAFRulesetRequest) GetUnwantedAccess() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.UnwantedAccess
}

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

// SetUnwantedAccess sets field value
func (o *CreateNewWAFRulesetRequest) SetUnwantedAccess(v bool) {
	o.UnwantedAccess = v
}

// GetUnwantedAccessSensitivity returns the UnwantedAccessSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetUnwantedAccessSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.UnwantedAccessSensitivity
}

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

// SetUnwantedAccessSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetUnwantedAccessSensitivity(v WAFSensitivityChoices) {
	o.UnwantedAccessSensitivity = v
}

// GetIdentifiedAttack returns the IdentifiedAttack field value
func (o *CreateNewWAFRulesetRequest) GetIdentifiedAttack() bool {
	if o == nil {
		var ret bool
		return ret
	}

	return o.IdentifiedAttack
}

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

// SetIdentifiedAttack sets field value
func (o *CreateNewWAFRulesetRequest) SetIdentifiedAttack(v bool) {
	o.IdentifiedAttack = v
}

// GetIdentifiedAttackSensitivity returns the IdentifiedAttackSensitivity field value
func (o *CreateNewWAFRulesetRequest) GetIdentifiedAttackSensitivity() WAFSensitivityChoices {
	if o == nil {
		var ret WAFSensitivityChoices
		return ret
	}

	return o.IdentifiedAttackSensitivity
}

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

// SetIdentifiedAttackSensitivity sets field value
func (o *CreateNewWAFRulesetRequest) SetIdentifiedAttackSensitivity(v WAFSensitivityChoices) {
	o.IdentifiedAttackSensitivity = v
}

// GetBypassAddresses returns the BypassAddresses field value
func (o *CreateNewWAFRulesetRequest) GetBypassAddresses() []string {
	if o == nil {
		var ret []string
		return ret
	}

	return o.BypassAddresses
}

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

// SetBypassAddresses sets field value
func (o *CreateNewWAFRulesetRequest) SetBypassAddresses(v []string) {
	o.BypassAddresses = v
}

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

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

type NullableCreateNewWAFRulesetRequest struct {
	value *CreateNewWAFRulesetRequest
	isSet bool
}

func (v NullableCreateNewWAFRulesetRequest) Get() *CreateNewWAFRulesetRequest {
	return v.value
}

func (v *NullableCreateNewWAFRulesetRequest) Set(val *CreateNewWAFRulesetRequest) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableCreateNewWAFRulesetRequest(val *CreateNewWAFRulesetRequest) *NullableCreateNewWAFRulesetRequest {
	return &NullableCreateNewWAFRulesetRequest{value: val, isSet: true}
}

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

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


