feat: add CI check for valid API spec + remove unsupported sections

This commit is contained in:
Cameron Yick
2025-12-14 00:13:21 -05:00
parent a906ce01d9
commit e1d44e953e
3 changed files with 177 additions and 176 deletions

View File

@@ -38,108 +38,119 @@ security:
# ============================================================================
# PATHS - API Endpoints
# ============================================================================
paths:
# NOTE: Path references are commented out until their corresponding path files
# are created. Each PR that adds a path file should uncomment its section.
paths: {}
# --------------------------------------------------------------------------
# End-of-Day Endpoints (2 endpoints)
# TODO: Uncomment when ./paths/end-of-day.yaml is created
# --------------------------------------------------------------------------
/tiingo/daily/{ticker}/prices:
$ref: "./paths/end-of-day.yaml#/daily-prices"
/tiingo/daily/{ticker}:
$ref: "./paths/end-of-day.yaml#/daily-meta"
# /tiingo/daily/{ticker}/prices:
# $ref: "./paths/end-of-day.yaml#/daily-prices"
#
# /tiingo/daily/{ticker}:
# $ref: "./paths/end-of-day.yaml#/daily-meta"
# --------------------------------------------------------------------------
# News Endpoints (3 endpoints)
# TODO: Uncomment when ./paths/news.yaml is created
# --------------------------------------------------------------------------
/tiingo/news:
$ref: "./paths/news.yaml#/news"
/tiingo/news/bulk_download:
$ref: "./paths/news.yaml#/bulk-list"
/tiingo/news/bulk_download/{id}:
$ref: "./paths/news.yaml#/bulk-download"
# /tiingo/news:
# $ref: "./paths/news.yaml#/news"
#
# /tiingo/news/bulk_download:
# $ref: "./paths/news.yaml#/bulk-list"
#
# /tiingo/news/bulk_download/{id}:
# $ref: "./paths/news.yaml#/bulk-download"
# --------------------------------------------------------------------------
# Crypto Endpoints (3 endpoints)
# TODO: Uncomment when ./paths/crypto.yaml is created
# --------------------------------------------------------------------------
/tiingo/crypto/prices:
$ref: "./paths/crypto.yaml#/crypto-prices"
/tiingo/crypto:
$ref: "./paths/crypto.yaml#/crypto-meta"
/tiingo/crypto/top:
$ref: "./paths/crypto.yaml#/crypto-top"
# /tiingo/crypto/prices:
# $ref: "./paths/crypto.yaml#/crypto-prices"
#
# /tiingo/crypto:
# $ref: "./paths/crypto.yaml#/crypto-meta"
#
# /tiingo/crypto/top:
# $ref: "./paths/crypto.yaml#/crypto-top"
# --------------------------------------------------------------------------
# Forex Endpoints (3 endpoints)
# TODO: Uncomment when ./paths/forex.yaml is created
# --------------------------------------------------------------------------
/tiingo/fx/{ticker}:
$ref: "./paths/forex.yaml#/forex-single"
/tiingo/fx/top:
$ref: "./paths/forex.yaml#/forex-top"
/tiingo/fx/{ticker}/prices:
$ref: "./paths/forex.yaml#/forex-prices"
# /tiingo/fx/{ticker}:
# $ref: "./paths/forex.yaml#/forex-single"
#
# /tiingo/fx/top:
# $ref: "./paths/forex.yaml#/forex-top"
#
# /tiingo/fx/{ticker}/prices:
# $ref: "./paths/forex.yaml#/forex-prices"
# --------------------------------------------------------------------------
# IEX Endpoints (3 endpoints)
# TODO: Uncomment when ./paths/iex.yaml is created
# --------------------------------------------------------------------------
/iex:
$ref: "./paths/iex.yaml#/iex-all"
/iex/{ticker}:
$ref: "./paths/iex.yaml#/iex-single"
/iex/{ticker}/prices:
$ref: "./paths/iex.yaml#/iex-prices"
# /iex:
# $ref: "./paths/iex.yaml#/iex-all"
#
# /iex/{ticker}:
# $ref: "./paths/iex.yaml#/iex-single"
#
# /iex/{ticker}/prices:
# $ref: "./paths/iex.yaml#/iex-prices"
# --------------------------------------------------------------------------
# Fundamentals Endpoints (4 endpoints)
# TODO: Uncomment when ./paths/fundamentals.yaml is created
# --------------------------------------------------------------------------
/tiingo/fundamentals/definitions:
$ref: "./paths/fundamentals.yaml#/definitions"
/tiingo/fundamentals/{ticker}/statements:
$ref: "./paths/fundamentals.yaml#/statements"
/tiingo/fundamentals/{ticker}/daily:
$ref: "./paths/fundamentals.yaml#/daily"
/tiingo/fundamentals/meta:
$ref: "./paths/fundamentals.yaml#/meta"
# /tiingo/fundamentals/definitions:
# $ref: "./paths/fundamentals.yaml#/definitions"
#
# /tiingo/fundamentals/{ticker}/statements:
# $ref: "./paths/fundamentals.yaml#/statements"
#
# /tiingo/fundamentals/{ticker}/daily:
# $ref: "./paths/fundamentals.yaml#/daily"
#
# /tiingo/fundamentals/meta:
# $ref: "./paths/fundamentals.yaml#/meta"
# --------------------------------------------------------------------------
# Funds Endpoints (2 endpoints)
# TODO: Uncomment when ./paths/funds.yaml is created
# --------------------------------------------------------------------------
/tiingo/funds/{ticker}:
$ref: "./paths/funds.yaml#/fund-overview"
/tiingo/funds/{ticker}/metrics:
$ref: "./paths/funds.yaml#/fund-metrics"
# /tiingo/funds/{ticker}:
# $ref: "./paths/funds.yaml#/fund-overview"
#
# /tiingo/funds/{ticker}/metrics:
# $ref: "./paths/funds.yaml#/fund-metrics"
# --------------------------------------------------------------------------
# Dividends/Distributions Endpoints (3 endpoints)
# TODO: Uncomment when ./paths/dividends.yaml is created
# --------------------------------------------------------------------------
/tiingo/corporate-actions/distributions:
$ref: "./paths/dividends.yaml#/distributions-batch"
/tiingo/corporate-actions/{ticker}/distributions:
$ref: "./paths/dividends.yaml#/distributions-ticker"
/tiingo/corporate-actions/{ticker}/distribution-yield:
$ref: "./paths/dividends.yaml#/distribution-yield"
# /tiingo/corporate-actions/distributions:
# $ref: "./paths/dividends.yaml#/distributions-batch"
#
# /tiingo/corporate-actions/{ticker}/distributions:
# $ref: "./paths/dividends.yaml#/distributions-ticker"
#
# /tiingo/corporate-actions/{ticker}/distribution-yield:
# $ref: "./paths/dividends.yaml#/distribution-yield"
# --------------------------------------------------------------------------
# Splits Endpoints (2 endpoints)
# TODO: Uncomment when ./paths/splits.yaml is created
# --------------------------------------------------------------------------
/tiingo/corporate-actions/splits:
$ref: "./paths/splits.yaml#/splits-batch"
/tiingo/corporate-actions/{ticker}/splits:
$ref: "./paths/splits.yaml#/splits-ticker"
# /tiingo/corporate-actions/splits:
# $ref: "./paths/splits.yaml#/splits-batch"
#
# /tiingo/corporate-actions/{ticker}/splits:
# $ref: "./paths/splits.yaml#/splits-ticker"
# ============================================================================
# COMPONENTS - Reusable definitions

