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

// AdminRetailLiquidityIndicatorModel Represents the response DTO for retail liquidity indicator information
type AdminRetailLiquidityIndicatorModel struct {
	// The stock symbol
	Symbol NullableString `json:"symbol,omitempty"`
	// Original timestamp in nanoseconds since epoch
	TimestampNanos *int64 `json:"timestamp_nanos,omitempty"`
	// Time when the retail liquidity indicator was recorded as DateTime
	Timestamp *time.Time `json:"timestamp,omitempty"`
	// Retail liquidity indicator as byte value
	RetailLiquidityIndicator *int32 `json:"retail_liquidity_indicator,omitempty"`
	// Retail liquidity indicator as character string
	RetailLiquidityIndicatorCode NullableString `json:"retail_liquidity_indicator_code,omitempty"`
	// Human-readable description of the retail liquidity indicator
	RetailLiquidityIndicatorText NullableString `json:"retail_liquidity_indicator_text,omitempty"`
	// Indicates if the indicator is 'Not Applicable' (' '/0x20).
	IsRetailIndicatorNotApplicable *bool `json:"is_retail_indicator_not_applicable,omitempty"`
	// Indicates if there is 'Buy interest for Retail' ('A'/0x41).
	IsRetailIndicatorBuyInterest *bool `json:"is_retail_indicator_buy_interest,omitempty"`
	// Indicates if there is 'Sell interest for Retail' ('B'/0x42).
	IsRetailIndicatorSellInterest *bool `json:"is_retail_indicator_sell_interest,omitempty"`
	// Indicates if there is 'Buy and sell interest for Retail' ('C'/0x43).
	IsRetailIndicatorBuyAndSellInterest *bool `json:"is_retail_indicator_buy_and_sell_interest,omitempty"`
}

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

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

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

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

// GetTimestampNanos returns the TimestampNanos field value if set, zero value otherwise.
func (o *AdminRetailLiquidityIndicatorModel) 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 *AdminRetailLiquidityIndicatorModel) 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 *AdminRetailLiquidityIndicatorModel) 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 *AdminRetailLiquidityIndicatorModel) SetTimestampNanos(v int64) {
	o.TimestampNanos = &v
}

// GetTimestamp returns the Timestamp field value if set, zero value otherwise.
func (o *AdminRetailLiquidityIndicatorModel) 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 *AdminRetailLiquidityIndicatorModel) 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 *AdminRetailLiquidityIndicatorModel) 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 *AdminRetailLiquidityIndicatorModel) SetTimestamp(v time.Time) {
	o.Timestamp = &v
}

// GetRetailLiquidityIndicator returns the RetailLiquidityIndicator field value if set, zero value otherwise.
func (o *AdminRetailLiquidityIndicatorModel) GetRetailLiquidityIndicator() int32 {
	if o == nil || IsNil(o.RetailLiquidityIndicator) {
		var ret int32
		return ret
	}
	return *o.RetailLiquidityIndicator
}

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

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

	return false
}

// SetRetailLiquidityIndicator gets a reference to the given int32 and assigns it to the RetailLiquidityIndicator field.
func (o *AdminRetailLiquidityIndicatorModel) SetRetailLiquidityIndicator(v int32) {
	o.RetailLiquidityIndicator = &v
}

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

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

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

	return false
}

// SetRetailLiquidityIndicatorCode gets a reference to the given NullableString and assigns it to the RetailLiquidityIndicatorCode field.
func (o *AdminRetailLiquidityIndicatorModel) SetRetailLiquidityIndicatorCode(v string) {
	o.RetailLiquidityIndicatorCode.Set(&v)
}
// SetRetailLiquidityIndicatorCodeNil sets the value for RetailLiquidityIndicatorCode to be an explicit nil
func (o *AdminRetailLiquidityIndicatorModel) SetRetailLiquidityIndicatorCodeNil() {
	o.RetailLiquidityIndicatorCode.Set(nil)
}

// UnsetRetailLiquidityIndicatorCode ensures that no value is present for RetailLiquidityIndicatorCode, not even an explicit nil
func (o *AdminRetailLiquidityIndicatorModel) UnsetRetailLiquidityIndicatorCode() {
	o.RetailLiquidityIndicatorCode.Unset()
}

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

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

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

	return false
}

