/*
FinFeedAPI Stock REST API

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

API version: v1
Contact: support@apibricks.io
*/

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

package openapi

import (
	"encoding/json"
)

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

// FinFeedAPISymbolModel struct for FinFeedAPISymbolModel
type FinFeedAPISymbolModel struct {
	SymbolId NullableString `json:"symbol_id,omitempty"`
	ExchangeId NullableString `json:"exchange_id,omitempty"`
	SecurityCategory NullableString `json:"security_category,omitempty"`
	Name NullableString `json:"name,omitempty"`
	Date NullableString `json:"date,omitempty"`
	AssetClass NullableString `json:"asset_class,omitempty"`
	CfiCode NullableString `json:"cfi_code,omitempty"`
	CfiCategory NullableString `json:"cfi_category,omitempty"`
	CfiGroup NullableString `json:"cfi_group,omitempty"`
	CfiAttribute1 NullableString `json:"cfi_attribute1,omitempty"`
	CfiAttribute2 NullableString `json:"cfi_attribute2,omitempty"`
	CfiAttribute3 NullableString `json:"cfi_attribute3,omitempty"`
	CfiAttribute4 NullableString `json:"cfi_attribute4,omitempty"`
	CfiCategoryDesc NullableString `json:"cfi_category_desc,omitempty"`
	CfiGroupDesc NullableString `json:"cfi_group_desc,omitempty"`
	CfiAttribute1Desc NullableString `json:"cfi_attribute1_desc,omitempty"`
	CfiAttribute2Desc NullableString `json:"cfi_attribute2_desc,omitempty"`
	CfiAttribute3Desc NullableString `json:"cfi_attribute3_desc,omitempty"`
	CfiAttribute4Desc NullableString `json:"cfi_attribute4_desc,omitempty"`
	AdditionalProperties map[string]interface{}
}

type _FinFeedAPISymbolModel FinFeedAPISymbolModel

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

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

// GetSymbolId returns the SymbolId field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetSymbolId() string {
	if o == nil || IsNil(o.SymbolId.Get()) {
		var ret string
		return ret
	}
	return *o.SymbolId.Get()
}

// GetSymbolIdOk returns a tuple with the SymbolId 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 *FinFeedAPISymbolModel) GetSymbolIdOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.SymbolId.Get(), o.SymbolId.IsSet()
}

// HasSymbolId returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasSymbolId() bool {
	if o != nil && o.SymbolId.IsSet() {
		return true
	}

	return false
}

// SetSymbolId gets a reference to the given NullableString and assigns it to the SymbolId field.
func (o *FinFeedAPISymbolModel) SetSymbolId(v string) {
	o.SymbolId.Set(&v)
}
// SetSymbolIdNil sets the value for SymbolId to be an explicit nil
func (o *FinFeedAPISymbolModel) SetSymbolIdNil() {
	o.SymbolId.Set(nil)
}

// UnsetSymbolId ensures that no value is present for SymbolId, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetSymbolId() {
	o.SymbolId.Unset()
}

// GetExchangeId returns the ExchangeId field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetExchangeId() string {
	if o == nil || IsNil(o.ExchangeId.Get()) {
		var ret string
		return ret
	}
	return *o.ExchangeId.Get()
}

// GetExchangeIdOk returns a tuple with the ExchangeId 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 *FinFeedAPISymbolModel) GetExchangeIdOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.ExchangeId.Get(), o.ExchangeId.IsSet()
}

// HasExchangeId returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasExchangeId() bool {
	if o != nil && o.ExchangeId.IsSet() {
		return true
	}

	return false
}

// SetExchangeId gets a reference to the given NullableString and assigns it to the ExchangeId field.
func (o *FinFeedAPISymbolModel) SetExchangeId(v string) {
	o.ExchangeId.Set(&v)
}
// SetExchangeIdNil sets the value for ExchangeId to be an explicit nil
func (o *FinFeedAPISymbolModel) SetExchangeIdNil() {
	o.ExchangeId.Set(nil)
}

