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

// AdminTradingStatusModel Represents the response DTO for trading status information
type AdminTradingStatusModel struct {
	// The stock symbol
	Symbol NullableString `json:"symbol,omitempty"`
	// Original timestamp in nanoseconds since epoch
	TimestampNanos *int64 `json:"timestamp_nanos,omitempty"`
	// Time when the trading status was recorded as DateTime
	Timestamp *time.Time `json:"timestamp,omitempty"`
	// Gets whether the security is currently trading on IEX
	IsTradingLive *bool `json:"is_trading_live,omitempty"`
	// Gets whether the security is halted across all US equity markets
	IsTradingHalted *bool `json:"is_trading_halted,omitempty"`
	// Gets whether the security is in Order Acceptance Period on IEX
	IsTradingInOrderAcceptancePeriod *bool `json:"is_trading_in_order_acceptance_period,omitempty"`
	// Gets whether the security is paused and in Order Acceptance Period on IEX
	IsTradingPaused *bool `json:"is_trading_paused,omitempty"`
	// Gets whether the halt reason is News Pending
	IsReasonHaltNewsPending *bool `json:"is_reason_halt_news_pending,omitempty"`
	// Gets whether the halt reason is IPO Not Yet Trading
	IsReasonIpoNotYetTrading *bool `json:"is_reason_ipo_not_yet_trading,omitempty"`
	// Gets whether the halt reason is IPO Deferred
	IsReasonIpoDeferred *bool `json:"is_reason_ipo_deferred,omitempty"`
	// Gets whether the order acceptance period reason is Halt News Dissemination
	IsReasonHaltNewsDissemination *bool `json:"is_reason_halt_news_dissemination,omitempty"`
	// Gets whether the order acceptance period reason is IPO Order Acceptance Period
	IsReasonIpoOrderAcceptancePeriod *bool `json:"is_reason_ipo_order_acceptance_period,omitempty"`
	// Gets whether the order acceptance period reason is IPO Pre-Launch Period
	IsReasonIpoPreLaunchPeriod *bool `json:"is_reason_ipo_pre_launch_period,omitempty"`
	// Gets whether the order acceptance period reason is Market-Wide Circuit Breaker Level 1 – Breached
	IsReasonMarketWideCircuitBreakerLevel1 *bool `json:"is_reason_market_wide_circuit_breaker_level1,omitempty"`
	// Gets whether the order acceptance period reason is Market-Wide Circuit Breaker Level 2 – Breached
	IsReasonMarketWideCircuitBreakerLevel2 *bool `json:"is_reason_market_wide_circuit_breaker_level2,omitempty"`
	// Gets whether the halt reason is Market-Wide Circuit Breaker Level 3 – Breached
	IsReasonMarketWideCircuitBreakerLevel3 *bool `json:"is_reason_market_wide_circuit_breaker_level3,omitempty"`
	// Gets whether the reason is Not Applicable
	IsReasonNotApplicable *bool `json:"is_reason_not_applicable,omitempty"`
	// Gets whether the halt reason is Not Available
	IsReasonNotAvailable *bool `json:"is_reason_not_available,omitempty"`
}

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

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

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

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

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

	return false
}

// SetSymbol gets a reference to the given NullableString and assigns it to the Symbol field.
func (o *AdminTradingStatusModel) SetSymbol(v string) {
	o.Symbol.Set(&v)
}
// SetSymbolNil sets the value for Symbol to be an explicit nil
func (o *AdminTradingStatusModel) SetSymbolNil() {
	o.Symbol.Set(nil)
}

// UnsetSymbol ensures that no value is present for Symbol, not even an explicit nil
func (o *AdminTradingStatusModel) UnsetSymbol() {
	o.Symbol.Unset()
}

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

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

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

	return false
}

// SetTimestampNanos gets a reference to the given int64 and assigns it to the TimestampNanos field.
func (o *AdminTradingStatusModel) SetTimestampNanos(v int64) {
	o.TimestampNanos = &v
}

// GetTimestamp returns the Timestamp field value if set, zero value otherwise.
func (o *AdminTradingStatusModel) GetTimestamp() time.Time {
	if o == nil || IsNil(o.Timestamp) {
		var ret time.Time
		return ret
	}
	return *o.Timestamp
}

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

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

	return false
}

