/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1-SNAPSHOT * User agent: apibuilder app.apibuilder.io/gimbalabs/hilltop-api/0.0.1-SNAPSHOT/flow_erm_schema */ package io.gimbalabs.hilltop.api.v0.erm import io.flow.event.relation.mapper.schema.ErmSpec import io.apibuilder.spec.v0.models.{Enum, EnumValue, Field, Model, Union, UnionType} import io.gimbalabs.hilltop.api.v0.models.ActiveStakeAmount import io.gimbalabs.hilltop.api.v0.models.AddressStakeAmount import io.gimbalabs.hilltop.api.v0.models.Block import io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001 import io.gimbalabs.hilltop.api.v0.models.CnftMetadataV001Asset import io.gimbalabs.hilltop.api.v0.models.DayBlock import io.gimbalabs.hilltop.api.v0.models.Delegation import io.gimbalabs.hilltop.api.v0.models.DelegatorsCount import io.gimbalabs.hilltop.api.v0.models.Epoch import io.gimbalabs.hilltop.api.v0.models.GenericError import io.gimbalabs.hilltop.api.v0.models.Healthcheck import io.gimbalabs.hilltop.api.v0.models.NativeAsset import io.gimbalabs.hilltop.api.v0.models.NativeAssetDetails import io.gimbalabs.hilltop.api.v0.models.NativeAssetDetailsRequest import io.gimbalabs.hilltop.api.v0.models.NativeAssetId import io.gimbalabs.hilltop.api.v0.models.NftDetails import io.gimbalabs.hilltop.api.v0.models.NftMetadata import io.gimbalabs.hilltop.api.v0.models.NftMetadataFile import io.gimbalabs.hilltop.api.v0.models.NftMetadataFilesAsObject import io.gimbalabs.hilltop.api.v0.models.NftMetadataImgArray import io.gimbalabs.hilltop.api.v0.models.NftMetadataNoFiles import io.gimbalabs.hilltop.api.v0.models.PoolRetiring import io.gimbalabs.hilltop.api.v0.models.PoolUpdate import io.gimbalabs.hilltop.api.v0.models.Reward import io.gimbalabs.hilltop.api.v0.models.Sigma import io.gimbalabs.hilltop.api.v0.models.Stakepool import io.gimbalabs.hilltop.api.v0.models.StakepoolDelegation import io.gimbalabs.hilltop.api.v0.models.StakepoolMetadata import io.gimbalabs.hilltop.api.v0.models.Transaction import io.gimbalabs.hilltop.api.v0.models.TransactionHistoryRequest import io.gimbalabs.hilltop.api.v0.models.WalletBalance object GeneratedErmSchema { implicit lazy val ermSpecActiveStakeAmount: ErmSpec[ActiveStakeAmount] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.active_stake_amount", spec = Model(name = "active_stake_amount", plural = "active_stake_amounts", fields = Seq( Field(name = "amount_in_lovelaces", `type` = "long", required = true), )), ) implicit lazy val ermSpecAddressStakeAmount: ErmSpec[AddressStakeAmount] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.address_stake_amount", spec = Model(name = "address_stake_amount", plural = "address_stake_amounts", fields = Seq( Field(name = "stake_address", `type` = "string", required = true), Field(name = "amount_in_lovelaces", `type` = "long", required = true), )), ) implicit lazy val ermSpecBlock: ErmSpec[Block] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.block", spec = Model(name = "block", plural = "blocks", fields = Seq( Field(name = "number", `type` = "long", required = true), Field(name = "epoch_number", `type` = "long", required = true), Field(name = "slot_number", `type` = "long", required = true), Field(name = "epoch_slot_number", `type` = "long", required = true), Field(name = "size", `type` = "long", required = true), Field(name = "transaction_count", `type` = "long", required = true), Field(name = "time", `type` = "date-time-iso8601", required = true), )), ) implicit lazy val ermSpecCnftMetadataV001Asset: ErmSpec[CnftMetadataV001Asset] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.cnft_metadata_v001_asset", spec = Model(name = "cnft_metadata_v001_asset", plural = "cnft_metadata_v001_assets", fields = Seq( Field(name = "assetName", `type` = "string", required = false), Field(name = "attributes", `type` = "json", required = false), Field(name = "ipfs", `type` = "string", required = true), Field(name = "mimeType", `type` = "string", required = false), )), ) implicit lazy val ermSpecCnftMetadataV001: ErmSpec[CnftMetadataV001] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.cnft_metadata_v001", spec = Model(name = "cnft_metadata_v001", plural = "cnft_metadata_v001s", fields = Seq( Field(name = "policyId", `type` = "string", required = true), Field(name = "tokens", `type` = "map[string]", required = true), Field(name = "asset", `type` = "cnft_metadata_v001_asset", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.cnft_metadata_v001_asset" -> ermSpecCnftMetadataV001Asset, ), ) implicit lazy val ermSpecDayBlock: ErmSpec[DayBlock] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.day_block", spec = Model(name = "day_block", plural = "day_blocks", fields = Seq( Field(name = "first", `type` = "block", required = true), Field(name = "last", `type` = "block", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.block" -> ermSpecBlock, ), ) implicit lazy val ermSpecStakepoolMetadata: ErmSpec[StakepoolMetadata] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.stakepool_metadata", spec = Model(name = "stakepool_metadata", plural = "stakepool_metadata", fields = Seq( Field(name = "name", `type` = "string", required = true), Field(name = "ticker", `type` = "string", required = true), Field(name = "homepage", `type` = "string", required = true), Field(name = "description", `type` = "string", required = true), Field(name = "extended", `type` = "string", required = false), )), ) implicit lazy val ermSpecStakepool: ErmSpec[Stakepool] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.stakepool", spec = Model(name = "stakepool", plural = "stakepools", fields = Seq( Field(name = "id", `type` = "string", required = true), Field(name = "pool_id_bech32", `type` = "string", required = true), Field(name = "metadata", `type` = "stakepool_metadata", required = false), Field(name = "cost", `type` = "long", required = true), Field(name = "margin", `type` = "double", required = true), Field(name = "pledge", `type` = "long", required = true), Field(name = "active_stake", `type` = "long", required = true), Field(name = "saturation", `type` = "double", required = true), Field(name = "retiring_at_epoch", `type` = "long", required = false), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.stakepool_metadata" -> ermSpecStakepoolMetadata, ), ) implicit lazy val ermSpecStakepoolDelegation: ErmSpec[StakepoolDelegation] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.stakepool_delegation", spec = Model(name = "stakepool_delegation", plural = "stakepool_delegations", fields = Seq( Field(name = "stakepool", `type` = "stakepool", required = true), Field(name = "epoch", `type` = "integer", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.stakepool" -> ermSpecStakepool, ), ) implicit lazy val ermSpecDelegation: ErmSpec[Delegation] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.delegation", spec = Model(name = "delegation", plural = "delegations", fields = Seq( Field(name = "staking_address", `type` = "string", required = true), Field(name = "delegations", `type` = "[stakepool_delegation]", required = true), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.stakepool_delegation" -> ermSpecStakepoolDelegation, ), ) implicit lazy val ermSpecDelegatorsCount: ErmSpec[DelegatorsCount] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.delegators_count", spec = Model(name = "delegators_count", plural = "delegators_counts", fields = Seq( Field(name = "delegators_count_total", `type` = "integer", required = true), )), ) implicit lazy val ermSpecEpoch: ErmSpec[Epoch] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.epoch", spec = Model(name = "epoch", plural = "epochs", fields = Seq( Field(name = "out_sum", `type` = "long", required = true), Field(name = "fees", `type` = "long", required = true), Field(name = "tx_count", `type` = "integer", required = true), Field(name = "blk_count", `type` = "integer", required = true), Field(name = "number", `type` = "integer", required = true), Field(name = "start_time", `type` = "date-time-iso8601", required = true), Field(name = "end_time", `type` = "date-time-iso8601", required = true), )), ) implicit lazy val ermSpecGenericError: ErmSpec[GenericError] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.generic_error", spec = Model(name = "generic_error", plural = "generic_errors", fields = Seq( Field(name = "description", `type` = "string", required = true), )), ) implicit lazy val ermSpecHealthcheck: ErmSpec[Healthcheck] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.healthcheck", spec = Model(name = "healthcheck", plural = "healthchecks", fields = Seq( Field(name = "status", `type` = "string", required = true), )), ) implicit lazy val ermSpecNativeAsset: ErmSpec[NativeAsset] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.native_asset", spec = Model(name = "native_asset", plural = "native_assets", fields = Seq( Field(name = "transaction_id", `type` = "string", required = true), Field(name = "policy_id", `type` = "string", required = true), Field(name = "token_name", `type` = "string", required = true), Field(name = "metadata", `type` = "json", required = true), Field(name = "block_number", `type` = "long", required = true), Field(name = "epoch_slot_number", `type` = "long", required = true), Field(name = "epoch_number", `type` = "long", required = true), Field(name = "invalid_before", `type` = "long", required = false), Field(name = "invalid_hereafter", `type` = "long", required = false), Field(name = "quantity", `type` = "long", required = true), )), ) implicit lazy val ermSpecNativeAssetDetails: ErmSpec[NativeAssetDetails] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.native_asset_details", spec = Model(name = "native_asset_details", plural = "native_asset_detailses", fields = Seq( Field(name = "policy_id", `type` = "string", required = true), Field(name = "asset_name", `type` = "string", required = true), Field(name = "metadata", `type` = "json", required = true), Field(name = "minted_at", `type` = "date-time-iso8601", required = true), Field(name = "last_minted_at", `type` = "date-time-iso8601", required = true), Field(name = "first_minting_tx_block", `type` = "long", required = true), Field(name = "last_minting_tx_block", `type` = "long", required = true), Field(name = "minting_tx_hash", `type` = "string", required = true), Field(name = "circulating_supply", `type` = "long", required = true), Field(name = "fingerprint", `type` = "string", required = true), )), ) implicit lazy val ermSpecNativeAssetDetailsRequest: ErmSpec[NativeAssetDetailsRequest] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.native_asset_details_request", spec = Model(name = "native_asset_details_request", plural = "native_asset_details_requests", fields = Seq( Field(name = "policy_id", `type` = "string", required = true), Field(name = "asset_names", `type` = "[string]", required = false), )), ) implicit lazy val ermSpecNativeAssetId: ErmSpec[NativeAssetId] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.native_asset_id", spec = Model(name = "native_asset_id", plural = "native_asset_ids", fields = Seq( Field(name = "policy_id", `type` = "string", required = true), Field(name = "asset_name", `type` = "string", required = true), Field(name = "block_number", `type` = "long", required = true), Field(name = "block_time", `type` = "date-time-iso8601", required = true), Field(name = "fingerprint", `type` = "string", required = true), )), ) implicit lazy val ermSpecNftDetails: ErmSpec[NftDetails] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.nft_details", spec = Model(name = "nft_details", plural = "nft_detailses", fields = Seq( Field(name = "policy_id", `type` = "string", required = true), Field(name = "asset_name_raw", `type` = "string", required = true), Field(name = "asset_name", `type` = "string", required = false), Field(name = "metadata", `type` = "json", required = true), Field(name = "minted_at", `type` = "date-time-iso8601", required = true), Field(name = "minted_at_block", `type` = "long", required = true), Field(name = "minting_tx_hash", `type` = "string", required = true), Field(name = "amount", `type` = "long", required = true), Field(name = "fingerprint", `type` = "string", required = true), )), ) implicit lazy val ermSpecNftMetadataFile: ErmSpec[NftMetadataFile] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.nft_metadata_file", spec = Model(name = "nft_metadata_file", plural = "nft_metadata_files", fields = Seq( Field(name = "name", `type` = "string", required = false), Field(name = "src", `type` = "string", required = false), Field(name = "mediaType", `type` = "string", required = false), )), ) implicit lazy val ermSpecNftMetadata: ErmSpec[NftMetadata] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.nft_metadata", spec = Model(name = "nft_metadata", plural = "nft_metadata", fields = Seq( Field(name = "name", `type` = "string", required = false), Field(name = "image", `type` = "string", required = false), Field(name = "mediaType", `type` = "string", required = false), Field(name = "files", `type` = "[nft_metadata_file]", required = false), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.nft_metadata_file" -> ermSpecNftMetadataFile, ), ) implicit lazy val ermSpecNftMetadataFilesAsObject: ErmSpec[NftMetadataFilesAsObject] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.nft_metadata_files_as_object", spec = Model(name = "nft_metadata_files_as_object", plural = "nft_metadata_files_as_objects", fields = Seq( Field(name = "name", `type` = "string", required = false), Field(name = "image", `type` = "string", required = false), Field(name = "mediaType", `type` = "string", required = false), Field(name = "files", `type` = "nft_metadata_file", required = false), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.nft_metadata_file" -> ermSpecNftMetadataFile, ), ) implicit lazy val ermSpecNftMetadataImgArray: ErmSpec[NftMetadataImgArray] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.nft_metadata_img_array", spec = Model(name = "nft_metadata_img_array", plural = "nft_metadata_img_arrays", fields = Seq( Field(name = "name", `type` = "string", required = false), Field(name = "image", `type` = "[string]", required = false), Field(name = "mediaType", `type` = "string", required = false), Field(name = "files", `type` = "[nft_metadata_file]", required = false), )), resolved = Map[String, ErmSpec[_]]( "io.gimbalabs.hilltop.api.v0.models.nft_metadata_file" -> ermSpecNftMetadataFile, ), ) implicit lazy val ermSpecNftMetadataNoFiles: ErmSpec[NftMetadataNoFiles] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.nft_metadata_no_files", spec = Model(name = "nft_metadata_no_files", plural = "nft_metadata_no_files", fields = Seq( Field(name = "name", `type` = "string", required = false), Field(name = "image", `type` = "string", required = false), Field(name = "mediaType", `type` = "string", required = false), )), ) implicit lazy val ermSpecPoolRetiring: ErmSpec[PoolRetiring] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.pool_retiring", spec = Model(name = "pool_retiring", plural = "pool_retirings", fields = Seq( Field(name = "ticker_name", `type` = "string", required = false), Field(name = "pool_id", `type` = "string", required = true), Field(name = "certificate_index", `type` = "integer", required = true), Field(name = "epoch_number", `type` = "long", required = true), Field(name = "block_number", `type` = "long", required = true), Field(name = "retiring_at_epoch", `type` = "long", required = true), Field(name = "tx_hash", `type` = "string", required = true), )), ) implicit lazy val ermSpecPoolUpdate: ErmSpec[PoolUpdate] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.pool_update", spec = Model(name = "pool_update", plural = "pool_updates", fields = Seq( Field(name = "epoch_number", `type` = "integer", required = true), Field(name = "block_number", `type` = "long", required = true), Field(name = "tx_hash", `type` = "string", required = true), Field(name = "pool_ticker_name", `type` = "string", required = false), Field(name = "pool_bech32_id", `type` = "string", required = true), Field(name = "certificate_index", `type` = "integer", required = true), Field(name = "vrf_key_hash", `type` = "string", required = true), Field(name = "pledge", `type` = "long", required = true), Field(name = "reward_address", `type` = "string", required = true), Field(name = "active_epoch_number", `type` = "long", required = true), Field(name = "margin", `type` = "double", required = true), Field(name = "fixed_cost", `type` = "long", required = true), )), ) implicit lazy val ermSpecReward: ErmSpec[Reward] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.reward", spec = Model(name = "reward", plural = "rewards", fields = Seq( Field(name = "staking_address", `type` = "string", required = true), Field(name = "epoch", `type` = "integer", required = true), Field(name = "amount", `type` = "long", required = true), Field(name = "pool_id", `type` = "string", required = true), )), ) implicit lazy val ermSpecSigma: ErmSpec[Sigma] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.sigma", spec = Model(name = "sigma", plural = "sigmas", fields = Seq( Field(name = "sigma", `type` = "double", required = true), Field(name = "epoch", `type` = "integer", required = true), Field(name = "total_staked", `type` = "long", required = true), Field(name = "active_stake", `type` = "long", required = true), Field(name = "nonce", `type` = "string", required = true), Field(name = "d", `type` = "double", required = true), )), ) implicit lazy val ermSpecTransaction: ErmSpec[Transaction] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.transaction", spec = Model(name = "transaction", plural = "transactions", fields = Seq( Field(name = "hash", `type` = "string", required = true), Field(name = "block", `type` = "long", required = true), Field(name = "timestamp", `type` = "date-time-iso8601", required = true), )), ) implicit lazy val ermSpecTransactionHistoryRequest: ErmSpec[TransactionHistoryRequest] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.transaction_history_request", spec = Model(name = "transaction_history_request", plural = "transaction_history_requests", fields = Seq( Field(name = "addresses", `type` = "[string]", required = true), )), ) implicit lazy val ermSpecWalletBalance: ErmSpec[WalletBalance] = ErmSpec.model( qualifiedName = "io.gimbalabs.hilltop.api.v0.models.wallet_balance", spec = Model(name = "wallet_balance", plural = "wallet_balances", fields = Seq( Field(name = "balance", `type` = "long", required = true), )), ) val all: Seq[ErmSpec[_]] = Seq( ermSpecActiveStakeAmount, ermSpecAddressStakeAmount, ermSpecBlock, ermSpecCnftMetadataV001Asset, ermSpecCnftMetadataV001, ermSpecDayBlock, ermSpecStakepoolMetadata, ermSpecStakepool, ermSpecStakepoolDelegation, ermSpecDelegation, ermSpecDelegatorsCount, ermSpecEpoch, ermSpecGenericError, ermSpecHealthcheck, ermSpecNativeAsset, ermSpecNativeAssetDetails, ermSpecNativeAssetDetailsRequest, ermSpecNativeAssetId, ermSpecNftDetails, ermSpecNftMetadataFile, ermSpecNftMetadata, ermSpecNftMetadataFilesAsObject, ermSpecNftMetadataImgArray, ermSpecNftMetadataNoFiles, ermSpecPoolRetiring, ermSpecPoolUpdate, ermSpecReward, ermSpecSigma, ermSpecTransaction, ermSpecTransactionHistoryRequest, ermSpecWalletBalance, ) }