// UnsetExchangeId ensures that no value is present for ExchangeId, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetExchangeId() {
	o.ExchangeId.Unset()
}

// GetSecurityCategory returns the SecurityCategory field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetSecurityCategory() string {
	if o == nil || IsNil(o.SecurityCategory.Get()) {
		var ret string
		return ret
	}
	return *o.SecurityCategory.Get()
}

// GetSecurityCategoryOk returns a tuple with the SecurityCategory 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 *FinFeedAPISymbolModel) GetSecurityCategoryOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.SecurityCategory.Get(), o.SecurityCategory.IsSet()
}

// HasSecurityCategory returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasSecurityCategory() bool {
	if o != nil && o.SecurityCategory.IsSet() {
		return true
	}

	return false
}

// SetSecurityCategory gets a reference to the given NullableString and assigns it to the SecurityCategory field.
func (o *FinFeedAPISymbolModel) SetSecurityCategory(v string) {
	o.SecurityCategory.Set(&v)
}
// SetSecurityCategoryNil sets the value for SecurityCategory to be an explicit nil
func (o *FinFeedAPISymbolModel) SetSecurityCategoryNil() {
	o.SecurityCategory.Set(nil)
}

// UnsetSecurityCategory ensures that no value is present for SecurityCategory, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetSecurityCategory() {
	o.SecurityCategory.Unset()
}

// GetName returns the Name field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetName() string {
	if o == nil || IsNil(o.Name.Get()) {
		var ret string
		return ret
	}
	return *o.Name.Get()
}

// GetNameOk returns a tuple with the Name 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 *FinFeedAPISymbolModel) GetNameOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.Name.Get(), o.Name.IsSet()
}

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

	return false
}

// SetName gets a reference to the given NullableString and assigns it to the Name field.
func (o *FinFeedAPISymbolModel) SetName(v string) {
	o.Name.Set(&v)
}
// SetNameNil sets the value for Name to be an explicit nil
func (o *FinFeedAPISymbolModel) SetNameNil() {
	o.Name.Set(nil)
}

// UnsetName ensures that no value is present for Name, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetName() {
	o.Name.Unset()
}

// GetDate returns the Date field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetDate() string {
	if o == nil || IsNil(o.Date.Get()) {
		var ret string
		return ret
	}
	return *o.Date.Get()
}

// GetDateOk returns a tuple with the Date 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 *FinFeedAPISymbolModel) GetDateOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.Date.Get(), o.Date.IsSet()
}

// HasDate returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasDate() bool {
	if o != nil && o.Date.IsSet() {
		return true
	}

	return false
}

// SetDate gets a reference to the given NullableString and assigns it to the Date field.
func (o *FinFeedAPISymbolModel) SetDate(v string) {
	o.Date.Set(&v)
}
// SetDateNil sets the value for Date to be an explicit nil
func (o *FinFeedAPISymbolModel) SetDateNil() {
	o.Date.Set(nil)
}

// UnsetDate ensures that no value is present for Date, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetDate() {
	o.Date.Unset()
}

// GetAssetClass returns the AssetClass field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetAssetClass() string {
	if o == nil || IsNil(o.AssetClass.Get()) {
		var ret string
		return ret
	}
	return *o.AssetClass.Get()
}

// GetAssetClassOk returns a tuple with the AssetClass 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 *FinFeedAPISymbolModel) GetAssetClassOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.AssetClass.Get(), o.AssetClass.IsSet()
}

// HasAssetClass returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasAssetClass() bool {
	if o != nil && o.AssetClass.IsSet() {
		return true
	}

	return false
}

// SetAssetClass gets a reference to the given NullableString and assigns it to the AssetClass field.
func (o *FinFeedAPISymbolModel) SetAssetClass(v string) {
	o.AssetClass.Set(&v)
}
// SetAssetClassNil sets the value for AssetClass to be an explicit nil
func (o *FinFeedAPISymbolModel) SetAssetClassNil() {
	o.AssetClass.Set(nil)
}