// SetTimestamp gets a reference to the given time.Time and assigns it to the Timestamp field.
func (o *AdminTradingStatusModel) SetTimestamp(v time.Time) {
	o.Timestamp = &v
}

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

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

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

	return false
}

// SetIsTradingLive gets a reference to the given bool and assigns it to the IsTradingLive field.
func (o *AdminTradingStatusModel) SetIsTradingLive(v bool) {
	o.IsTradingLive = &v
}

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

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

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

	return false
}

// SetIsTradingHalted gets a reference to the given bool and assigns it to the IsTradingHalted field.
func (o *AdminTradingStatusModel) SetIsTradingHalted(v bool) {
	o.IsTradingHalted = &v
}

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

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

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

	return false
}

// SetIsTradingInOrderAcceptancePeriod gets a reference to the given bool and assigns it to the IsTradingInOrderAcceptancePeriod field.
func (o *AdminTradingStatusModel) SetIsTradingInOrderAcceptancePeriod(v bool) {
	o.IsTradingInOrderAcceptancePeriod = &v
}

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

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

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

	return false
}

// SetIsTradingPaused gets a reference to the given bool and assigns it to the IsTradingPaused field.
func (o *AdminTradingStatusModel) SetIsTradingPaused(v bool) {
	o.IsTradingPaused = &v
}

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

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

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

	return false
}

// SetIsReasonHaltNewsPending gets a reference to the given bool and assigns it to the IsReasonHaltNewsPending field.
func (o *AdminTradingStatusModel) SetIsReasonHaltNewsPending(v bool) {
	o.IsReasonHaltNewsPending = &v
}

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

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

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

	return false
}

// SetIsReasonIpoNotYetTrading gets a reference to the given bool and assigns it to the IsReasonIpoNotYetTrading field.
func (o *AdminTradingStatusModel) SetIsReasonIpoNotYetTrading(v bool) {
	o.IsReasonIpoNotYetTrading = &v
}

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

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

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

	return false
}

// SetIsReasonIpoDeferred gets a reference to the given bool and assigns it to the IsReasonIpoDeferred field.
func (o *AdminTradingStatusModel) SetIsReasonIpoDeferred(v bool) {
	o.IsReasonIpoDeferred = &v
}

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

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

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

	return false
}

// SetIsReasonHaltNewsDissemination gets a reference to the given bool and assigns it to the IsReasonHaltNewsDissemination field.
func (o *AdminTradingStatusModel) SetIsReasonHaltNewsDissemination(v bool) {
	o.IsReasonHaltNewsDissemination = &v
}

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

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

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

	return false
}

// SetIsReasonIpoOrderAcceptancePeriod gets a reference to the given bool and assigns it to the IsReasonIpoOrderAcceptancePeriod field.
func (o *AdminTradingStatusModel) SetIsReasonIpoOrderAcceptancePeriod(v bool) {
	o.IsReasonIpoOrderAcceptancePeriod = &v
}

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

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

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

	return false
}

// SetIsReasonIpoPreLaunchPeriod gets a reference to the given bool and assigns it to the IsReasonIpoPreLaunchPeriod field.
func (o *AdminTradingStatusModel) SetIsReasonIpoPreLaunchPeriod(v bool) {
	o.IsReasonIpoPreLaunchPeriod = &v
}

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

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

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

	return false
}

// SetIsReasonMarketWideCircuitBreakerLevel1 gets a reference to the given bool and assigns it to the IsReasonMarketWideCircuitBreakerLevel1 field.
func (o *AdminTradingStatusModel) SetIsReasonMarketWideCircuitBreakerLevel1(v bool) {
	o.IsReasonMarketWideCircuitBreakerLevel1 = &v
}

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

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

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

	return false
}

// SetIsReasonMarketWideCircuitBreakerLevel2 gets a reference to the given bool and assigns it to the IsReasonMarketWideCircuitBreakerLevel2 field.
func (o *AdminTradingStatusModel) SetIsReasonMarketWideCircuitBreakerLevel2(v bool) {
	o.IsReasonMarketWideCircuitBreakerLevel2 = &v
}

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

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

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

	return false
}

// SetIsReasonMarketWideCircuitBreakerLevel3 gets a reference to the given bool and assigns it to the IsReasonMarketWideCircuitBreakerLevel3 field.
func (o *AdminTradingStatusModel) SetIsReasonMarketWideCircuitBreakerLevel3(v bool) {
	o.IsReasonMarketWideCircuitBreakerLevel3 = &v
}

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

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

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

	return false
}

