// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

package shared

import (
	"github.com/airbytehq/terraform-provider-airbyte/internal/sdk/internal/utils"
	"time"
)

type SourceFinnworldsUpdate struct {
	// For example 10y, 5y, 2y...
	BondType []any `json:"bond_type,omitempty"`
	// Options Available: beef, cheese, oil, ...
	Commodities []any `json:"commodities,omitempty"`
	// brazil, united states, italia, japan
	Countries []any  `json:"countries,omitempty"`
	Key       string `json:"key"`
	// Choose isin, ticker, reg_lei or cik
	List                  *string   `default:"ticker" json:"list"`
	ListCountriesForBonds *string   `default:"country" json:"list_countries_for_bonds"`
	StartDate             time.Time `json:"start_date"`
	// AAPL, T, MU, GOOG
	Tickers []any `json:"tickers,omitempty"`
}

func (s SourceFinnworldsUpdate) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(s, "", false)
}

func (s *SourceFinnworldsUpdate) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &s, "", false, false); err != nil {
		return err
	}
	return nil
}

func (o *SourceFinnworldsUpdate) GetBondType() []any {
	if o == nil {
		return nil
	}
	return o.BondType
}

func (o *SourceFinnworldsUpdate) GetCommodities() []any {
	if o == nil {
		return nil
	}
	return o.Commodities
}

func (o *SourceFinnworldsUpdate) GetCountries() []any {
	if o == nil {
		return nil
	}
	return o.Countries
}

func (o *SourceFinnworldsUpdate) GetKey() string {
	if o == nil {
		return ""
	}
	return o.Key
}

func (o *SourceFinnworldsUpdate) GetList() *string {
	if o == nil {
		return nil
	}
	return o.List
}

func (o *SourceFinnworldsUpdate) GetListCountriesForBonds() *string {
	if o == nil {
		return nil
	}
	return o.ListCountriesForBonds
}

func (o *SourceFinnworldsUpdate) GetStartDate() time.Time {
	if o == nil {
		return time.Time{}
	}
	return o.StartDate
}

func (o *SourceFinnworldsUpdate) GetTickers() []any {
	if o == nil {
		return nil
	}
	return o.Tickers
}