// UnsetAssetClass ensures that no value is present for AssetClass, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetAssetClass() {
	o.AssetClass.Unset()
}

// GetCfiCode returns the CfiCode field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiCode() string {
	if o == nil || IsNil(o.CfiCode.Get()) {
		var ret string
		return ret
	}
	return *o.CfiCode.Get()
}

// GetCfiCodeOk returns a tuple with the CfiCode 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 *FinFeedAPISymbolModel) GetCfiCodeOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiCode.Get(), o.CfiCode.IsSet()
}

// HasCfiCode returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiCode() bool {
	if o != nil && o.CfiCode.IsSet() {
		return true
	}

	return false
}

// SetCfiCode gets a reference to the given NullableString and assigns it to the CfiCode field.
func (o *FinFeedAPISymbolModel) SetCfiCode(v string) {
	o.CfiCode.Set(&v)
}
// SetCfiCodeNil sets the value for CfiCode to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiCodeNil() {
	o.CfiCode.Set(nil)
}

// UnsetCfiCode ensures that no value is present for CfiCode, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiCode() {
	o.CfiCode.Unset()
}

// GetCfiCategory returns the CfiCategory field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiCategory() string {
	if o == nil || IsNil(o.CfiCategory.Get()) {
		var ret string
		return ret
	}
	return *o.CfiCategory.Get()
}

// GetCfiCategoryOk returns a tuple with the CfiCategory 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 *FinFeedAPISymbolModel) GetCfiCategoryOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiCategory.Get(), o.CfiCategory.IsSet()
}

// HasCfiCategory returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiCategory() bool {
	if o != nil && o.CfiCategory.IsSet() {
		return true
	}

	return false
}

// SetCfiCategory gets a reference to the given NullableString and assigns it to the CfiCategory field.
func (o *FinFeedAPISymbolModel) SetCfiCategory(v string) {
	o.CfiCategory.Set(&v)
}
// SetCfiCategoryNil sets the value for CfiCategory to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiCategoryNil() {
	o.CfiCategory.Set(nil)
}

// UnsetCfiCategory ensures that no value is present for CfiCategory, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiCategory() {
	o.CfiCategory.Unset()
}

// GetCfiGroup returns the CfiGroup field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiGroup() string {
	if o == nil || IsNil(o.CfiGroup.Get()) {
		var ret string
		return ret
	}
	return *o.CfiGroup.Get()
}

// GetCfiGroupOk returns a tuple with the CfiGroup 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 *FinFeedAPISymbolModel) GetCfiGroupOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiGroup.Get(), o.CfiGroup.IsSet()
}

// HasCfiGroup returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiGroup() bool {
	if o != nil && o.CfiGroup.IsSet() {
		return true
	}

	return false
}

// SetCfiGroup gets a reference to the given NullableString and assigns it to the CfiGroup field.
func (o *FinFeedAPISymbolModel) SetCfiGroup(v string) {
	o.CfiGroup.Set(&v)
}
// SetCfiGroupNil sets the value for CfiGroup to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiGroupNil() {
	o.CfiGroup.Set(nil)
}

// UnsetCfiGroup ensures that no value is present for CfiGroup, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiGroup() {
	o.CfiGroup.Unset()
}

// GetCfiAttribute1 returns the CfiAttribute1 field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute1() string {
	if o == nil || IsNil(o.CfiAttribute1.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute1.Get()
}

// GetCfiAttribute1Ok returns a tuple with the CfiAttribute1 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 *FinFeedAPISymbolModel) GetCfiAttribute1Ok() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute1.Get(), o.CfiAttribute1.IsSet()
}