// SetIsReasonNotApplicable gets a reference to the given bool and assigns it to the IsReasonNotApplicable field.
func (o *AdminTradingStatusModel) SetIsReasonNotApplicable(v bool) {
	o.IsReasonNotApplicable = &v
}

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

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

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

	return false
}

// SetIsReasonNotAvailable gets a reference to the given bool and assigns it to the IsReasonNotAvailable field.
func (o *AdminTradingStatusModel) SetIsReasonNotAvailable(v bool) {
	o.IsReasonNotAvailable = &v
}

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

func (o AdminTradingStatusModel) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if o.Symbol.IsSet() {
		toSerialize["symbol"] = o.Symbol.Get()
	}
	if !IsNil(o.TimestampNanos) {
		toSerialize["timestamp_nanos"] = o.TimestampNanos
	}
	if !IsNil(o.Timestamp) {
		toSerialize["timestamp"] = o.Timestamp
	}
	if !IsNil(o.IsTradingLive) {
		toSerialize["is_trading_live"] = o.IsTradingLive
	}
	if !IsNil(o.IsTradingHalted) {
		toSerialize["is_trading_halted"] = o.IsTradingHalted
	}
	if !IsNil(o.IsTradingInOrderAcceptancePeriod) {
		toSerialize["is_trading_in_order_acceptance_period"] = o.IsTradingInOrderAcceptancePeriod
	}
	if !IsNil(o.IsTradingPaused) {
		toSerialize["is_trading_paused"] = o.IsTradingPaused
	}
	if !IsNil(o.IsReasonHaltNewsPending) {
		toSerialize["is_reason_halt_news_pending"] = o.IsReasonHaltNewsPending
	}
	if !IsNil(o.IsReasonIpoNotYetTrading) {
		toSerialize["is_reason_ipo_not_yet_trading"] = o.IsReasonIpoNotYetTrading
	}
	if !IsNil(o.IsReasonIpoDeferred) {
		toSerialize["is_reason_ipo_deferred"] = o.IsReasonIpoDeferred
	}
	if !IsNil(o.IsReasonHaltNewsDissemination) {
		toSerialize["is_reason_halt_news_dissemination"] = o.IsReasonHaltNewsDissemination
	}
	if !IsNil(o.IsReasonIpoOrderAcceptancePeriod) {
		toSerialize["is_reason_ipo_order_acceptance_period"] = o.IsReasonIpoOrderAcceptancePeriod
	}
	if !IsNil(o.IsReasonIpoPreLaunchPeriod) {
		toSerialize["is_reason_ipo_pre_launch_period"] = o.IsReasonIpoPreLaunchPeriod
	}
	if !IsNil(o.IsReasonMarketWideCircuitBreakerLevel1) {
		toSerialize["is_reason_market_wide_circuit_breaker_level1"] = o.IsReasonMarketWideCircuitBreakerLevel1
	}
	if !IsNil(o.IsReasonMarketWideCircuitBreakerLevel2) {
		toSerialize["is_reason_market_wide_circuit_breaker_level2"] = o.IsReasonMarketWideCircuitBreakerLevel2
	}
	if !IsNil(o.IsReasonMarketWideCircuitBreakerLevel3) {
		toSerialize["is_reason_market_wide_circuit_breaker_level3"] = o.IsReasonMarketWideCircuitBreakerLevel3
	}
	if !IsNil(o.IsReasonNotApplicable) {
		toSerialize["is_reason_not_applicable"] = o.IsReasonNotApplicable
	}
	if !IsNil(o.IsReasonNotAvailable) {
		toSerialize["is_reason_not_available"] = o.IsReasonNotAvailable
	}
	return toSerialize, nil
}

type NullableAdminTradingStatusModel struct {
	value *AdminTradingStatusModel
	isSet bool
}

func (v NullableAdminTradingStatusModel) Get() *AdminTradingStatusModel {
	return v.value
}

func (v *NullableAdminTradingStatusModel) Set(val *AdminTradingStatusModel) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableAdminTradingStatusModel(val *AdminTradingStatusModel) *NullableAdminTradingStatusModel {
	return &NullableAdminTradingStatusModel{value: val, isSet: true}
}

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

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