// SetRetailLiquidityIndicatorText gets a reference to the given NullableString and assigns it to the RetailLiquidityIndicatorText field.
func (o *AdminRetailLiquidityIndicatorModel) SetRetailLiquidityIndicatorText(v string) {
	o.RetailLiquidityIndicatorText.Set(&v)
}
// SetRetailLiquidityIndicatorTextNil sets the value for RetailLiquidityIndicatorText to be an explicit nil
func (o *AdminRetailLiquidityIndicatorModel) SetRetailLiquidityIndicatorTextNil() {
	o.RetailLiquidityIndicatorText.Set(nil)
}

// UnsetRetailLiquidityIndicatorText ensures that no value is present for RetailLiquidityIndicatorText, not even an explicit nil
func (o *AdminRetailLiquidityIndicatorModel) UnsetRetailLiquidityIndicatorText() {
	o.RetailLiquidityIndicatorText.Unset()
}

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

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

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

	return false
}

// SetIsRetailIndicatorNotApplicable gets a reference to the given bool and assigns it to the IsRetailIndicatorNotApplicable field.
func (o *AdminRetailLiquidityIndicatorModel) SetIsRetailIndicatorNotApplicable(v bool) {
	o.IsRetailIndicatorNotApplicable = &v
}

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

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

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

	return false
}

// SetIsRetailIndicatorBuyInterest gets a reference to the given bool and assigns it to the IsRetailIndicatorBuyInterest field.
func (o *AdminRetailLiquidityIndicatorModel) SetIsRetailIndicatorBuyInterest(v bool) {
	o.IsRetailIndicatorBuyInterest = &v
}

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

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

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

	return false
}

// SetIsRetailIndicatorSellInterest gets a reference to the given bool and assigns it to the IsRetailIndicatorSellInterest field.
func (o *AdminRetailLiquidityIndicatorModel) SetIsRetailIndicatorSellInterest(v bool) {
	o.IsRetailIndicatorSellInterest = &v
}

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

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

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

	return false
}

// SetIsRetailIndicatorBuyAndSellInterest gets a reference to the given bool and assigns it to the IsRetailIndicatorBuyAndSellInterest field.
func (o *AdminRetailLiquidityIndicatorModel) SetIsRetailIndicatorBuyAndSellInterest(v bool) {
	o.IsRetailIndicatorBuyAndSellInterest = &v
}

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

func (o AdminRetailLiquidityIndicatorModel) 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.RetailLiquidityIndicator) {
		toSerialize["retail_liquidity_indicator"] = o.RetailLiquidityIndicator
	}
	if o.RetailLiquidityIndicatorCode.IsSet() {
		toSerialize["retail_liquidity_indicator_code"] = o.RetailLiquidityIndicatorCode.Get()
	}
	if o.RetailLiquidityIndicatorText.IsSet() {
		toSerialize["retail_liquidity_indicator_text"] = o.RetailLiquidityIndicatorText.Get()
	}
	if !IsNil(o.IsRetailIndicatorNotApplicable) {
		toSerialize["is_retail_indicator_not_applicable"] = o.IsRetailIndicatorNotApplicable
	}
	if !IsNil(o.IsRetailIndicatorBuyInterest) {
		toSerialize["is_retail_indicator_buy_interest"] = o.IsRetailIndicatorBuyInterest
	}
	if !IsNil(o.IsRetailIndicatorSellInterest) {
		toSerialize["is_retail_indicator_sell_interest"] = o.IsRetailIndicatorSellInterest
	}
	if !IsNil(o.IsRetailIndicatorBuyAndSellInterest) {
		toSerialize["is_retail_indicator_buy_and_sell_interest"] = o.IsRetailIndicatorBuyAndSellInterest
	}
	return toSerialize, nil
}

type NullableAdminRetailLiquidityIndicatorModel struct {
	value *AdminRetailLiquidityIndicatorModel
	isSet bool
}

func (v NullableAdminRetailLiquidityIndicatorModel) Get() *AdminRetailLiquidityIndicatorModel {
	return v.value
}

func (v *NullableAdminRetailLiquidityIndicatorModel) Set(val *AdminRetailLiquidityIndicatorModel) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableAdminRetailLiquidityIndicatorModel(val *AdminRetailLiquidityIndicatorModel) *NullableAdminRetailLiquidityIndicatorModel {
	return &NullableAdminRetailLiquidityIndicatorModel{value: val, isSet: true}
}

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

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