// HasCfiAttribute1 returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute1() bool {
	if o != nil && o.CfiAttribute1.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute1 gets a reference to the given NullableString and assigns it to the CfiAttribute1 field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute1(v string) {
	o.CfiAttribute1.Set(&v)
}
// SetCfiAttribute1Nil sets the value for CfiAttribute1 to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute1Nil() {
	o.CfiAttribute1.Set(nil)
}

// UnsetCfiAttribute1 ensures that no value is present for CfiAttribute1, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute1() {
	o.CfiAttribute1.Unset()
}

// GetCfiAttribute2 returns the CfiAttribute2 field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute2() string {
	if o == nil || IsNil(o.CfiAttribute2.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute2.Get()
}

// GetCfiAttribute2Ok returns a tuple with the CfiAttribute2 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 *FinFeedAPISymbolModel) GetCfiAttribute2Ok() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute2.Get(), o.CfiAttribute2.IsSet()
}

// HasCfiAttribute2 returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute2() bool {
	if o != nil && o.CfiAttribute2.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute2 gets a reference to the given NullableString and assigns it to the CfiAttribute2 field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute2(v string) {
	o.CfiAttribute2.Set(&v)
}
// SetCfiAttribute2Nil sets the value for CfiAttribute2 to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute2Nil() {
	o.CfiAttribute2.Set(nil)
}

// UnsetCfiAttribute2 ensures that no value is present for CfiAttribute2, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute2() {
	o.CfiAttribute2.Unset()
}

// GetCfiAttribute3 returns the CfiAttribute3 field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute3() string {
	if o == nil || IsNil(o.CfiAttribute3.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute3.Get()
}

// GetCfiAttribute3Ok returns a tuple with the CfiAttribute3 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 *FinFeedAPISymbolModel) GetCfiAttribute3Ok() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute3.Get(), o.CfiAttribute3.IsSet()
}

// HasCfiAttribute3 returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute3() bool {
	if o != nil && o.CfiAttribute3.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute3 gets a reference to the given NullableString and assigns it to the CfiAttribute3 field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute3(v string) {
	o.CfiAttribute3.Set(&v)
}
// SetCfiAttribute3Nil sets the value for CfiAttribute3 to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute3Nil() {
	o.CfiAttribute3.Set(nil)
}

// UnsetCfiAttribute3 ensures that no value is present for CfiAttribute3, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute3() {
	o.CfiAttribute3.Unset()
}

// GetCfiAttribute4 returns the CfiAttribute4 field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute4() string {
	if o == nil || IsNil(o.CfiAttribute4.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute4.Get()
}

// GetCfiAttribute4Ok returns a tuple with the CfiAttribute4 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 *FinFeedAPISymbolModel) GetCfiAttribute4Ok() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute4.Get(), o.CfiAttribute4.IsSet()
}

// HasCfiAttribute4 returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute4() bool {
	if o != nil && o.CfiAttribute4.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute4 gets a reference to the given NullableString and assigns it to the CfiAttribute4 field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute4(v string) {
	o.CfiAttribute4.Set(&v)
}
// SetCfiAttribute4Nil sets the value for CfiAttribute4 to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute4Nil() {
	o.CfiAttribute4.Set(nil)
}

// UnsetCfiAttribute4 ensures that no value is present for CfiAttribute4, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute4() {
	o.CfiAttribute4.Unset()
}

// GetCfiCategoryDesc returns the CfiCategoryDesc field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiCategoryDesc() string {
	if o == nil || IsNil(o.CfiCategoryDesc.Get()) {
		var ret string
		return ret
	}
	return *o.CfiCategoryDesc.Get()
}

// GetCfiCategoryDescOk returns a tuple with the CfiCategoryDesc 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 *FinFeedAPISymbolModel) GetCfiCategoryDescOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiCategoryDesc.Get(), o.CfiCategoryDesc.IsSet()
}

