/*
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"
	"time"
)

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

// FinFeedAPIExchangeModel struct for FinFeedAPIExchangeModel
type FinFeedAPIExchangeModel struct {
	ExchangeId NullableString `json:"exchange_id,omitempty"`
	LastDatapointDate NullableString `json:"last_datapoint_date,omitempty"`
	Mic NullableString `json:"mic,omitempty"`
	OperatingMic NullableString `json:"operating_mic,omitempty"`
	OprtSgmt NullableString `json:"oprt_sgmt,omitempty"`
	MarketNameInstitutionDescription NullableString `json:"market_name_institution_description,omitempty"`
	LegalEntityName NullableString `json:"legal_entity_name,omitempty"`
	Lei NullableString `json:"lei,omitempty"`
	MarketCategoryCode NullableString `json:"market_category_code,omitempty"`
	Acronym NullableString `json:"acronym,omitempty"`
	IsoCountryCode NullableString `json:"iso_country_code,omitempty"`
	City NullableString `json:"city,omitempty"`
	Website NullableString `json:"website,omitempty"`
	Status NullableString `json:"status,omitempty"`
	CreationDate NullableTime `json:"creation_date,omitempty"`
	LastUpdateDate NullableTime `json:"last_update_date,omitempty"`
	LastValidationDate NullableTime `json:"last_validation_date,omitempty"`
	ExpiryDate NullableTime `json:"expiry_date,omitempty"`
	Comments NullableString `json:"comments,omitempty"`
	AdditionalProperties map[string]interface{}
}

type _FinFeedAPIExchangeModel FinFeedAPIExchangeModel

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

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

// GetExchangeId returns the ExchangeId field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPIExchangeModel) 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 *FinFeedAPIExchangeModel) 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 *FinFeedAPIExchangeModel) 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 *FinFeedAPIExchangeModel) SetExchangeId(v string) {
	o.ExchangeId.Set(&v)
}
// SetExchangeIdNil sets the value for ExchangeId to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetExchangeIdNil() {
	o.ExchangeId.Set(nil)
}

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

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

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

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

	return false
}

// SetLastDatapointDate gets a reference to the given NullableString and assigns it to the LastDatapointDate field.
func (o *FinFeedAPIExchangeModel) SetLastDatapointDate(v string) {
	o.LastDatapointDate.Set(&v)
}
// SetLastDatapointDateNil sets the value for LastDatapointDate to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetLastDatapointDateNil() {
	o.LastDatapointDate.Set(nil)
}

// UnsetLastDatapointDate ensures that no value is present for LastDatapointDate, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetLastDatapointDate() {
	o.LastDatapointDate.Unset()
}

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

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

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

	return false
}

// SetMic gets a reference to the given NullableString and assigns it to the Mic field.
func (o *FinFeedAPIExchangeModel) SetMic(v string) {
	o.Mic.Set(&v)
}
// SetMicNil sets the value for Mic to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetMicNil() {
	o.Mic.Set(nil)
}

// UnsetMic ensures that no value is present for Mic, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetMic() {
	o.Mic.Unset()
}

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

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

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

	return false
}

// SetOperatingMic gets a reference to the given NullableString and assigns it to the OperatingMic field.
func (o *FinFeedAPIExchangeModel) SetOperatingMic(v string) {
	o.OperatingMic.Set(&v)
}
// SetOperatingMicNil sets the value for OperatingMic to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetOperatingMicNil() {
	o.OperatingMic.Set(nil)
}

// UnsetOperatingMic ensures that no value is present for OperatingMic, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetOperatingMic() {
	o.OperatingMic.Unset()
}

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

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

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

	return false
}

// SetOprtSgmt gets a reference to the given NullableString and assigns it to the OprtSgmt field.
func (o *FinFeedAPIExchangeModel) SetOprtSgmt(v string) {
	o.OprtSgmt.Set(&v)
}
// SetOprtSgmtNil sets the value for OprtSgmt to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetOprtSgmtNil() {
	o.OprtSgmt.Set(nil)
}

// UnsetOprtSgmt ensures that no value is present for OprtSgmt, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetOprtSgmt() {
	o.OprtSgmt.Unset()
}

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

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

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

	return false
}

// SetMarketNameInstitutionDescription gets a reference to the given NullableString and assigns it to the MarketNameInstitutionDescription field.
func (o *FinFeedAPIExchangeModel) SetMarketNameInstitutionDescription(v string) {
	o.MarketNameInstitutionDescription.Set(&v)
}
// SetMarketNameInstitutionDescriptionNil sets the value for MarketNameInstitutionDescription to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetMarketNameInstitutionDescriptionNil() {
	o.MarketNameInstitutionDescription.Set(nil)
}

// UnsetMarketNameInstitutionDescription ensures that no value is present for MarketNameInstitutionDescription, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetMarketNameInstitutionDescription() {
	o.MarketNameInstitutionDescription.Unset()
}

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

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

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

	return false
}

// SetLegalEntityName gets a reference to the given NullableString and assigns it to the LegalEntityName field.
func (o *FinFeedAPIExchangeModel) SetLegalEntityName(v string) {
	o.LegalEntityName.Set(&v)
}
// SetLegalEntityNameNil sets the value for LegalEntityName to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetLegalEntityNameNil() {
	o.LegalEntityName.Set(nil)
}

// UnsetLegalEntityName ensures that no value is present for LegalEntityName, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetLegalEntityName() {
	o.LegalEntityName.Unset()
}

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

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

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

	return false
}

// SetLei gets a reference to the given NullableString and assigns it to the Lei field.
func (o *FinFeedAPIExchangeModel) SetLei(v string) {
	o.Lei.Set(&v)
}
// SetLeiNil sets the value for Lei to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetLeiNil() {
	o.Lei.Set(nil)
}

// UnsetLei ensures that no value is present for Lei, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetLei() {
	o.Lei.Unset()
}

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

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

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

	return false
}

// SetMarketCategoryCode gets a reference to the given NullableString and assigns it to the MarketCategoryCode field.
func (o *FinFeedAPIExchangeModel) SetMarketCategoryCode(v string) {
	o.MarketCategoryCode.Set(&v)
}
// SetMarketCategoryCodeNil sets the value for MarketCategoryCode to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetMarketCategoryCodeNil() {
	o.MarketCategoryCode.Set(nil)
}

// UnsetMarketCategoryCode ensures that no value is present for MarketCategoryCode, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetMarketCategoryCode() {
	o.MarketCategoryCode.Unset()
}

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

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

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

	return false
}

// SetAcronym gets a reference to the given NullableString and assigns it to the Acronym field.
func (o *FinFeedAPIExchangeModel) SetAcronym(v string) {
	o.Acronym.Set(&v)
}
// SetAcronymNil sets the value for Acronym to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetAcronymNil() {
	o.Acronym.Set(nil)
}

// UnsetAcronym ensures that no value is present for Acronym, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetAcronym() {
	o.Acronym.Unset()
}

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

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

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

	return false
}

// SetIsoCountryCode gets a reference to the given NullableString and assigns it to the IsoCountryCode field.
func (o *FinFeedAPIExchangeModel) SetIsoCountryCode(v string) {
	o.IsoCountryCode.Set(&v)
}
// SetIsoCountryCodeNil sets the value for IsoCountryCode to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetIsoCountryCodeNil() {
	o.IsoCountryCode.Set(nil)
}

// UnsetIsoCountryCode ensures that no value is present for IsoCountryCode, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetIsoCountryCode() {
	o.IsoCountryCode.Unset()
}

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

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

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

	return false
}

// SetCity gets a reference to the given NullableString and assigns it to the City field.
func (o *FinFeedAPIExchangeModel) SetCity(v string) {
	o.City.Set(&v)
}
// SetCityNil sets the value for City to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetCityNil() {
	o.City.Set(nil)
}

// UnsetCity ensures that no value is present for City, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetCity() {
	o.City.Unset()
}

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

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

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

	return false
}

// SetWebsite gets a reference to the given NullableString and assigns it to the Website field.
func (o *FinFeedAPIExchangeModel) SetWebsite(v string) {
	o.Website.Set(&v)
}
// SetWebsiteNil sets the value for Website to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetWebsiteNil() {
	o.Website.Set(nil)
}

// UnsetWebsite ensures that no value is present for Website, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetWebsite() {
	o.Website.Unset()
}

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

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

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

	return false
}

// SetStatus gets a reference to the given NullableString and assigns it to the Status field.
func (o *FinFeedAPIExchangeModel) SetStatus(v string) {
	o.Status.Set(&v)
}
// SetStatusNil sets the value for Status to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetStatusNil() {
	o.Status.Set(nil)
}

// UnsetStatus ensures that no value is present for Status, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetStatus() {
	o.Status.Unset()
}

// GetCreationDate returns the CreationDate field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPIExchangeModel) GetCreationDate() time.Time {
	if o == nil || IsNil(o.CreationDate.Get()) {
		var ret time.Time
		return ret
	}
	return *o.CreationDate.Get()
}

// GetCreationDateOk returns a tuple with the CreationDate 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 *FinFeedAPIExchangeModel) GetCreationDateOk() (*time.Time, bool) {
	if o == nil {
		return nil, false
	}
	return o.CreationDate.Get(), o.CreationDate.IsSet()
}

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

	return false
}

// SetCreationDate gets a reference to the given NullableTime and assigns it to the CreationDate field.
func (o *FinFeedAPIExchangeModel) SetCreationDate(v time.Time) {
	o.CreationDate.Set(&v)
}
// SetCreationDateNil sets the value for CreationDate to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetCreationDateNil() {
	o.CreationDate.Set(nil)
}

// UnsetCreationDate ensures that no value is present for CreationDate, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetCreationDate() {
	o.CreationDate.Unset()
}

// GetLastUpdateDate returns the LastUpdateDate field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPIExchangeModel) GetLastUpdateDate() time.Time {
	if o == nil || IsNil(o.LastUpdateDate.Get()) {
		var ret time.Time
		return ret
	}
	return *o.LastUpdateDate.Get()
}

// GetLastUpdateDateOk returns a tuple with the LastUpdateDate 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 *FinFeedAPIExchangeModel) GetLastUpdateDateOk() (*time.Time, bool) {
	if o == nil {
		return nil, false
	}
	return o.LastUpdateDate.Get(), o.LastUpdateDate.IsSet()
}

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

	return false
}

// SetLastUpdateDate gets a reference to the given NullableTime and assigns it to the LastUpdateDate field.
func (o *FinFeedAPIExchangeModel) SetLastUpdateDate(v time.Time) {
	o.LastUpdateDate.Set(&v)
}
// SetLastUpdateDateNil sets the value for LastUpdateDate to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetLastUpdateDateNil() {
	o.LastUpdateDate.Set(nil)
}

// UnsetLastUpdateDate ensures that no value is present for LastUpdateDate, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetLastUpdateDate() {
	o.LastUpdateDate.Unset()
}

// GetLastValidationDate returns the LastValidationDate field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPIExchangeModel) GetLastValidationDate() time.Time {
	if o == nil || IsNil(o.LastValidationDate.Get()) {
		var ret time.Time
		return ret
	}
	return *o.LastValidationDate.Get()
}

// GetLastValidationDateOk returns a tuple with the LastValidationDate 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 *FinFeedAPIExchangeModel) GetLastValidationDateOk() (*time.Time, bool) {
	if o == nil {
		return nil, false
	}
	return o.LastValidationDate.Get(), o.LastValidationDate.IsSet()
}

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

	return false
}

// SetLastValidationDate gets a reference to the given NullableTime and assigns it to the LastValidationDate field.
func (o *FinFeedAPIExchangeModel) SetLastValidationDate(v time.Time) {
	o.LastValidationDate.Set(&v)
}
// SetLastValidationDateNil sets the value for LastValidationDate to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetLastValidationDateNil() {
	o.LastValidationDate.Set(nil)
}

// UnsetLastValidationDate ensures that no value is present for LastValidationDate, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetLastValidationDate() {
	o.LastValidationDate.Unset()
}

// GetExpiryDate returns the ExpiryDate field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *FinFeedAPIExchangeModel) GetExpiryDate() time.Time {
	if o == nil || IsNil(o.ExpiryDate.Get()) {
		var ret time.Time
		return ret
	}
	return *o.ExpiryDate.Get()
}

// GetExpiryDateOk returns a tuple with the ExpiryDate 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 *FinFeedAPIExchangeModel) GetExpiryDateOk() (*time.Time, bool) {
	if o == nil {
		return nil, false
	}
	return o.ExpiryDate.Get(), o.ExpiryDate.IsSet()
}

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

	return false
}

// SetExpiryDate gets a reference to the given NullableTime and assigns it to the ExpiryDate field.
func (o *FinFeedAPIExchangeModel) SetExpiryDate(v time.Time) {
	o.ExpiryDate.Set(&v)
}
// SetExpiryDateNil sets the value for ExpiryDate to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetExpiryDateNil() {
	o.ExpiryDate.Set(nil)
}

// UnsetExpiryDate ensures that no value is present for ExpiryDate, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetExpiryDate() {
	o.ExpiryDate.Unset()
}

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

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

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

	return false
}

// SetComments gets a reference to the given NullableString and assigns it to the Comments field.
func (o *FinFeedAPIExchangeModel) SetComments(v string) {
	o.Comments.Set(&v)
}
// SetCommentsNil sets the value for Comments to be an explicit nil
func (o *FinFeedAPIExchangeModel) SetCommentsNil() {
	o.Comments.Set(nil)
}

// UnsetComments ensures that no value is present for Comments, not even an explicit nil
func (o *FinFeedAPIExchangeModel) UnsetComments() {
	o.Comments.Unset()
}

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

func (o FinFeedAPIExchangeModel) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if o.ExchangeId.IsSet() {
		toSerialize["exchange_id"] = o.ExchangeId.Get()
	}
	if o.LastDatapointDate.IsSet() {
		toSerialize["last_datapoint_date"] = o.LastDatapointDate.Get()
	}
	if o.Mic.IsSet() {
		toSerialize["mic"] = o.Mic.Get()
	}
	if o.OperatingMic.IsSet() {
		toSerialize["operating_mic"] = o.OperatingMic.Get()
	}
	if o.OprtSgmt.IsSet() {
		toSerialize["oprt_sgmt"] = o.OprtSgmt.Get()
	}
	if o.MarketNameInstitutionDescription.IsSet() {
		toSerialize["market_name_institution_description"] = o.MarketNameInstitutionDescription.Get()
	}
	if o.LegalEntityName.IsSet() {
		toSerialize["legal_entity_name"] = o.LegalEntityName.Get()
	}
	if o.Lei.IsSet() {
		toSerialize["lei"] = o.Lei.Get()
	}
	if o.MarketCategoryCode.IsSet() {
		toSerialize["market_category_code"] = o.MarketCategoryCode.Get()
	}
	if o.Acronym.IsSet() {
		toSerialize["acronym"] = o.Acronym.Get()
	}
	if o.IsoCountryCode.IsSet() {
		toSerialize["iso_country_code"] = o.IsoCountryCode.Get()
	}
	if o.City.IsSet() {
		toSerialize["city"] = o.City.Get()
	}
	if o.Website.IsSet() {
		toSerialize["website"] = o.Website.Get()
	}
	if o.Status.IsSet() {
		toSerialize["status"] = o.Status.Get()
	}
	if o.CreationDate.IsSet() {
		toSerialize["creation_date"] = o.CreationDate.Get()
	}
	if o.LastUpdateDate.IsSet() {
		toSerialize["last_update_date"] = o.LastUpdateDate.Get()
	}
	if o.LastValidationDate.IsSet() {
		toSerialize["last_validation_date"] = o.LastValidationDate.Get()
	}
	if o.ExpiryDate.IsSet() {
		toSerialize["expiry_date"] = o.ExpiryDate.Get()
	}
	if o.Comments.IsSet() {
		toSerialize["comments"] = o.Comments.Get()
	}

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

	return toSerialize, nil
}

func (o *FinFeedAPIExchangeModel) UnmarshalJSON(data []byte) (err error) {
	varFinFeedAPIExchangeModel := _FinFeedAPIExchangeModel{}

	err = json.Unmarshal(data, &varFinFeedAPIExchangeModel)

	if err != nil {
		return err
	}

	*o = FinFeedAPIExchangeModel(varFinFeedAPIExchangeModel)

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

	if err = json.Unmarshal(data, &additionalProperties); err == nil {
		delete(additionalProperties, "exchange_id")
		delete(additionalProperties, "last_datapoint_date")
		delete(additionalProperties, "mic")
		delete(additionalProperties, "operating_mic")
		delete(additionalProperties, "oprt_sgmt")
		delete(additionalProperties, "market_name_institution_description")
		delete(additionalProperties, "legal_entity_name")
		delete(additionalProperties, "lei")
		delete(additionalProperties, "market_category_code")
		delete(additionalProperties, "acronym")
		delete(additionalProperties, "iso_country_code")
		delete(additionalProperties, "city")
		delete(additionalProperties, "website")
		delete(additionalProperties, "status")
		delete(additionalProperties, "creation_date")
		delete(additionalProperties, "last_update_date")
		delete(additionalProperties, "last_validation_date")
		delete(additionalProperties, "expiry_date")
		delete(additionalProperties, "comments")
		o.AdditionalProperties = additionalProperties
	}

	return err
}

type NullableFinFeedAPIExchangeModel struct {
	value *FinFeedAPIExchangeModel
	isSet bool
}

func (v NullableFinFeedAPIExchangeModel) Get() *FinFeedAPIExchangeModel {
	return v.value
}

func (v *NullableFinFeedAPIExchangeModel) Set(val *FinFeedAPIExchangeModel) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableFinFeedAPIExchangeModel(val *FinFeedAPIExchangeModel) *NullableFinFeedAPIExchangeModel {
	return &NullableFinFeedAPIExchangeModel{value: val, isSet: true}
}

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

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