View File

@@ -2,6 +2,9 @@
# This file provides a centralized index of all schema components across the Tiingo API
# organized by endpoint category. Each schema is defined with a YAML anchor and references
# the actual schema definition from its respective file.
#
# NOTE: Schema references are commented out until their corresponding schema files are created.
# Each PR that adds a schema file should uncomment its section.
# ========================================================================
# COMMON SCHEMAS - Shared across all endpoints
@@ -27,142 +30,151 @@ ErrorResponse: &ErrorResponse
# END-OF-DAY STOCK PRICE SCHEMAS
# Reference: https://www.tiingo.com/documentation/end-of-day
# File: ./eod-schemas.yaml
# TODO: Uncomment when ./eod-schemas.yaml is created
# ========================================================================
PriceData: &PriceData
$ref: './eod-schemas.yaml#/PriceData'
TickerMetadata: &TickerMetadata
$ref: './eod-schemas.yaml#/TickerMetadata'
# PriceData: &PriceData
# $ref: './eod-schemas.yaml#/PriceData'
#
# TickerMetadata: &TickerMetadata
# $ref: './eod-schemas.yaml#/TickerMetadata'
# ========================================================================
# NEWS API SCHEMAS
# File: ./news-schemas.yaml
# TODO: Uncomment when ./news-schemas.yaml is created
# ========================================================================
NewsArticle: &NewsArticle
$ref: './news-schemas.yaml#/NewsArticle'
BulkDownloadFile: &BulkDownloadFile
$ref: './news-schemas.yaml#/BulkDownloadFile'
# NewsArticle: &NewsArticle
# $ref: './news-schemas.yaml#/NewsArticle'
#
# BulkDownloadFile: &BulkDownloadFile
# $ref: './news-schemas.yaml#/BulkDownloadFile'
# ========================================================================
# CRYPTOCURRENCY API SCHEMAS
# File: ./crypto-schemas.yaml
# TODO: Uncomment when ./crypto-schemas.yaml is created
# ========================================================================
CryptoCurrency: &CryptoCurrency
$ref: './crypto-schemas.yaml#/CryptoCurrency'
CryptoTicker: &CryptoTicker
$ref: './crypto-schemas.yaml#/CryptoTicker'
ResampleFreq: &ResampleFreq
$ref: './crypto-schemas.yaml#/ResampleFreq'
PriceDataItem: &PriceDataItem
$ref: './crypto-schemas.yaml#/PriceDataItem'
ExchangeDataItem: &ExchangeDataItem
$ref: './crypto-schemas.yaml#/ExchangeDataItem'
CryptoPrice: &CryptoPrice
$ref: './crypto-schemas.yaml#/CryptoPrice'
CryptoMetadata: &CryptoMetadata
$ref: './crypto-schemas.yaml#/CryptoMetadata'
TopOfBookData: &TopOfBookData
$ref: './crypto-schemas.yaml#/TopOfBookData'
TopOfBookExchangeData: &TopOfBookExchangeData
$ref: './crypto-schemas.yaml#/TopOfBookExchangeData'
CryptoTopOfBook: &CryptoTopOfBook
$ref: './crypto-schemas.yaml#/CryptoTopOfBook'
# CryptoCurrency: &CryptoCurrency
# $ref: './crypto-schemas.yaml#/CryptoCurrency'
#
# CryptoTicker: &CryptoTicker
# $ref: './crypto-schemas.yaml#/CryptoTicker'
#
# ResampleFreq: &ResampleFreq
# $ref: './crypto-schemas.yaml#/ResampleFreq'
#
# PriceDataItem: &PriceDataItem
# $ref: './crypto-schemas.yaml#/PriceDataItem'
#
# ExchangeDataItem: &ExchangeDataItem
# $ref: './crypto-schemas.yaml#/ExchangeDataItem'
#
# CryptoPrice: &CryptoPrice
# $ref: './crypto-schemas.yaml#/CryptoPrice'
#
# CryptoMetadata: &CryptoMetadata
# $ref: './crypto-schemas.yaml#/CryptoMetadata'
#
# TopOfBookData: &TopOfBookData
# $ref: './crypto-schemas.yaml#/TopOfBookData'
#
# TopOfBookExchangeData: &TopOfBookExchangeData
# $ref: './crypto-schemas.yaml#/TopOfBookExchangeData'
#
# CryptoTopOfBook: &CryptoTopOfBook
# $ref: './crypto-schemas.yaml#/CryptoTopOfBook'
# ========================================================================
# FOREX API SCHEMAS
# File: ./forex-schemas.yaml
# TODO: Uncomment when ./forex-schemas.yaml is created
# ========================================================================
ForexTopOfBook: &ForexTopOfBook
$ref: './forex-schemas.yaml#/ForexTopOfBook'
ForexPrice: &ForexPrice
$ref: './forex-schemas.yaml#/ForexPrice'
# ForexTopOfBook: &ForexTopOfBook
# $ref: './forex-schemas.yaml#/ForexTopOfBook'
#
# ForexPrice: &ForexPrice
# $ref: './forex-schemas.yaml#/ForexPrice'
# ========================================================================
# IEX EXCHANGE API SCHEMAS
# Reference: https://api.tiingo.com/documentation/iex
# File: ./iex-schemas.yaml
# TODO: Uncomment when ./iex-schemas.yaml is created
# ========================================================================
IEXTopOfBook: &IEXTopOfBook
$ref: './iex-schemas.yaml#/IEXTopOfBook'
IEXPrice: &IEXPrice
$ref: './iex-schemas.yaml#/IEXPrice'
# IEXTopOfBook: &IEXTopOfBook
# $ref: './iex-schemas.yaml#/IEXTopOfBook'
#
# IEXPrice: &IEXPrice
# $ref: './iex-schemas.yaml#/IEXPrice'
# ========================================================================
# FUNDAMENTALS API SCHEMAS
# File: ./fundamentals-schemas.yaml
# TODO: Uncomment when ./fundamentals-schemas.yaml is created
# ========================================================================
FundamentalDefinition: &FundamentalDefinition
$ref: './fundamentals-schemas.yaml#/FundamentalDefinition'
DataPoint: &DataPoint
$ref: './fundamentals-schemas.yaml#/DataPoint'
StatementData: &StatementData
$ref: './fundamentals-schemas.yaml#/StatementData'
FinancialStatement: &FinancialStatement
$ref: './fundamentals-schemas.yaml#/FinancialStatement'
DailyMetric: &DailyMetric
$ref: './fundamentals-schemas.yaml#/DailyMetric'
FundamentalMeta: &FundamentalMeta
$ref: './fundamentals-schemas.yaml#/FundamentalMeta'
# FundamentalDefinition: &FundamentalDefinition
# $ref: './fundamentals-schemas.yaml#/FundamentalDefinition'
#
# DataPoint: &DataPoint
# $ref: './fundamentals-schemas.yaml#/DataPoint'
#
# StatementData: &StatementData
# $ref: './fundamentals-schemas.yaml#/StatementData'
#
# FinancialStatement: &FinancialStatement
# $ref: './fundamentals-schemas.yaml#/FinancialStatement'
#
# DailyMetric: &DailyMetric
# $ref: './fundamentals-schemas.yaml#/DailyMetric'
#
# FundamentalMeta: &FundamentalMeta
# $ref: './fundamentals-schemas.yaml#/FundamentalMeta'
# ========================================================================
# MUTUAL FUNDS AND ETF SCHEMAS
# Reference: /docs/api_extracted/mutual-fund-etf-fees.md
# File: ./funds-schemas.yaml
# TODO: Uncomment when ./funds-schemas.yaml is created
# ========================================================================
OtherShareClass: &OtherShareClass
$ref: './funds-schemas.yaml#/OtherShareClass'
FundOverview: &FundOverview
$ref: './funds-schemas.yaml#/FundOverview'
CustomFee: &CustomFee
$ref: './funds-schemas.yaml#/CustomFee'
FundMetrics: &FundMetrics
$ref: './funds-schemas.yaml#/FundMetrics'
# OtherShareClass: &OtherShareClass
# $ref: './funds-schemas.yaml#/OtherShareClass'
#
# FundOverview: &FundOverview
# $ref: './funds-schemas.yaml#/FundOverview'
#
# CustomFee: &CustomFee
# $ref: './funds-schemas.yaml#/CustomFee'
#
# FundMetrics: &FundMetrics
# $ref: './funds-schemas.yaml#/FundMetrics'
# ========================================================================
# DIVIDENDS AND DISTRIBUTIONS SCHEMAS
# File: ./dividends-schemas.yaml
# TODO: Uncomment when ./dividends-schemas.yaml is created
# ========================================================================
Distribution: &Distribution
$ref: './dividends-schemas.yaml#/Distribution'
DistributionYield: &DistributionYield
$ref: './dividends-schemas.yaml#/DistributionYield'
# Distribution: &Distribution
# $ref: './dividends-schemas.yaml#/Distribution'
#
# DistributionYield: &DistributionYield
# $ref: './dividends-schemas.yaml#/DistributionYield'
# ========================================================================
# STOCK SPLITS SCHEMAS
# File: ./splits-schemas.yaml
# TODO: Uncomment when ./splits-schemas.yaml is created
# ========================================================================
Split: &Split
$ref: './splits-schemas.yaml#/Split'
SplitArray: &SplitArray
$ref: './splits-schemas.yaml#/SplitArray'
# Split: &Split
# $ref: './splits-schemas.yaml#/Split'
#
# SplitArray: &SplitArray
# $ref: './splits-schemas.yaml#/SplitArray'