// HasCfiCategoryDesc returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiCategoryDesc() bool {
	if o != nil && o.CfiCategoryDesc.IsSet() {
		return true
	}

	return false
}

// SetCfiCategoryDesc gets a reference to the given NullableString and assigns it to the CfiCategoryDesc field.
func (o *FinFeedAPISymbolModel) SetCfiCategoryDesc(v string) {
	o.CfiCategoryDesc.Set(&v)
}
// SetCfiCategoryDescNil sets the value for CfiCategoryDesc to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiCategoryDescNil() {
	o.CfiCategoryDesc.Set(nil)
}

// UnsetCfiCategoryDesc ensures that no value is present for CfiCategoryDesc, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiCategoryDesc() {
	o.CfiCategoryDesc.Unset()
}

// GetCfiGroupDesc returns the CfiGroupDesc field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiGroupDesc() string {
	if o == nil || IsNil(o.CfiGroupDesc.Get()) {
		var ret string
		return ret
	}
	return *o.CfiGroupDesc.Get()
}

// GetCfiGroupDescOk returns a tuple with the CfiGroupDesc 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 *FinFeedAPISymbolModel) GetCfiGroupDescOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiGroupDesc.Get(), o.CfiGroupDesc.IsSet()
}

// HasCfiGroupDesc returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiGroupDesc() bool {
	if o != nil && o.CfiGroupDesc.IsSet() {
		return true
	}

	return false
}

// SetCfiGroupDesc gets a reference to the given NullableString and assigns it to the CfiGroupDesc field.
func (o *FinFeedAPISymbolModel) SetCfiGroupDesc(v string) {
	o.CfiGroupDesc.Set(&v)
}
// SetCfiGroupDescNil sets the value for CfiGroupDesc to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiGroupDescNil() {
	o.CfiGroupDesc.Set(nil)
}

// UnsetCfiGroupDesc ensures that no value is present for CfiGroupDesc, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiGroupDesc() {
	o.CfiGroupDesc.Unset()
}

// GetCfiAttribute1Desc returns the CfiAttribute1Desc field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute1Desc() string {
	if o == nil || IsNil(o.CfiAttribute1Desc.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute1Desc.Get()
}

// GetCfiAttribute1DescOk returns a tuple with the CfiAttribute1Desc 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 *FinFeedAPISymbolModel) GetCfiAttribute1DescOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute1Desc.Get(), o.CfiAttribute1Desc.IsSet()
}

// HasCfiAttribute1Desc returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute1Desc() bool {
	if o != nil && o.CfiAttribute1Desc.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute1Desc gets a reference to the given NullableString and assigns it to the CfiAttribute1Desc field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute1Desc(v string) {
	o.CfiAttribute1Desc.Set(&v)
}
// SetCfiAttribute1DescNil sets the value for CfiAttribute1Desc to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute1DescNil() {
	o.CfiAttribute1Desc.Set(nil)
}

// UnsetCfiAttribute1Desc ensures that no value is present for CfiAttribute1Desc, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute1Desc() {
	o.CfiAttribute1Desc.Unset()
}

// GetCfiAttribute2Desc returns the CfiAttribute2Desc field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute2Desc() string {
	if o == nil || IsNil(o.CfiAttribute2Desc.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute2Desc.Get()
}

// GetCfiAttribute2DescOk returns a tuple with the CfiAttribute2Desc 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 *FinFeedAPISymbolModel) GetCfiAttribute2DescOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute2Desc.Get(), o.CfiAttribute2Desc.IsSet()
}

// HasCfiAttribute2Desc returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute2Desc() bool {
	if o != nil && o.CfiAttribute2Desc.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute2Desc gets a reference to the given NullableString and assigns it to the CfiAttribute2Desc field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute2Desc(v string) {
	o.CfiAttribute2Desc.Set(&v)
}
// SetCfiAttribute2DescNil sets the value for CfiAttribute2Desc to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute2DescNil() {
	o.CfiAttribute2Desc.Set(nil)
}

