/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1-dev * User agent: apibuilder app.apibuilder.io/chenggit/flowerate/0.0.1-dev/flow_erm_schema */ package io.cheng.flowerate.v0.erm import io.flow.event.relation.mapper.schema.ErmSpec import io.apibuilder.spec.v0.models.{Enum, EnumValue, Field, Model, Union, UnionType} import io.cheng.flowerate.v0.models.Currency import io.cheng.flowerate.v0.models.CurrencyRateEvent import io.cheng.flowerate.v0.models.FixerErrorDetail import io.cheng.flowerate.v0.models.FixerRateResponse import io.cheng.flowerate.v0.models.FixerRatesFailureResponse import io.cheng.flowerate.v0.models.FixerRatesSuccessResponse import io.cheng.flowerate.v0.models.RateBetweenResponse import io.cheng.flowerate.v0.models.RateToAllResponse import io.cheng.flowerate.v0.models.WebhookDetail import io.cheng.flowerate.v0.models.WebhookRegisterRequest object GeneratedErmSchema { implicit lazy val ermSpecFixerErrorDetail: ErmSpec[FixerErrorDetail] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.FixerErrorDetail", spec = Model(name = "FixerErrorDetail", plural = "FixerErrorDetails", fields = Seq( Field(name = "code", `type` = "long", required = true), Field(name = "type", `type` = "string", required = true), )), ) implicit lazy val ermSpecFixerRatesFailureResponse: ErmSpec[FixerRatesFailureResponse] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.FixerRatesFailureResponse", spec = Model(name = "FixerRatesFailureResponse", plural = "FixerRatesFailureResponses", fields = Seq( Field(name = "success", `type` = "boolean", required = true), Field(name = "error", `type` = "FixerErrorDetail", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.models.FixerErrorDetail" -> ermSpecFixerErrorDetail, ), ) implicit lazy val ermSpecFixerRatesSuccessResponse: ErmSpec[FixerRatesSuccessResponse] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.FixerRatesSuccessResponse", spec = Model(name = "FixerRatesSuccessResponse", plural = "FixerRatesSuccessResponses", fields = Seq( Field(name = "success", `type` = "boolean", required = true), Field(name = "base", `type` = "currency", required = true), Field(name = "rates", `type` = "map[double]", required = true), Field(name = "timestamp", `type` = "long", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.enums.currency" -> ermSpecCurrency, ), ) implicit lazy val ermSpecRateBetweenResponse: ErmSpec[RateBetweenResponse] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.RateBetweenResponse", spec = Model(name = "RateBetweenResponse", plural = "RateBetweenResponses", fields = Seq( Field(name = "base", `type` = "currency", required = true), Field(name = "target", `type` = "currency", required = true), Field(name = "rate", `type` = "double", required = true), Field(name = "timestamp", `type` = "long", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.enums.currency" -> ermSpecCurrency, ), ) implicit lazy val ermSpecRateToAllResponse: ErmSpec[RateToAllResponse] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.RateToAllResponse", spec = Model(name = "RateToAllResponse", plural = "RateToAllResponses", fields = Seq( Field(name = "base", `type` = "currency", required = true), Field(name = "rates", `type` = "map[double]", required = true), Field(name = "timestamp", `type` = "long", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.enums.currency" -> ermSpecCurrency, ), ) implicit lazy val ermSpecWebhookDetail: ErmSpec[WebhookDetail] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.WebhookDetail", spec = Model(name = "WebhookDetail", plural = "WebhookDetails", fields = Seq( Field(name = "currencyRateEvent", `type` = "currencyRateEvent", required = true), Field(name = "url", `type` = "string", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.enums.currencyRateEvent" -> ermSpecCurrencyRateEvent, ), ) implicit lazy val ermSpecWebhookRegisterRequest: ErmSpec[WebhookRegisterRequest] = ErmSpec.model( qualifiedName = "io.cheng.flowerate.v0.models.WebhookRegisterRequest", spec = Model(name = "WebhookRegisterRequest", plural = "WebhookRegisterRequests", fields = Seq( Field(name = "clientId", `type` = "string", required = true), Field(name = "webhooks", `type` = "[WebhookDetail]", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.models.WebhookDetail" -> ermSpecWebhookDetail, ), ) implicit lazy val ermSpecFixerRateResponse: ErmSpec[FixerRateResponse] = ErmSpec.union( qualifiedName = "io.cheng.flowerate.v0.unions.FixerRateResponse", spec = Union(name = "FixerRateResponse", plural = "FixerRateResponses", discriminator = None, types = Seq( UnionType(`type` = "FixerRatesSuccessResponse", discriminatorValue = Some("FixerRatesSuccessResponse")), UnionType(`type` = "FixerRatesFailureResponse", discriminatorValue = Some("FixerRatesFailureResponse")), )), resolved = Map[String, ErmSpec[_]]( "io.cheng.flowerate.v0.models.FixerRatesSuccessResponse" -> ermSpecFixerRatesSuccessResponse, "io.cheng.flowerate.v0.models.FixerRatesFailureResponse" -> ermSpecFixerRatesFailureResponse, ), ) implicit lazy val ermSpecCurrency: ErmSpec[Currency] = ErmSpec.`enum`( qualifiedName = "io.cheng.flowerate.v0.enums.currency", spec = Enum(name = "currency", plural = "currencies", values = Seq( EnumValue(name = "AED"), EnumValue(name = "AFN"), EnumValue(name = "ALL"), EnumValue(name = "AMD"), EnumValue(name = "ANG"), EnumValue(name = "AOA"), EnumValue(name = "ARS"), EnumValue(name = "AUD"), EnumValue(name = "AWG"), EnumValue(name = "AZN"), EnumValue(name = "BAM"), EnumValue(name = "BBD"), EnumValue(name = "BDT"), EnumValue(name = "BGN"), EnumValue(name = "BHD"), EnumValue(name = "BIF"), EnumValue(name = "BMD"), EnumValue(name = "BND"), EnumValue(name = "BOB"), EnumValue(name = "BRL"), EnumValue(name = "BSD"), EnumValue(name = "BTC"), EnumValue(name = "BTN"), EnumValue(name = "BWP"), EnumValue(name = "BYN"), EnumValue(name = "BYR"), EnumValue(name = "BZD"), EnumValue(name = "CAD"), EnumValue(name = "CDF"), EnumValue(name = "CHF"), EnumValue(name = "CLF"), EnumValue(name = "CLP"), EnumValue(name = "CNY"), EnumValue(name = "COP"), EnumValue(name = "CRC"), EnumValue(name = "CUC"), EnumValue(name = "CUP"), EnumValue(name = "CVE"), EnumValue(name = "CZK"), EnumValue(name = "DJF"), EnumValue(name = "DKK"), EnumValue(name = "DOP"), EnumValue(name = "DZD"), EnumValue(name = "EGP"), EnumValue(name = "ERN"), EnumValue(name = "ETB"), EnumValue(name = "EUR"), EnumValue(name = "FJD"), EnumValue(name = "FKP"), EnumValue(name = "GBP"), EnumValue(name = "GEL"), EnumValue(name = "GGP"), EnumValue(name = "GHS"), EnumValue(name = "GIP"), EnumValue(name = "GMD"), EnumValue(name = "GNF"), EnumValue(name = "GTQ"), EnumValue(name = "GYD"), EnumValue(name = "HKD"), EnumValue(name = "HNL"), EnumValue(name = "HRK"), EnumValue(name = "HTG"), EnumValue(name = "HUF"), EnumValue(name = "IDR"), EnumValue(name = "ILS"), EnumValue(name = "IMP"), EnumValue(name = "INR"), EnumValue(name = "IQD"), EnumValue(name = "IRR"), EnumValue(name = "ISK"), EnumValue(name = "JEP"), EnumValue(name = "JMD"), EnumValue(name = "JOD"), EnumValue(name = "JPY"), EnumValue(name = "KES"), EnumValue(name = "KGS"), EnumValue(name = "KHR"), EnumValue(name = "KMF"), EnumValue(name = "KPW"), EnumValue(name = "KRW"), EnumValue(name = "KWD"), EnumValue(name = "KYD"), EnumValue(name = "KZT"), EnumValue(name = "LAK"), EnumValue(name = "LBP"), EnumValue(name = "LKR"), EnumValue(name = "LRD"), EnumValue(name = "LSL"), EnumValue(name = "LTL"), EnumValue(name = "LVL"), EnumValue(name = "LYD"), EnumValue(name = "MAD"), EnumValue(name = "MDL"), EnumValue(name = "MGA"), EnumValue(name = "MKD"), EnumValue(name = "MMK"), EnumValue(name = "MNT"), EnumValue(name = "MOP"), EnumValue(name = "MRO"), EnumValue(name = "MUR"), EnumValue(name = "MVR"), EnumValue(name = "MWK"), EnumValue(name = "MXN"), EnumValue(name = "MYR"), EnumValue(name = "MZN"), EnumValue(name = "NAD"), EnumValue(name = "NGN"), EnumValue(name = "NIO"), EnumValue(name = "NOK"), EnumValue(name = "NPR"), EnumValue(name = "NZD"), EnumValue(name = "OMR"), EnumValue(name = "PAB"), EnumValue(name = "PEN"), EnumValue(name = "PGK"), EnumValue(name = "PHP"), EnumValue(name = "PKR"), EnumValue(name = "PLN"), EnumValue(name = "PYG"), EnumValue(name = "QAR"), EnumValue(name = "RON"), EnumValue(name = "RSD"), EnumValue(name = "RUB"), EnumValue(name = "RWF"), EnumValue(name = "SAR"), EnumValue(name = "SBD"), EnumValue(name = "SCR"), EnumValue(name = "SDG"), EnumValue(name = "SEK"), EnumValue(name = "SGD"), EnumValue(name = "SHP"), EnumValue(name = "SLL"), EnumValue(name = "SOS"), EnumValue(name = "SRD"), EnumValue(name = "STD"), EnumValue(name = "SVC"), EnumValue(name = "SYP"), EnumValue(name = "SZL"), EnumValue(name = "THB"), EnumValue(name = "TJS"), EnumValue(name = "TMT"), EnumValue(name = "TND"), EnumValue(name = "TOP"), EnumValue(name = "TRY"), EnumValue(name = "TTD"), EnumValue(name = "TWD"), EnumValue(name = "TZS"), EnumValue(name = "UAH"), EnumValue(name = "UGX"), EnumValue(name = "USD"), EnumValue(name = "UYU"), EnumValue(name = "UZS"), EnumValue(name = "VEF"), EnumValue(name = "VND"), EnumValue(name = "VUV"), EnumValue(name = "WST"), EnumValue(name = "XAF"), EnumValue(name = "XAG"), EnumValue(name = "XAU"), EnumValue(name = "XCD"), EnumValue(name = "XDR"), EnumValue(name = "XOF"), EnumValue(name = "XPF"), EnumValue(name = "YER"), EnumValue(name = "ZAR"), EnumValue(name = "ZMK"), EnumValue(name = "ZMW"), EnumValue(name = "ZWL"), )), ) implicit lazy val ermSpecCurrencyRateEvent: ErmSpec[CurrencyRateEvent] = ErmSpec.`enum`( qualifiedName = "io.cheng.flowerate.v0.enums.currencyRateEvent", spec = Enum(name = "currencyRateEvent", plural = "currencyRateEvents", values = Seq( EnumValue(name = "CurrencyRateChange"), )), ) val all: Seq[ErmSpec[_]] = Seq( ermSpecFixerErrorDetail, ermSpecFixerRatesFailureResponse, ermSpecFixerRatesSuccessResponse, ermSpecRateBetweenResponse, ermSpecRateToAllResponse, ermSpecWebhookDetail, ermSpecWebhookRegisterRequest, ermSpecFixerRateResponse, ermSpecCurrency, ermSpecCurrencyRateEvent, ) }