// UnsetCfiAttribute2Desc ensures that no value is present for CfiAttribute2Desc, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute2Desc() {
	o.CfiAttribute2Desc.Unset()
}

// GetCfiAttribute3Desc returns the CfiAttribute3Desc field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute3Desc() string {
	if o == nil || IsNil(o.CfiAttribute3Desc.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute3Desc.Get()
}

// GetCfiAttribute3DescOk returns a tuple with the CfiAttribute3Desc 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 *FinFeedAPISymbolModel) GetCfiAttribute3DescOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute3Desc.Get(), o.CfiAttribute3Desc.IsSet()
}

// HasCfiAttribute3Desc returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute3Desc() bool {
	if o != nil && o.CfiAttribute3Desc.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute3Desc gets a reference to the given NullableString and assigns it to the CfiAttribute3Desc field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute3Desc(v string) {
	o.CfiAttribute3Desc.Set(&v)
}
// SetCfiAttribute3DescNil sets the value for CfiAttribute3Desc to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute3DescNil() {
	o.CfiAttribute3Desc.Set(nil)
}

// UnsetCfiAttribute3Desc ensures that no value is present for CfiAttribute3Desc, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute3Desc() {
	o.CfiAttribute3Desc.Unset()
}

// GetCfiAttribute4Desc returns the CfiAttribute4Desc field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPISymbolModel) GetCfiAttribute4Desc() string {
	if o == nil || IsNil(o.CfiAttribute4Desc.Get()) {
		var ret string
		return ret
	}
	return *o.CfiAttribute4Desc.Get()
}

// GetCfiAttribute4DescOk returns a tuple with the CfiAttribute4Desc 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 *FinFeedAPISymbolModel) GetCfiAttribute4DescOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.CfiAttribute4Desc.Get(), o.CfiAttribute4Desc.IsSet()
}

// HasCfiAttribute4Desc returns a boolean if a field has been set.
func (o *FinFeedAPISymbolModel) HasCfiAttribute4Desc() bool {
	if o != nil && o.CfiAttribute4Desc.IsSet() {
		return true
	}

	return false
}

// SetCfiAttribute4Desc gets a reference to the given NullableString and assigns it to the CfiAttribute4Desc field.
func (o *FinFeedAPISymbolModel) SetCfiAttribute4Desc(v string) {
	o.CfiAttribute4Desc.Set(&v)
}
// SetCfiAttribute4DescNil sets the value for CfiAttribute4Desc to be an explicit nil
func (o *FinFeedAPISymbolModel) SetCfiAttribute4DescNil() {
	o.CfiAttribute4Desc.Set(nil)
}

// UnsetCfiAttribute4Desc ensures that no value is present for CfiAttribute4Desc, not even an explicit nil
func (o *FinFeedAPISymbolModel) UnsetCfiAttribute4Desc() {
	o.CfiAttribute4Desc.Unset()
}

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

func (o FinFeedAPISymbolModel) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if o.SymbolId.IsSet() {
		toSerialize["symbol_id"] = o.SymbolId.Get()
	}
	if o.ExchangeId.IsSet() {
		toSerialize["exchange_id"] = o.ExchangeId.Get()
	}
	if o.SecurityCategory.IsSet() {
		toSerialize["security_category"] = o.SecurityCategory.Get()
	}
	if o.Name.IsSet() {
		toSerialize["name"] = o.Name.Get()
	}
	if o.Date.IsSet() {
		toSerialize["date"] = o.Date.Get()
	}
	if o.AssetClass.IsSet() {
		toSerialize["asset_class"] = o.AssetClass.Get()
	}
	if o.CfiCode.IsSet() {
		toSerialize["cfi_code"] = o.CfiCode.Get()
	}
	if o.CfiCategory.IsSet() {
		toSerialize["cfi_category"] = o.CfiCategory.Get()
	}
	if o.CfiGroup.IsSet() {
		toSerialize["cfi_group"] = o.CfiGroup.Get()
	}
	if o.CfiAttribute1.IsSet() {
		toSerialize["cfi_attribute1"] = o.CfiAttribute1.Get()
	}
	if o.CfiAttribute2.IsSet() {
		toSerialize["cfi_attribute2"] = o.CfiAttribute2.Get()
	}
	if o.CfiAttribute3.IsSet() {
		toSerialize["cfi_attribute3"] = o.CfiAttribute3.Get()
	}
	if o.CfiAttribute4.IsSet() {
		toSerialize["cfi_attribute4"] = o.CfiAttribute4.Get()
	}
	if o.CfiCategoryDesc.IsSet() {
		toSerialize["cfi_category_desc"] = o.CfiCategoryDesc.Get()
	}
	if o.CfiGroupDesc.IsSet() {
		toSerialize["cfi_group_desc"] = o.CfiGroupDesc.Get()
	}
	if o.CfiAttribute1Desc.IsSet() {
		toSerialize["cfi_attribute1_desc"] = o.CfiAttribute1Desc.Get()
	}
	if o.CfiAttribute2Desc.IsSet() {
		toSerialize["cfi_attribute2_desc"] = o.CfiAttribute2Desc.Get()
	}
	if o.CfiAttribute3Desc.IsSet() {
		toSerialize["cfi_attribute3_desc"] = o.CfiAttribute3Desc.Get()
	}
	if o.CfiAttribute4Desc.IsSet() {
		toSerialize["cfi_attribute4_desc"] = o.CfiAttribute4Desc.Get()
	}

	for key, value := range o.AdditionalProperties {
		toSerialize[key] = value
	}

	return toSerialize, nil
}

func (o *FinFeedAPISymbolModel) UnmarshalJSON(data []byte) (err error) {
	varFinFeedAPISymbolModel := _FinFeedAPISymbolModel{}

	err = json.Unmarshal(data, &varFinFeedAPISymbolModel)

	if err != nil {
		return err
	}

	*o = FinFeedAPISymbolModel(varFinFeedAPISymbolModel)

	additionalProperties := make(map[string]interface{})

	if err = json.Unmarshal(data, &additionalProperties); err == nil {
		delete(additionalProperties, "symbol_id")
		delete(additionalProperties, "exchange_id")
		delete(additionalProperties, "security_category")
		delete(additionalProperties, "name")
		delete(additionalProperties, "date")
		delete(additionalProperties, "asset_class")
		delete(additionalProperties, "cfi_code")
		delete(additionalProperties, "cfi_category")
		delete(additionalProperties, "cfi_group")
		delete(additionalProperties, "cfi_attribute1")
		delete(additionalProperties, "cfi_attribute2")
		delete(additionalProperties, "cfi_attribute3")
		delete(additionalProperties, "cfi_attribute4")
		delete(additionalProperties, "cfi_category_desc")
		delete(additionalProperties, "cfi_group_desc")
		delete(additionalProperties, "cfi_attribute1_desc")
		delete(additionalProperties, "cfi_attribute2_desc")
		delete(additionalProperties, "cfi_attribute3_desc")
		delete(additionalProperties, "cfi_attribute4_desc")
		o.AdditionalProperties = additionalProperties
	}

	return err
}

type NullableFinFeedAPISymbolModel struct {
	value *FinFeedAPISymbolModel
	isSet bool
}

func (v NullableFinFeedAPISymbolModel) Get() *FinFeedAPISymbolModel {
	return v.value
}

func (v *NullableFinFeedAPISymbolModel) Set(val *FinFeedAPISymbolModel) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableFinFeedAPISymbolModel(val *FinFeedAPISymbolModel) *NullableFinFeedAPISymbolModel {
	return &NullableFinFeedAPISymbolModel{value: val, isSet: true}
}

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

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


