{"openapi": "3.1.0", "info": {"title": "African DSI DataBank \u2014 public API", "version": "1.0.0", "description": "What anyone may call without a login. Everything else takes a login or a personal API token (Authorization: Bearer adsi_...), made on your account page: read-only, 60 requests a minute and 10,000 a day per token."}, "paths": {"/api/v1/catalog/species": {"get": {"operationId": "hub_catalog_api_list_species", "summary": "List Species", "parameters": [{"in": "query", "name": "q", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Q"}, "required": false}, {"in": "query", "name": "name_contains", "schema": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "title": "Name Contains"}, "required": false}, {"in": "query", "name": "iucn_status", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Iucn Status"}, "required": false}, {"in": "query", "name": "genome_category", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Genome Category"}, "required": false}, {"in": "query", "name": "starts_with", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Starts With"}, "required": false}, {"in": "query", "name": "taxonomic_class", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Taxonomic Class"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSpeciesOut"}}}}}, "description": "Database-platform priority: federated species catalog search.\n\n`q` accepts one or more comma-separated scientific names, matched as an\nOR across terms (a species matching *any* one of them is returned) \u2014\nthe same multi-name search shape hub.discovery.completeness already\nestablished for the Data Dashboard, extended here to the landing\npage's own species search per the same user request.\n\n`starts_with` backs the landing page's own A-Z browsing index (a real,\ntester-reported gap: search-only discovery assumes the visitor already\nknows what they're looking for) \u2014 a plain case-insensitive prefix match,\nindependent of and AND-combined with `q`/`genome_category` exactly like\nevery other filter here, since a visitor is expected to use one or the\nother, not both, but nothing stops combining them.\n\n`taxonomic_class` backs the same page's \"browse by group\" filter (real\nkingdom/class data from GBIF/NCBI \u2014 see hub.catalog.species_enrichment\n.classify_species_taxonomic_group) \u2014 a plain exact match against the\nreal, currently-present values GET /species/facets reports, same\n\"real values only, never a hardcoded vocabulary\" convention as\nget_sequence_facets.", "tags": ["catalog"]}}, "/api/v1/catalog/species/facets": {"get": {"operationId": "hub_catalog_api_get_species_facets", "summary": "Get Species Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SpeciesFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary, so the \"browse by group\" filter never offers a dead\noption. Same shape as get_sequence_facets below.", "tags": ["catalog"]}}, "/api/v1/catalog/species/{species_id}": {"get": {"operationId": "hub_catalog_api_get_species", "summary": "Get Species", "parameters": [{"in": "path", "name": "species_id", "schema": {"title": "Species Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SpeciesOut"}}}}}, "tags": ["catalog"]}}, "/api/v1/catalog/species/{species_id}/strains": {"get": {"operationId": "hub_catalog_api_list_species_strains", "summary": "List Species Strains", "parameters": [{"in": "path", "name": "species_id", "schema": {"title": "Species Id", "type": "integer"}, "required": true}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedStrainOut"}}}}}, "description": "Public: the strain-level entries in the catalog that belong to this\nspecies (2026-10-08), with how many genomes each holds, A-Z. Paged.", "tags": ["catalog"]}}, "/api/v1/catalog/taxonomy-tree": {"get": {"operationId": "hub_catalog_api_get_taxonomy_tree", "summary": "Get Taxonomy Tree", "parameters": [{"in": "query", "name": "path", "schema": {"default": "", "maxLength": 4000, "title": "Path", "type": "string"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaxonomyTreeOut"}}}}}, "description": "Public (TODO B.19): one level of the taxonomy tree of every species\nthe DataBank holds, from their NCBI lineages (hub.catalog.taxonomy_tree).\n``path`` is the node's names joined by \"; \" (blank: the root). A\ntaxonomy, not a phylogeny.", "tags": ["catalog"]}}, "/api/v1/catalog/species/{species_id}/related": {"get": {"operationId": "hub_catalog_api_get_related_species", "summary": "Get Related Species", "parameters": [{"in": "path", "name": "species_id", "schema": {"title": "Species Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RelatedSpeciesResultOut"}}}}}, "description": "Public (TODO B.19): the species in the DataBank sharing this one's\nnearest ancestors in its NCBI lineage, nearest first, each with its\nrecord counts per data type.", "tags": ["catalog"]}}, "/api/v1/catalog/published-trees": {"get": {"operationId": "hub_catalog_api_get_published_trees", "summary": "Get Published Trees", "parameters": [{"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "path", "schema": {"default": "", "maxLength": 4000, "title": "Path", "type": "string"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublishedTreesOut"}}}}}, "description": "Public (TODO B.19 step 2): the published phylogenies for a species and\nits related species (``species_id``), or for every species in a branch of\nthe species tree (``path``, at most 200 species): Open Tree of Life, and\nGTDB for bacteria and archaea, each with its own source and citation, and\nthe species not shown with why.", "tags": ["catalog"]}}, "/api/v1/catalog/species/{species_id}/associations": {"get": {"operationId": "hub_catalog_api_list_species_associations", "summary": "List Species Associations", "parameters": [{"in": "path", "name": "species_id", "schema": {"title": "Species Id", "type": "integer"}, "required": true}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSpeciesAssociationOut"}}}}}, "description": "Public \u2014 every SpeciesAssociation where this species is either the\nsubject (e.g. a pathogen) or the object (e.g. a reservoir host), each\nannotated with which side it's actually on so the frontend can render\n\"known reservoir host\" vs. \"pathogens with a documented association to\nthis species\" correctly regardless of direction. Real metadata only \u2014\nno access-tier concern, the same public-by-default convention every\nother species-level endpoint on this platform already follows.", "tags": ["catalog"]}}, "/api/v1/catalog/one-health/associations/export.csv": {"get": {"operationId": "hub_catalog_api_export_one_health_associations", "summary": "Export One Health Associations", "parameters": [{"in": "query", "name": "pathogen_status", "schema": {"default": "", "title": "Pathogen Status", "type": "string"}, "required": false}, {"in": "query", "name": "host_status", "schema": {"default": "", "title": "Host Status", "type": "string"}, "required": false}, {"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: the published pathogen\u2013reservoir associations as CSV, with the\nsame filters as the listing, crediting each curated one's curators in\nthe CRediT role \"Data curation\" (2026-10-11).", "tags": ["catalog"]}}, "/api/v1/catalog/one-health/associations": {"get": {"operationId": "hub_catalog_api_list_one_health_associations", "summary": "List One Health Associations", "parameters": [{"in": "query", "name": "pathogen_status", "schema": {"default": "", "title": "Pathogen Status", "type": "string"}, "required": false}, {"in": "query", "name": "host_status", "schema": {"default": "", "title": "Host Status", "type": "string"}, "required": false}, {"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSpeciesAssociationOut"}}}}}, "description": "Public \u2014 every SpeciesAssociation platform-wide, for the /one-health\nindex page. ``pathogen_status`` / ``host_status`` filter by the\ncurator's Africa status of the pathogen / reservoir host (2026-10-09):\ncomma-separated AfricanStatus values, \"not_assessed\" for none yet.\n``q`` searches them (``_association_search``, 2026-10-15).", "tags": ["catalog"]}}, "/api/v1/catalog/species/{species_id}/local-names": {"get": {"operationId": "hub_catalog_api_list_species_local_names", "summary": "List Species Local Names", "parameters": [{"in": "path", "name": "species_id", "schema": {"title": "Species Id", "type": "integer"}, "required": true}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSpeciesLocalNameOut"}}}}}, "description": "Public \u2014 only published (is_active=True) names, auto-enriched and\ncurator-submitted alike, sorted the same way as the underlying model's\nown Meta.ordering (language, then name).", "tags": ["catalog"]}}, "/api/v1/catalog/sequences": {"get": {"operationId": "hub_catalog_api_list_sequence_records", "summary": "List Sequence Records", "parameters": [{"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "access_tier", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Access Tier"}, "required": false}, {"in": "query", "name": "country_of_origin", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Country Of Origin"}, "required": false}, {"in": "query", "name": "license_tag", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "License Tag"}, "required": false}, {"in": "query", "name": "origin", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Origin"}, "required": false}, {"in": "query", "name": "goat_assembly_level", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Goat Assembly Level"}, "required": false}, {"in": "query", "name": "min_busco", "schema": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Busco"}, "required": false}, {"in": "query", "name": "sequence_type", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sequence Type"}, "required": false}, {"in": "query", "name": "source_release_date_from", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Source Release Date From"}, "required": false}, {"in": "query", "name": "source_release_date_to", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Source Release Date To"}, "required": false}, {"in": "query", "name": "institution", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Institution"}, "required": false}, {"in": "query", "name": "skip_availability_checks", "schema": {"default": false, "title": "Skip Availability Checks", "type": "boolean"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSequenceRecordOut"}}}}}, "tags": ["catalog"]}}, "/api/v1/catalog/sequences/facets": {"get": {"operationId": "hub_catalog_api_get_sequence_facets", "summary": "Get Sequence Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SequenceFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary, so a facet never offers an option with zero matching\nrecords. Deliberately unconditional (not narrowed by any other\ncurrently-applied filter) \u2014 live per-filter facet counts are\nsearch-engine-grade complexity this codebase's own plain-ORM list\nendpoints don't attempt; see CLAUDE.md's Increment 29 follow-up note.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}": {"get": {"operationId": "hub_catalog_api_get_sequence_record", "summary": "Get Sequence Record", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SequenceRecordOut"}}}}}, "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/sra-references": {"get": {"operationId": "hub_catalog_api_list_sra_references", "summary": "List Sra References", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedMirroredRawReadsReferenceOut"}}}}}, "description": "SRA run(s) cross-referenced with a mirrored genome record (see\nMirroredRawReadsReference's own docstring for the honest \"cross-\nreferenced with\", never \"assembled from\", caveat). Public, same as\nevery other read on this record's own metadata \u2014 the underlying SRA\nrun is already public at the source, and this never serves bytes.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/file": {"get": {"operationId": "hub_catalog_api_get_sequence_file", "summary": "Get Sequence File", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Visualization-platform priority: the raw file bytes a real genome\nbrowser (JBrowse2) needs to render \u2014 same preview-serving pattern\n(get_hub_storage().exists()-then-no-op guard) as\nhub.field_specimen_imaging.api.get_field_specimen_image_preview. A 404\nhere now legitimately means \"not yet downloaded\" for a mirrored record,\nnot \"doesn't exist as a feature\" \u2014 see hub.mirroring.download.\n\nA ranged request is the genome viewer loading pieces of the sequence\nand is logged as a background request; anything else is a download \u2014\nsee hub.access.enforcement.sequence_file_access_type.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/download-count": {"get": {"operationId": "hub_catalog_api_get_sequence_download_count", "summary": "Get Sequence Download Count", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Pandam-review scoping, Item 5 \u2014 a real per-record download count,\nsurfaced on the record's own page. Public/unauthenticated (a bare\ncount reveals nothing about the record's own content or access tier)\n\u2014 see hub.access.enforcement.download_count's own docstring.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/file.fai": {"get": {"operationId": "hub_catalog_api_get_sequence_file_index", "summary": "Get Sequence File Index", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "The .fai index alongside the FASTA above \u2014 JBrowse2's\nIndexedFastaAdapter requests exactly this path (it derives ``<uri>.fai``\nfrom the FASTA's own uri, see shared.fasta_index's docstring), so this\nliteral ``.fai``-suffixed route is what makes the \"uri shorthand\" config\nJBrowseEmbed.tsx uses actually resolve.\n\nThe viewer fetches this once each time it opens, so it's logged as one\nview of the genome.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/annotation.gff": {"get": {"operationId": "hub_catalog_api_get_sequence_annotation_gff", "summary": "Get Sequence Annotation Gff", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "NCBI Datasets API-sourced GFF3 gene models for a whole-assembly NCBI\nrecord \u2014 see hub.mirroring.download.download_and_store_ncbi_annotation_\nfiles. NCBI-only: ENA's own annotation support (Phase 2, see\ndownload_and_store_ena_annotation_files) is CDS/protein FASTA only, no\nGFF3 \u2014 this endpoint always 404s for an ENA-sourced record. A 404 here\nmeans \"not yet checked\", \"checked, nothing annotated\", or \"not an\nNCBI whole-assembly record at all\" \u2014 all three collapse to the same\nhonest \"nothing to serve\" here, same as file_available above;\nSequenceRecordOut.annotation_gff_available is what a caller should\ncheck first to distinguish them. text/plain, same as file.fai's own\nplain-text sidecar above \u2014 no widely-used dedicated GFF3 MIME type\nexists to prefer instead.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/cds": {"get": {"operationId": "hub_catalog_api_get_sequence_cds_fasta", "summary": "Get Sequence Cds Fasta", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Per-gene CDS (coding-sequence) nucleotide multi-FASTA \u2014 sourced from\nNCBI's Datasets API for a whole-assembly NCBI record, or parsed from a\nreal EMBL flat file for a single-sequence ENA record (see\ndownload_and_store_ncbi_annotation_files / _ena_annotation_files) \u2014\nsee get_sequence_annotation_gff's own docstring for the same 404/\navailability-flag reasoning.", "tags": ["catalog"]}}, "/api/v1/catalog/sequences/{sequence_id}/proteins": {"get": {"operationId": "hub_catalog_api_get_sequence_protein_fasta", "summary": "Get Sequence Protein Fasta", "parameters": [{"in": "path", "name": "sequence_id", "schema": {"title": "Sequence Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Translated protein multi-FASTA \u2014 NCBI Datasets API-sourced for a\nwhole-assembly NCBI record, or a real, already-computed EMBL\n``/translation=`` qualifier per CDS for a single-sequence ENA record \u2014\nsee get_sequence_annotation_gff's own docstring for the same 404/\navailability-flag reasoning.", "tags": ["catalog"]}}, "/api/v1/catalog/raw-reads/by-origin/{origin_node_id}/{origin_entity_id}/file": {"get": {"operationId": "hub_catalog_api_get_raw_reads_file", "summary": "Get Raw Reads File", "parameters": [{"in": "path", "name": "origin_node_id", "schema": {"title": "Origin Node Id", "type": "string"}, "required": true}, {"in": "path", "name": "origin_entity_id", "schema": {"title": "Origin Entity Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Closes a real, previously-open gap: the consent-gated node<->Hub\ntransfer mechanism (hub.transfers) correctly moves a genome's own raw\nsequencing reads into Hub storage, but nothing ever served the bytes\nback out afterward \u2014 hub.access.enforcement's own docstring names\nexactly four byte-serving endpoints platform-wide, and this was never\none of them.\n\nKeyed by the raw-reads sample's own stable cross-tier identity\n(origin_node_id/origin_entity_id) rather than its Hub-local numeric\nid \u2014 this is exactly the identity pair TransferItemOut already exposes\n(hub.transfers.models.TransferItem.origin_node_id/origin_entity_id),\nso TransferReviewPanel.tsx can build this URL directly from data it\nalready has, with no extra lookup round trip.\n\nRawReadsSampleDiscovery has no access_tier of its own by design (a\nvisibility-only discovery row isn't a citable data product) \u2014 access\nis deliberately inherited from the parent SequenceRecord, resolved via\nthe discovery row's own stable cross-tier identity pair. The raw reads\na genome was assembled from should never be less restricted than the\ngenome itself; inheriting is both the simplest implementation and the\nonly sound access-control answer here.", "tags": ["catalog"]}}, "/api/v1/compute/node-services": {"get": {"operationId": "hub_compute_api_list_node_service_targets", "summary": "List Node Service Targets", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedNodeServiceTargetOut"}}}}}, "description": "Nodes' web services (API form) offered as compute targets (TODO B.18 phase 3):\nlisted on the Hub, switched on at the node, and the node fetches its work. Public,\nlike the tool menu; running one needs a login.", "tags": ["compute"]}}, "/api/v1/compute/tools": {"get": {"operationId": "hub_compute_api_list_tools", "summary": "List Tools", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedComputeToolOut"}}}}}, "description": "The fixed, admin-curated tool menu (Multi-target compute search Part\n3) \u2014 every currently-active ``ComputeTool``, for populating a\nsubmitter's tool selector. Deliberately public/unauthenticated, matching\n``GET /api/v1/federation/contributions``'s own established \"reveals\nnothing sensitive, meant to be seen by a first-time visitor deciding\nwhat to submit before they ever sign up\" reasoning \u2014 the compute-request\nforms themselves stay fully visible/fillable without an account too (see\nComputeSearchBatchForm.tsx/ComputeRequestForm.tsx), and this endpoint\nbeing login-gated would have silently defeated that for the one field\nthat actually needs a live fetch.", "tags": ["compute"]}}, "/api/v1/compute/approved-base-images": {"get": {"operationId": "hub_compute_api_list_approved_base_images", "summary": "List Approved Base Images", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedApprovedBaseImageOut"}}}}}, "description": "\"Bring your own tool\"'s own admin-curated base-image allowlist \u2014\nevery currently-active ``ApprovedBaseImage``, so a submitter can see in\nadvance exactly what a custom_image must be derived from, rather than\nonly finding out via a 422 after filling in the whole form (the pre-\nlaunch minimum-functional-product audit's own finding). Deliberately\npublic/unauthenticated, same reasoning as GET /tools right above \u2014\nexposing the real digest reference is intentional, not an oversight: a\nsubmitter genuinely needs the exact FROM reference to build their own\nderivative image against, matching ApprovedBaseImage's own model\ndocstring, which already frames this as a publicly-provable reference,\nnot a secret.", "tags": ["compute"]}}, "/api/v1/compute/participation-terms": {"get": {"operationId": "hub_compute_api_list_participation_terms", "summary": "List Participation Terms", "parameters": [{"in": "query", "name": "tier", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Tier"}, "required": false}, {"in": "query", "name": "node_id", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Node Id"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedComputeParticipationTermsOut"}}}}}, "description": "Deliberately public/unauthenticated, same reasoning as GET /tools/\nGET /approved-base-images above \u2014 a submitter exploring\nComputeSearchBatchForm.tsx needs to see a target's own stated terms\nbefore ever logging in, since that form itself stays fully visible\nwithout an account too.", "tags": ["compute"]}}, "/api/v1/access/country-routes": {"get": {"operationId": "hub_access_api_list_country_routes", "summary": "List Country Routes", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CountryRoutesOut"}}}}}, "description": "Public: each country's setting for its publicly available mirrored\nrecords, and the history of changes (who acted: the national node, or\nthe Continental Admin on a recorded reference).", "tags": ["access"]}}, "/api/v1/federation/nodes": {"post": {"operationId": "hub_federation_api_apply_as_node", "summary": "Apply As Node", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FederatedNodeOut"}}}}}, "description": "Any organisation may apply to be a Sub-regional/National Hub or Spoke \u2014\nbut (TODO.md item 18) only once they already hold an approved\nnode-operator account for this exact (tier, node_id), proven via the\nsingle-use applicant_id emailed at approval time (see\nhub.accounts.notifications.send_request_approved_email).", "tags": ["federation"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeApplicationIn"}}}, "required": true}}}, "/api/v1/federation/hub-applications": {"post": {"operationId": "hub_federation_api_apply_via_hub", "summary": "Apply Via Hub", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HubApplicationOut"}}}}}, "description": "A National Hub/Spoke applying directly to the Continental Hub \u2014\nalongside, never instead of, the existing apply-to-your-own-parent path\n(backend/node/federation_api.py's POST /children). Public/\nunauthenticated, same as POST /nodes \u2014 but (TODO.md item 18) still\nrequires a real applicant_id, minted at NodeOperatorRequest approval\ntime for this exact (tier, node_id), before an application can actually\nbe created here. The Continental Admin places it onto the correct\nparent afterward (see POST /hub-applications/{id}/place) \u2014 this table\nis never conflated with FederatedNode (the Hub's own direct\nSub-regional children only) or a parent's own ChildNode table.", "tags": ["federation"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/HubApplicationIn"}}}, "required": true}}}, "/api/v1/federation/node-names": {"get": {"operationId": "hub_federation_api_get_node_names", "summary": "Get Node Names", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string"}, "title": "Response", "type": "object"}}}}}, "description": "Public (2026-10-12): node_id -> human name for every node that has one,\nfor attribution next to node IDs (e.g. \"captured by \u2026\"). The names are\nalready public in /contributions; nothing else about a node is here.", "tags": ["federation"]}}, "/api/v1/federation/contributions": {"get": {"operationId": "hub_federation_api_get_contributions", "summary": "Get Contributions", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedContributionEntryOut"}}}}}, "description": "Deliberately public/unauthenticated, unlike /registry \u2014 the whole\npoint of priority 5 (see CLAUDE.md's roadmap section) is external\nlegibility for funders/AU policymakers who won't hold Hub accounts.\nOnly ever returns counts (plus, since Part 3, each node's own\nadvertised capabilities) \u2014 never base_url or oversight status, which\nstay behind /registry's continental-admin gate.", "tags": ["federation"]}}, "/api/v1/federation/contributions/earlier-file-requests": {"get": {"operationId": "hub_federation_api_get_earlier_file_requests", "summary": "Get Earlier File Requests", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EarlierFileRequestsOut"}}}}}, "description": "Public aggregate, like /contributions: the temporary homepage figure\nfor file requests logged before views and downloads were split (see\nearlier_file_requests).", "tags": ["federation"]}}, "/api/v1/federation/contributions/growth": {"get": {"operationId": "hub_federation_api_get_contribution_growth", "summary": "Get Contribution Growth", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedGrowthPointOut"}}}}}, "description": "Same public/unauthenticated reasoning as /contributions above \u2014 a\ncontribution-over-time series (every data type, see\ncompute_growth_over_time's own docstring) for a growth chart.", "tags": ["federation"]}}, "/api/v1/federation/impact": {"get": {"operationId": "hub_federation_api_get_impact", "summary": "Get Impact", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Public (plan phase 2, 2026-11-15): records by data type and by the data's\ncountry of origin, how many name their country, usage by month and client,\nand capacity figures. Counts from public records only.", "tags": ["federation"]}}, "/api/v1/federation/impact.csv": {"get": {"operationId": "hub_federation_api_get_impact_csv", "summary": "Get Impact Csv", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "The same figures as one CSV file, to download.", "tags": ["federation"]}}, "/api/v1/federation/status": {"get": {"operationId": "hub_federation_api_get_public_status", "summary": "Get Public Status", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Public (plan phase 3.8): the Hub answers, how many connected nodes it\nhas heard from in the last day and when it last did, and when the last\ngood backup finished. Counts and times only, no node names or addresses.", "tags": ["federation"]}}, "/api/v1/federation/nodes/{node_id}/analytics-preference": {"get": {"operationId": "hub_federation_api_get_node_analytics_preference", "summary": "Get Node Analytics Preference", "parameters": [{"in": "path", "name": "node_id", "schema": {"title": "Node Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AnalyticsPreferenceOut"}}}}}, "description": "Deliberately public/unauthenticated \u2014 every node-web instance calls\nthis on every page render, for every visitor, to decide live whether to\nload the Continental Hub's shared analytics script (see CLAUDE.md's\n\"Website analytics\" section) \u2014 the frontend fails closed if this can't\nbe reached at all, but the endpoint itself reveals nothing sensitive:\njust whether one specific, already-public node_id has opted in. Always\na definitive 200, never a 404 \u2014 \"no row recorded\" and \"opted in: false\"\nare the same honest answer here, so the caller never needs a special\ncase for \"unknown\" the way get_node_contact_info's own 404 requires.", "tags": ["federation"]}}, "/api/v1/federation/nodes/{node_id}/update-preference": {"get": {"operationId": "hub_federation_api_get_node_update_preference", "summary": "Get Node Update Preference", "parameters": [{"in": "path", "name": "node_id", "schema": {"title": "Node Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdatePreferenceOut"}}}}}, "description": "Deliberately public/unauthenticated \u2014 deploy/auto-update-node.sh runs\nunattended on the node's own host, as a systemd timer with no login\ncapability at all, and needs to read its own preference back with no\ncredential of any kind. The endpoint reveals nothing sensitive: just\nwhether one specific, already-public node_id has opted into unattended\nupdates (and, now, whether a one-time on-demand update request is\npending \u2014 see requested_update_for's own model-field docstring). Always\na definitive 200 \u2014 \"no row recorded\" and \"auto_update: false,\nrequested_update_for: null\" are the same honest, conservative default,\nsame reasoning as get_node_analytics_preference directly above.", "tags": ["federation"]}}, "/api/v1/federation/nodes/{node_id}/license-acknowledgment": {"get": {"operationId": "hub_federation_api_get_node_license_acknowledgment", "summary": "Get Node License Acknowledgment", "parameters": [{"in": "path", "name": "node_id", "schema": {"title": "Node Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LicenseAcknowledgmentOut"}}}}}, "description": "Deliberately public/unauthenticated \u2014 node-web's own header banner\n(see CLAUDE.md's \"Node license revision notification\" section) checks\nthis on every page render for every visitor, with no login required at\nall, which is the whole point of a passive notice. Reveals nothing\nsensitive: just whether an already-public node_id has acknowledged the\ncurrent LICENSE.md revision. Always a definitive 200 \u2014 \"no row\nrecorded\" and \"acknowledged_version: ''\" are the same honest,\nconservative default, same reasoning as get_node_update_preference.", "tags": ["federation"]}}, "/api/v1/federation/.well-known/jwt-public-key": {"get": {"operationId": "hub_federation_api_get_jwt_public_key", "summary": "Get Jwt Public Key", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Public, unauthenticated \u2014 the Hub's own ``HUB_JWT_PUBLIC_KEY``, the\nfirst of three credentials a brand-new node install needs (see\nCLAUDE.md's \"Third-party node onboarding\" section). Every node already\nneeds this exact value in its own ``HUB_JWT_PUBLIC_KEY`` config to\nverify a central-login JWT locally with no round trip back to the Hub\n(see ``node/config.py``) \u2014 it was never actually a secret, only ever\nhanded over out of band. Publishing it here changes nothing about what\nalready trusts it; it's the same value every node already needs to be\nconfigured with correctly to work at all.", "tags": ["federation"]}}, "/api/v1/proteins": {"get": {"operationId": "hub_proteins_api_list_protein_records", "summary": "List Protein Records", "parameters": [{"in": "query", "name": "genome_record_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Genome Record Id"}, "required": false}, {"in": "query", "name": "gene_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Gene Name"}, "required": false}, {"in": "query", "name": "species", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Species"}, "required": false}, {"in": "query", "name": "source_repository", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Source Repository"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedProteinRecordOut"}}}}}, "description": "Database-platform priority, Phase 2: federated protein catalog.\n\nspecies/source_repository (2026-08-28, user-requested real search on\n/proteins) are icontains filters, matching this codebase's own\nestablished convention for a searchable text field (e.g.\nhub.publications.api's country/species filters) \u2014 species resolves\nthrough genome_record's own specimen/species chain, since ProteinRecord\nitself carries no species field directly.", "tags": ["proteins"]}}, "/api/v1/proteins/orthologs": {"get": {"operationId": "hub_proteins_api_list_ortholog_clusters", "summary": "List Ortholog Clusters", "parameters": [{"in": "query", "name": "threshold", "schema": {"default": 50.0, "title": "Threshold", "type": "number"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrthologClusterOut"}}}}}, "description": "Analysis priority, Phase 2: cross-spoke ortholog clustering across all held proteins.\n\nCapped to MAX_ORTHOLOG_CLUSTER_RECORDS \u2014 see that constant's own\ncomment for why an uncapped `.all()` here was a genuine, live-caught\nscalability bug, not just a theoretical one.", "tags": ["proteins"]}}, "/api/v1/proteins/facets": {"get": {"operationId": "hub_proteins_api_get_protein_facets", "summary": "Get Protein Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProteinFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.publications.api's own\nget_publication_facets already established, powering the searchable\ndropdown on /proteins' own species/source-repository filters\n(2026-08-28, user-requested). Public, same as GET /proteins itself \u2014\nthis reveals nothing beyond which values already exist.", "tags": ["proteins"]}}, "/api/v1/proteins/{protein_id}": {"get": {"operationId": "hub_proteins_api_get_protein_record", "summary": "Get Protein Record", "parameters": [{"in": "path", "name": "protein_id", "schema": {"title": "Protein Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProteinRecordOut"}}}}}, "tags": ["proteins"]}}, "/api/v1/proteins/{protein_id}/file": {"get": {"operationId": "hub_proteins_api_get_protein_file", "summary": "Get Protein File", "parameters": [{"in": "path", "name": "protein_id", "schema": {"title": "Protein Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Real, previously-missing gap found while scoping the tester-feedback\nCSV-export pass (\"I also think that use would expect to download the\ndata and not the just the gene names\") \u2014 this platform had a\n/proteins/{id}/annotate-domains and .../embargo route but no raw-bytes\ndownload endpoint at all for a protein record, only metadata/\nsubmission routes (confirmed by reading this whole file before adding\nthis). Mirrors hub.catalog.api.get_sequence_file's exact shape \u2014 same\nrequire_access gating (already fully generic across entity kinds, this\nis a same-shaped fifth call site, not a new mechanism) and the same\nstorage.exists()-then-404 guard. Every protein record's own bytes are a\nplain FASTA (translated from a genome's CDS, or a pasted sequence via\nhub.proteins.submissions), hence the fixed text/plain content type \u2014\nunlike SequenceRecord, ProteinRecord carries no file_format field to\nbranch on.", "tags": ["proteins"]}}, "/api/v1/proteins/{protein_id}/download-count": {"get": {"operationId": "hub_proteins_api_get_protein_download_count", "summary": "Get Protein Download Count", "parameters": [{"in": "path", "name": "protein_id", "schema": {"title": "Protein Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Pandam-review scoping, Item 5 \u2014 mirrors\nhub.catalog.api.get_sequence_download_count's exact shape.", "tags": ["proteins"]}}, "/api/v1/structures": {"get": {"operationId": "hub_structures_api_list_structures", "summary": "List Structures", "parameters": [{"in": "query", "name": "protein_record_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Protein Record Id"}, "required": false}, {"in": "query", "name": "species", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Species"}, "required": false}, {"in": "query", "name": "source_repository", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Source Repository"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedStructureRecordOut"}}}}}, "description": "Database-platform priority, Phase 3: every version, newest first (see model ordering).\n\nspecies/source_repository (2026-08-28, user-requested real search on\n/structures) are icontains filters, matching hub.proteins.api's own\nidentical convention \u2014 species resolves through\nprotein_record -> genome_record -> specimen -> species, since\nStructureRecord itself carries no species field directly (and\nprotein_record.genome_record can itself be null, see ProteinRecord's\nown docstring \u2014 a structure whose parent protein has no resolvable\ngenome yet simply never matches a species filter, the correct\nbehavior for \"there is nothing to search here yet\").", "tags": ["structures"]}}, "/api/v1/structures/facets": {"get": {"operationId": "hub_structures_api_get_structure_facets", "summary": "Get Structure Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StructureFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.proteins.api's own get_protein_facets\nalready established, powering the searchable dropdown on /structures'\nown species/source-repository filters (2026-08-28, user-requested).\nPublic, same as GET /structures itself \u2014 this reveals nothing beyond\nwhich values already exist.", "tags": ["structures"]}}, "/api/v1/structures/{structure_id}": {"get": {"operationId": "hub_structures_api_get_structure", "summary": "Get Structure", "parameters": [{"in": "path", "name": "structure_id", "schema": {"title": "Structure Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StructureRecordOut"}}}}}, "tags": ["structures"]}}, "/api/v1/structures/{structure_id}/pdb": {"get": {"operationId": "hub_structures_api_get_structure_pdb", "summary": "Get Structure Pdb", "parameters": [{"in": "path", "name": "structure_id", "schema": {"title": "Structure Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Visualization-platform priority, Phase 3: raw PDB bytes for a real\nstructure viewer (Mol*, Increment 11) \u2014 same preview-serving pattern\n(get_hub_storage().exists()-then-no-op guard) as\nhub.field_specimen_imaging.api.get_field_specimen_image_preview and\nhub.catalog.api.get_sequence_file. Structures are Hub-native (see\nstructures/tasks.py), so unlike the catalog file endpoint there's no\n\"not yet downloaded\" case here \u2014 a StructureRecord only ever exists\nonce its prediction has already written pdb_storage_key.", "tags": ["structures"]}}, "/api/v1/structures/{structure_id}/download-count": {"get": {"operationId": "hub_structures_api_get_structure_download_count", "summary": "Get Structure Download Count", "parameters": [{"in": "path", "name": "structure_id", "schema": {"title": "Structure Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Pandam-review scoping, Item 5 \u2014 mirrors\nhub.catalog.api.get_sequence_download_count's exact shape.", "tags": ["structures"]}}, "/api/v1/edna/classifications": {"get": {"operationId": "hub_edna_api_list_edna_classifications", "summary": "List Edna Classifications", "parameters": [{"in": "query", "name": "site_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Site Name"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedEDnaClassificationOut"}}}}}, "description": "Database-platform priority, Phase 4: federated eDNA classification catalog.\n\nA retracted record disappears from this browsing surface \u2014 see docs/\nSome considerations/Governance considerations/Record retraction\n(tombstone) scoping.html.", "tags": ["edna"]}}, "/api/v1/edna/sites": {"get": {"operationId": "hub_edna_api_list_site_summaries", "summary": "List Site Summaries", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSiteSummaryOut"}}}}}, "description": "Visualization-platform priority, Phase 4: site-level biodiversity dashboard \u2014\nper-site species list and alpha diversity, computed across every classification\nthis Hub currently holds for that site (pooled from however many Spokes sampled it).", "tags": ["edna"]}}, "/api/v1/edna/sites/{site_name}": {"get": {"operationId": "hub_edna_api_get_site_summary", "summary": "Get Site Summary", "parameters": [{"in": "path", "name": "site_name", "schema": {"title": "Site Name", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SiteSummaryOut"}}}}}, "tags": ["edna"]}}, "/api/v1/field-specimen-images": {"get": {"operationId": "hub_field_specimen_imaging_api_list_field_specimen_images", "summary": "List Field Specimen Images", "parameters": [{"in": "query", "name": "image_type", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Image Type"}, "required": false}, {"in": "query", "name": "site_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Site Name"}, "required": false}, {"in": "query", "name": "species_label", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Species Label"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedFieldSpecimenImageRecordOut"}}}}}, "description": "Database-platform priority, Phase 6: federated field/specimen image\ncatalog (image gallery/camera-trap timeline in hub-web reads from this\nlist).\n\n``image_type`` stays an exact match \u2014 a real, small, fixed vocabulary\n(camera_trap/herbarium/microscopy) picked from a dropdown, not free\ntext. ``site_name`` widened from exact to icontains, and\n``species_label`` added as a new icontains filter (2026-08-28,\nuser-requested real search on /field-specimen-images), matching this\ncodebase's own established convention for a searchable text field\nelsewhere (e.g. hub.proteins.api's own species/source_repository\nfilters).", "tags": ["field-specimen-imaging"]}}, "/api/v1/field-specimen-images/facets": {"get": {"operationId": "hub_field_specimen_imaging_api_get_field_specimen_image_facets", "summary": "Get Field Specimen Image Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FieldSpecimenImageFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.proteins.api's own get_protein_facets\nalready established, powering the searchable dropdowns on\n/field-specimen-images (2026-08-28, user-requested). Public, same as\nGET \"\" itself \u2014 this reveals nothing beyond which values already\nexist.", "tags": ["field-specimen-imaging"]}}, "/api/v1/field-specimen-images/{image_id}": {"get": {"operationId": "hub_field_specimen_imaging_api_get_field_specimen_image", "summary": "Get Field Specimen Image", "parameters": [{"in": "path", "name": "image_id", "schema": {"title": "Image Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FieldSpecimenImageRecordOut"}}}}}, "tags": ["field-specimen-imaging"]}}, "/api/v1/field-specimen-images/{image_id}/preview": {"get": {"operationId": "hub_field_specimen_imaging_api_get_field_specimen_image_preview", "summary": "Get Field Specimen Image Preview", "parameters": [{"in": "path", "name": "image_id", "schema": {"title": "Image Id", "type": "integer"}, "required": true}, {"in": "query", "name": "download", "schema": {"default": false, "title": "Download", "type": "boolean"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Visualization-platform priority, Phase 6: serves the low-res preview\nbytes so hub-web (via next/image, device-pixel-ratio-aware) can actually\nrender the gallery \u2014 the full-res original never reaches the Hub at all\n(see FieldSpecimenImageRecord's docstring), so there is nothing else to\nserve.\n\nShown in the gallery it's logged as a view; ``?download=1`` (the\ngallery's \"Download image\" link) sends it as an attachment and logs a\ndownload instead.", "tags": ["field-specimen-imaging"]}}, "/api/v1/field-specimen-images/{image_id}/download-count": {"get": {"operationId": "hub_field_specimen_imaging_api_get_field_specimen_image_download_count", "summary": "Get Field Specimen Image Download Count", "parameters": [{"in": "path", "name": "image_id", "schema": {"title": "Image Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Pandam-review scoping, Item 5 \u2014 mirrors\nhub.catalog.api.get_sequence_download_count's exact shape.", "tags": ["field-specimen-imaging"]}}, "/api/v1/metagenomics/profiles": {"get": {"operationId": "hub_metagenomics_api_list_metagenomic_profiles", "summary": "List Metagenomic Profiles", "parameters": [{"in": "query", "name": "site_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Site Name"}, "required": false}, {"in": "query", "name": "category", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Category"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedMetagenomicProfileOut"}}}}}, "description": "Database-platform priority, Phase 5: federated metagenomic profile catalog.\n\nA retracted record disappears from this browsing surface \u2014 see docs/\nSome considerations/Governance considerations/Record retraction\n(tombstone) scoping.html.", "tags": ["metagenomics"]}}, "/api/v1/metagenomics/sites": {"get": {"operationId": "hub_metagenomics_api_list_site_summaries", "summary": "List Site Summaries", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSiteSummaryOut"}}}}}, "description": "Visualization-platform priority, Phase 5: site-level dashboard \u2014 taxa\ndetected + alpha diversity (taxonomic hits only) + functional pathways\ndetected, pooled across every Spoke that's profiled that site.", "tags": ["metagenomics"]}}, "/api/v1/metagenomics/sites/{site_name}": {"get": {"operationId": "hub_metagenomics_api_get_site_summary", "summary": "Get Site Summary", "parameters": [{"in": "path", "name": "site_name", "schema": {"title": "Site Name", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SiteSummaryOut"}}}}}, "tags": ["metagenomics"]}}, "/api/v1/proteomics/profiles": {"get": {"operationId": "hub_proteomics_api_list_proteomics_profiles", "summary": "List Proteomics Profiles", "parameters": [{"in": "query", "name": "site_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Site Name"}, "required": false}, {"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "q", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Q"}, "required": false}, {"in": "query", "name": "source_repository", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Source Repository"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedProteomicsProfileOut"}}}}}, "description": "Database-platform priority, Phase B: federated proteomics catalog.\n``species_id`` additionally filters to genome-triggered auto-sync\nPhase 3's PaxDb-sourced rows for one species \u2014 see\nProteomicsProfile's own docstring.\n\n``q``/``source_repository`` (user-requested, 2026-08-30, \"one search\nbox\" covering both /proteomics sections at once): ``q`` is a single\nfree-text OR-icontains match across site_name (the field a node-synced/\n\"native\" row is actually keyed by \u2014 there is no species link for that\nrow at all, see ProteomicsProfile's own docstring), species name,\nprotein_name, accession, and source_repository \u2014 so typing a site name,\na species, an accession, or \"PaxDb\"/\"PRIDE\" all work from the same one\ninput, matching hub.discovery.completeness's own established\ncomma-free single-field OR-search convention. ``source_repository`` is\nkept as a second, optional exact-ish narrower for a caller who wants to\nbrowse by type specifically, same as /structures' own dropdown.\n\nDeliberately no ``/sites`` diversity-dashboard equivalent \u2014 a lab-run\nmass-spec sample isn't a site-biodiversity concept the way an eDNA\nclassification is, see CLAUDE.md's \"Increment ... Proteomics\" note.\n\nA retracted record disappears from this browsing surface \u2014 see docs/\nSome considerations/Governance considerations/Record retraction\n(tombstone) scoping.html.", "tags": ["proteomics"]}}, "/api/v1/proteomics/project-references": {"get": {"operationId": "hub_proteomics_api_list_proteomics_project_references", "summary": "List Proteomics Project References", "parameters": [{"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "q", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Q"}, "required": false}, {"in": "query", "name": "source_repository", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Source Repository"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedProteomicsProjectReferenceOut"}}}}}, "description": "Genome-triggered auto-sync Phase 3: PRIDE project-level references\nmatched for a species with a genome in this catalog \u2014 see\nProteomicsProjectReference's own docstring for why this is\nproject-level metadata + an external link, not per-protein rows.\nPublic, same reasoning as /profiles \u2014 this is aggregated reference\nmetadata, not a per-record access-tier concern.\n\n``q``/``source_repository`` \u2014 see list_proteomics_profiles' own\ndocstring for the shared \"one search box\" reasoning; this model has no\nsite_name at all (it's always species-linked), so ``q`` OR-matches\nspecies name, title, source_accession, and source_repository instead.", "tags": ["proteomics"]}}, "/api/v1/proteomics/facets": {"get": {"operationId": "hub_proteomics_api_get_proteomics_facets", "summary": "Get Proteomics Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProteomicsFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.structures.api's own\nget_structure_facets already established, powering the search box's\nsource_repository dropdown (species is deliberately not a separate\nfacet/dropdown here \u2014 it's reachable through the shared free-text `q`\nsearch above instead, per the \"one search box\" request). Combines both\nProteomicsProfile and ProteomicsProjectReference, since /proteomics\nshows both grouped together per species. Public, same reasoning as\n/profiles and /project-references. No route-ordering hazard: this\nrouter has no bare /{id} route at its root at all (every existing path\nalready has its own distinct literal prefix segment), unlike\nhub.structures.api's own /facets, which does need to register ahead of\none.", "tags": ["proteomics"]}}, "/api/v1/metabolomics/profiles": {"get": {"operationId": "hub_metabolomics_api_list_metabolomics_profiles", "summary": "List Metabolomics Profiles", "parameters": [{"in": "query", "name": "site_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Site Name"}, "required": false}, {"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "species", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Species"}, "required": false}, {"in": "query", "name": "compound_name", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compound Name"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedMetabolomicsProfileOut"}}}}}, "description": "Database-platform priority, Phase C: federated metabolomics catalog.\n``species_id`` additionally filters to genome-triggered auto-sync\nPhase 4's ANPDB/ChEMBL-sourced rows for one species \u2014 see\nMetabolomicsProfile's own docstring.\n\nDeliberately no ``/sites`` diversity-dashboard equivalent \u2014 a lab-run\nMS/NMR sample isn't a site-biodiversity concept the way an eDNA\nclassification is, see CLAUDE.md's \"Phase C\" note.\n\n``site_name`` widened from exact to icontains, and ``species``/\n``compound_name`` added as new icontains filters (2026-08-28,\nuser-requested real search on /chemical-profiles) \u2014 ``species`` is a\nname-based search distinct from the existing numeric ``species_id``\nfilter (used by the species detail page), resolving through the same\nspecies FK species_id already does.\n\nA retracted record disappears from this browsing surface \u2014 see docs/\nSome considerations/Governance considerations/Record retraction\n(tombstone) scoping.html.", "tags": ["metabolomics"]}}, "/api/v1/metabolomics/profiles/facets": {"get": {"operationId": "hub_metabolomics_api_get_metabolomics_facets", "summary": "Get Metabolomics Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetabolomicsFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.proteins.api's own get_protein_facets\nalready established, powering the searchable dropdowns on\n/chemical-profiles (2026-08-28, user-requested). Public, same as GET\n/profiles itself \u2014 this reveals nothing beyond which values already\nexist. ``compound_name`` is capped at a generous but bounded count,\nsince unlike site/species it has no natural cardinality ceiling.", "tags": ["metabolomics"]}}, "/api/v1/cellular-imaging": {"get": {"operationId": "hub_cellular_imaging_api_list_cellular_imaging_records", "summary": "List Cellular Imaging Records", "parameters": [{"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "title", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title"}, "required": false}, {"in": "query", "name": "country", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Country"}, "required": false}, {"in": "query", "name": "source_repository", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Source Repository"}, "required": false}, {"in": "query", "name": "imaging_modality", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Imaging Modality"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedCellularImagingRecordOut"}}}}}, "description": "Database-platform priority, Phase 7: the read-side catalog \u2014\npublic, unauthenticated, same as every other phase's list endpoint.\n``species_id`` additionally filters to genome-triggered auto-sync\nPhase 6's species-linked rows for one species \u2014 see\nCellularImagingRecord's own docstring.\n\ntitle/country/source_repository/imaging_modality (2026-08-28,\nuser-requested real search on /cellular-imaging) are icontains\nfilters, matching this codebase's own established convention for a\nsearchable text field elsewhere (e.g. hub.proteins.api's own species/\nsource_repository filters).", "tags": ["cellular-imaging"]}}, "/api/v1/cellular-imaging/facets": {"get": {"operationId": "hub_cellular_imaging_api_get_cellular_imaging_facets", "summary": "Get Cellular Imaging Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CellularImagingFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.proteins.api's own get_protein_facets\nalready established, powering the searchable dropdowns on\n/cellular-imaging (2026-08-28, user-requested). Public, same as GET\n\"\" itself \u2014 this reveals nothing beyond which values already exist.\n``title`` is capped at a generous but bounded count, since unlike the\nother three (a small, real fixed-ish vocabulary) a dataset title has\nno natural cardinality ceiling.", "tags": ["cellular-imaging"]}}, "/api/v1/cellular-imaging/{record_id}": {"get": {"operationId": "hub_cellular_imaging_api_get_cellular_imaging_record", "summary": "Get Cellular Imaging Record", "parameters": [{"in": "path", "name": "record_id", "schema": {"title": "Record Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CellularImagingRecordOut"}}}}}, "tags": ["cellular-imaging"]}}, "/api/v1/accounts/register": {"post": {"operationId": "hub_accounts_api_register", "summary": "Register", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterOut"}}}}}, "description": "Database-platform priority: request an account plus a node-operator\nrole. Deliberately not linked from any main-nav UI (see hub-web's\n/apply page) but not hidden either \u2014 its own API endpoint is public,\nregardless of how the codebase itself is licensed (see CLAUDE.md's\n\"Authentication & authorization\" section).\n\nThe account is created inactive \u2014 it cannot log in until the\nContinental Infrastructure Admin approves the accompanying\nNodeOperatorRequest (see approve_request below).\n\n16/09/2026 meeting: an applicant now declares registration_mode \u2014\nEXISTING_NODE keeps the original behavior (requested_node_id is\nwhatever they typed); NEW_NODE ignores any client-submitted node_id\nentirely and generates a real, collision-checked one server-side (see\nhub.accounts.node_id_generation) \u2014 never client-previewed, so it can't\ndrift or be spoofed.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterIn"}}}, "required": true}}}, "/api/v1/accounts/login": {"post": {"operationId": "hub_accounts_api_login", "summary": "Login", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoginOut"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TwoFactorNeededOut"}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoginStateOut"}}}}}, "description": "Password, then (2026-11-14) the two-step sign-in code when the account\nuses it. The right password for an account not active yet gets 403 with\nits ``state`` (confirm_email, awaiting_approval, not_approved, inactive),\nnot counted as a failure (plan phase 3.6). With the code: without a code the answer is 401 with ``two_factor_required``\n(not counted as a failure), so the page asks for it and sends both again.\nA wrong code counts towards the lockout like a wrong password.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoginIn"}}}, "required": true}}}, "/api/v1/accounts/signup": {"post": {"operationId": "hub_accounts_api_signup", "summary": "Signup", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageOut"}}}}}, "description": "Public: create a general Hub account (inactive until its email is\nconfirmed) to request data access, make compute requests or apply to\ncurate. Node operators apply at /register instead.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SignupIn"}}}, "required": true}}}, "/api/v1/accounts/confirm-email": {"post": {"operationId": "hub_accounts_api_confirm_email", "summary": "Confirm Email", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageOut"}}}}}, "description": "Public: activate a /signup account from its email link.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfirmEmailIn"}}}, "required": true}}}, "/api/v1/accounts/resend-confirmation": {"post": {"operationId": "hub_accounts_api_resend_confirmation", "summary": "Resend Confirmation", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageOut"}}}}}, "description": "Public: a fresh confirmation link for an unconfirmed sign-up. The\nsame answer whether or not one exists.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResendConfirmationIn"}}}, "required": true}}}, "/api/v1/accounts/request-password-reset": {"post": {"operationId": "hub_accounts_api_request_password_reset", "summary": "Request Password Reset", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageOut"}}}}}, "description": "Public. Always returns the same message regardless of whether a\nmatching, eligible account was actually found \u2014 see\nhub.accounts.password_reset's docstring for why (avoids leaking account\nexistence or Continental Admin status). Continental Admin accounts are\nsilently excluded \u2014 a deliberate security boundary, not a bug; see\nCLAUDE.md's \"Authentication & authorization\" section.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RequestPasswordResetIn"}}}, "required": true}}}, "/api/v1/accounts/reset-password": {"post": {"operationId": "hub_accounts_api_reset_password", "summary": "Reset Password", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageOut"}}}}}, "description": "Public \u2014 the whole point is you can't log in. 400 on an invalid,\nexpired, already-used, or (defense in depth) now-admin token.", "tags": ["accounts"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResetPasswordIn"}}}, "required": true}}}, "/api/v1/accounts/{username}/avatar": {"get": {"operationId": "hub_accounts_api_get_avatar", "summary": "Get Avatar", "parameters": [{"in": "path", "name": "username", "schema": {"title": "Username", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public, unauthenticated raw-bytes endpoint \u2014 same\npublic-by-default preview-endpoint convention this codebase already\nuses everywhere else (field-specimen-image previews, structure PDBs,\nsequence FASTA/.fai) \u2014 an avatar is meant to be publicly displayable\nwherever a user's identity is shown, on either app, without requiring\nthe viewer to hold an account. 404s cleanly when the user doesn't\nexist or has no avatar, so a plain <img> consumer can treat a 404 as\n\"show the default placeholder\" without needing a separate existence\ncheck first.", "tags": ["accounts"]}}, "/api/v1/identifiers/{citable_id}": {"get": {"operationId": "hub_identifiers_api_get_citable_record", "summary": "Get Citable Record", "parameters": [{"in": "path", "name": "citable_id", "schema": {"title": "Citable Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CitableRecordOut"}}}}}, "tags": ["identifiers"]}}, "/api/v1/export/dcat": {"get": {"operationId": "hub_export_api_get_dcat_catalog", "summary": "Get Dcat Catalog", "parameters": [], "responses": {"200": {"description": "OK"}}, "tags": ["export"]}}, "/api/v1/export/darwin-core.zip": {"get": {"operationId": "hub_export_api_get_darwin_core_archive", "summary": "Get Darwin Core Archive", "parameters": [], "responses": {"200": {"description": "OK"}}, "tags": ["export"]}}, "/api/v1/discovery/matrix": {"get": {"operationId": "hub_discovery_api_get_completeness_matrix", "summary": "Get Completeness Matrix", "parameters": [{"in": "query", "name": "scientific_name", "schema": {"default": "", "title": "Scientific Name", "type": "string"}, "required": false}, {"in": "query", "name": "genome_category", "schema": {"default": "", "title": "Genome Category", "type": "string"}, "required": false}, {"in": "query", "name": "taxonomic_class", "schema": {"default": "", "title": "Taxonomic Class", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedSpeciesCompletenessOut"}}}}}, "description": "`genome_category` mirrors hub.catalog.api.list_species's own filter of\nthe same name (the Data Dashboard's \"Genome type\" dropdown) \u2014 validated\nhere, the same validate-in-the-router convention that endpoint already\nuses, rather than inside compute_species_completeness itself.\n`taxonomic_class` mirrors that same endpoint's own \"Group\" filter \u2014\na plain exact-match value against whatever's currently in the data, so,\nmatching hub.catalog.api.list_species's own identical field, no fixed-\nvocabulary validation applies here either.", "tags": ["discovery"]}}, "/api/v1/metabolic-profiles": {"get": {"operationId": "hub_metabolic_profiles_api_list_metabolic_profile_references", "summary": "List Metabolic Profile References", "parameters": [{"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "species", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Species"}, "required": false}, {"in": "query", "name": "title", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedMetabolicProfileReferenceOut"}}}}}, "description": "Genome-triggered auto-sync Phase 7: MetaboLights study references\nand KEGG genome-based pathway/compound profiles for a species with a\ngenome in this catalog. Public, same reasoning as\nhub.proteomics.api's own /project-references \u2014 this is aggregated\nreference metadata, not a per-record access-tier concern.\n\n``species``/``title`` (2026-08-28, user-requested real search on\n/metabolic-profiles) are icontains filters, matching this codebase's\nown established convention for a searchable text field elsewhere \u2014\n``species`` is a name-based search distinct from the existing numeric\n``species_id`` filter.", "tags": ["metabolic-profiles"]}}, "/api/v1/metabolic-profiles/facets": {"get": {"operationId": "hub_metabolic_profiles_api_get_metabolic_profile_facets", "summary": "Get Metabolic Profile Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetabolicProfileFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\nvocabulary \u2014 same convention hub.proteins.api's own get_protein_facets\nalready established, powering the searchable dropdowns on\n/metabolic-profiles (2026-08-28, user-requested). Public, same as GET\n\"\" itself \u2014 this reveals nothing beyond which values already exist.\n``title`` is capped at a generous but bounded count, since unlike\nspecies it has no natural cardinality ceiling.", "tags": ["metabolic-profiles"]}}, "/api/v1/geographic-range/{species_id}": {"get": {"operationId": "hub_geographic_range_api_get_species_range_summary", "summary": "Get Species Range Summary", "parameters": [{"in": "path", "name": "species_id", "schema": {"title": "Species Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SpeciesRangeSummaryOut"}}}}}, "tags": ["geographic-range"]}}, "/api/v1/contact": {"post": {"operationId": "hub_tickets_api_submit_contact_message", "summary": "Submit Contact Message", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactSubmitOut"}}}}}, "tags": ["contact"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactMessageIn"}}}, "required": true}}}, "/api/v1/tickets/by-token": {"get": {"operationId": "hub_tickets_api_get_ticket_by_token", "summary": "Get Ticket By Token", "parameters": [{"in": "query", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketDetailOut"}}}}}, "description": "Public \u2014 a submitter's own no-account access to their ticket's\nthread, via the long-lived link emailed to them at creation time.", "tags": ["tickets"]}}, "/api/v1/tickets/by-token/messages": {"post": {"operationId": "hub_tickets_api_add_submitter_message", "summary": "Add Submitter Message", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketMessageOut"}}}}}, "description": "Public, same token-gated shape as get_ticket_by_token above.", "tags": ["tickets"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubmitterReplyIn"}}}, "required": true}}}, "/api/v1/tickets/webhooks/github": {"post": {"operationId": "hub_tickets_api_github_webhook", "summary": "Github Webhook", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "The inbound half of GitHub Issues sync \u2014 GitHub calls this on every\ncomment event. Deliberately not a Schema-typed payload like every\nother endpoint in this codebase: HMAC verification needs the exact\nraw bytes GitHub signed, which Ninja's automatic body parsing would\notherwise obscure \u2014 this codebase's first genuine inbound-webhook\nreceiver. No response schema either, since GitHub only ever checks\nthe HTTP status code, not the response body shape.\n\nPayload shape is GitHub's own documented ``issue_comment`` webhook\nevent (docs.github.com/webhooks/webhook-events-and-payloads#issue_comment)\n\u2014 written to that documented shape, not exercised against a real\nregistered webhook this session (no real repo/PAT existed to register\none against \u2014 same honesty tier this codebase already applies to\nDDBJClient.fetch_file/RealAbsClient for their own unverified legs).", "tags": ["tickets"]}}, "/api/v1/tickets/webhooks/linear": {"post": {"operationId": "hub_tickets_api_linear_webhook", "summary": "Linear Webhook", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "The inbound half of Linear sync \u2014 mirrors github_webhook exactly,\nbut Linear's own real, live-fetched payload shape and signature\nscheme (see hub.tickets.webhook_auth's own docstring): the signature\nheader is ``Linear-Signature`` with NO \"sha256=\" prefix, and a\nComment event's real body is ``{\"action\": \"create\", \"type\":\n\"Comment\", \"data\": {\"id\": <uuid>, \"body\": ..., \"issueId\": <uuid>}}``\n\u2014 confirmed live against Linear's own docs before writing this, not\nassumed from memory.", "tags": ["tickets"]}}, "/api/v1/ena-submission/enabled": {"get": {"operationId": "hub_ena_submission_api_get_ena_submission_enabled", "summary": "Get Ena Submission Enabled", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EnaSubmissionEnabledOut"}}}}}, "description": "Public, unauthenticated \u2014 same \"a real access-control boundary,\nevery caller needs to know the current state before deciding what to\nshow/allow\" reasoning as hub.testing_gate.api's own GET /status: both\nthe admin panel and the node-facing consent checkbox on a species page\nneed this without requiring the visitor to hold a Hub account.", "tags": ["ena-submission"]}}, "/api/v1/publications": {"get": {"operationId": "hub_publications_api_list_publications", "summary": "List Publications", "parameters": [{"in": "query", "name": "country", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Country"}, "required": false}, {"in": "query", "name": "species", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Species"}, "required": false}, {"in": "query", "name": "min_year", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Min Year"}, "required": false}, {"in": "query", "name": "max_year", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Max Year"}, "required": false}, {"in": "query", "name": "funding_agency", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Funding Agency"}, "required": false}, {"in": "query", "name": "research_topic", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Research Topic"}, "required": false}, {"in": "query", "name": "institution", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Institution"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedPublicationOut"}}}}}, "description": "min_year/max_year are a real range filter (user-requested, 2026-08-26\n\u2014 \"search between e.g. 2010 to 2025\"), not two separate exact-match\nfields \u2014 each end is independently optional (either alone still\nnarrows correctly), matching this codebase's own min_busco-style\nrange-filter naming convention (hub.catalog.api.SequenceFilters).\n\nfunding_agency/research_topic are plain substring matches against\nJSONField list columns \u2014 Django's own __icontains lookup on a\nJSONField matches against the field's serialized text representation,\nwhich is sufficient here (a free-text facet, not a structured JSON\nquery \u2014 same \"good enough\" bar this codebase already accepts for its\nother JSONField list fields, e.g. MetabolicProfileReference\n.compounds_detected has no dedicated filter of its own either).\ninstitution is a plain substring match on first_author_institution \u2014\nsee hub.publications.clients's own docstring for the real,\nlive-verified PubMed data all three come from (2026-09-12,\ntester-requested).", "tags": ["publications"]}}, "/api/v1/publications/facets": {"get": {"operationId": "hub_publications_api_get_publication_facets", "summary": "Get Publication Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublicationFacetsOut"}}}}}, "description": "Real, currently-present distinct values only \u2014 not a hardcoded\ncountry/species vocabulary \u2014 same convention hub.catalog.api's own\nget_sequence_facets already established, powering the searchable\nautocomplete on /publications' own country/species filter inputs\n(user-requested, 2026-08-26). Public, same as GET /publications\nitself \u2014 this reveals nothing beyond which values already exist.\nRegistered *before* /{publication_id} below: the exact route-ordering\nhazard this codebase's own Increment 17 note documents (Django Ninja's\nint path converter doesn't compile to a real Django URL converter, so\nthe literal segment \"facets\" would otherwise be swallowed by\n/{publication_id} and fail Pydantic's int coercion first).", "tags": ["publications"]}}, "/api/v1/publications/used-in": {"get": {"operationId": "hub_publications_api_get_papers_using", "summary": "Get Papers Using", "parameters": [{"in": "query", "name": "citable_id", "schema": {"default": "", "maxLength": 64, "title": "Citable Id", "type": "string"}, "required": false}, {"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedPaperUsingOut"}}}}}, "description": "Public (plan phase 3.4): the papers that used one record\n(``citable_id``) or any public record of one species (``species_id``).\nOnly while the record is public.", "tags": ["publications"]}}, "/api/v1/publications/{publication_id}": {"get": {"operationId": "hub_publications_api_get_publication", "summary": "Get Publication", "parameters": [{"in": "path", "name": "publication_id", "schema": {"title": "Publication Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublicationOut"}}}}}, "tags": ["publications"]}}, "/api/v1/team": {"get": {"operationId": "hub_team_api_list_team_members", "summary": "List Team Members", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedTeamMemberOut"}}}}}, "tags": ["team"]}}, "/api/v1/team/{member_id}/photo": {"get": {"operationId": "hub_team_api_get_team_member_photo", "summary": "Get Team Member Photo", "parameters": [{"in": "path", "name": "member_id", "schema": {"title": "Member Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public, unauthenticated raw-bytes endpoint \u2014 same\npublic-by-default preview-endpoint convention this codebase already\nuses everywhere else (avatars, field-specimen-image previews,\nstructure PDBs). 404s cleanly when the member doesn't exist, is\ninactive, or has no photo, so a plain <img> consumer can treat a 404\nas \"show nothing\" without a separate existence check first.", "tags": ["team"]}}, "/api/v1/news": {"get": {"operationId": "hub_news_api_list_news", "summary": "List News", "parameters": [{"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "category", "schema": {"default": "", "pattern": "^(news|event|announcement|press_release)?$", "title": "Category", "type": "string"}, "required": false}, {"in": "query", "name": "published_from", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published From"}, "required": false}, {"in": "query", "name": "published_to", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published To"}, "required": false}, {"in": "query", "name": "order", "schema": {"default": "newest", "pattern": "^(newest|oldest)$", "title": "Order", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedNewsItemOut"}}}}}, "description": "Published items, newest first (or ``order=oldest``), paged. Search\nwith ``q``, ``category`` and ``published_from``/``published_to``\n(YYYY-MM-DD, inclusive). Added 2026-10-06: before, the list had no\nfilters, and pages showed no publication date.", "tags": ["news"]}}, "/api/v1/news/feed.xml": {"get": {"operationId": "hub_news_api_get_news_feed", "summary": "Get News Feed", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Public RSS feed of the latest news (plan phase 3.8).", "tags": ["news"]}}, "/api/v1/news/whats-new": {"get": {"operationId": "hub_news_api_get_whats_new", "summary": "Get Whats New", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedWhatsNewOut"}}}}}, "description": "Public: the latest news and node software releases, newest first.", "tags": ["news"]}}, "/api/v1/news/inline-images/{image_id}": {"get": {"operationId": "hub_news_api_get_news_inline_image", "summary": "Get News Inline Image", "parameters": [{"in": "path", "name": "image_id", "schema": {"title": "Image Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public, unauthenticated raw-bytes endpoint for an image embedded\n*within* a NewsItem's own rich-text excerpt/body (see hub.news.widgets/\nthe admin-only upload view in admin.py that creates these) \u2014 distinct\nfrom the item's own single header image at /{item_id}/image below.\nDeliberately has no backing DB row at all (see images.py's own\n``inline_image_storage_key`` docstring for why), so ``image_id`` is\nuntrusted user input reaching this endpoint straight from a browser's own\n<img src> \u2014 validated as a real UUID before it's ever used to build a\nstorage key, so a malformed value 404s cleanly rather than reaching\nstorage at all.\n\nRegistered before /{slug} \u2014 a literal path segment registered after a\ngeneric path param can be silently swallowed by it (the exact hazard\nCLAUDE.md's own Increment 17 note documents).", "tags": ["news"]}}, "/api/v1/news/preview/{token}": {"get": {"operationId": "hub_news_api_get_news_preview", "summary": "Get News Preview", "parameters": [{"in": "path", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewsItemPreviewOut"}}}}}, "description": "A private preview of one item, regardless of its schedule or active\nflag \u2014 see hub.news.preview for why a signed link, not a login, gates\nthis.", "tags": ["news"]}}, "/api/v1/news/preview/{token}/image": {"get": {"operationId": "hub_news_api_get_news_preview_image", "summary": "Get News Preview Image", "parameters": [{"in": "path", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "tags": ["news"]}}, "/api/v1/news/{slug}": {"get": {"operationId": "hub_news_api_get_news_item", "summary": "Get News Item", "parameters": [{"in": "path", "name": "slug", "schema": {"title": "Slug", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewsItemDetailOut"}}}}}, "tags": ["news"]}}, "/api/v1/news/{item_id}/social-card": {"get": {"operationId": "hub_news_api_get_news_item_social_card", "summary": "Get News Item Social Card", "parameters": [{"in": "path", "name": "item_id", "schema": {"title": "Item Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public (2026-11-13): the 1200 x 627 image a shared link to this item\nshows, led by the item's own image (hub.news.social).", "tags": ["news"]}}, "/api/v1/news/{item_id}/image": {"get": {"operationId": "hub_news_api_get_news_item_image", "summary": "Get News Item Image", "parameters": [{"in": "path", "name": "item_id", "schema": {"title": "Item Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public, unauthenticated raw-bytes endpoint \u2014 same public-by-default\npreview-endpoint convention this codebase already uses everywhere else\n(avatars, team-member photos, field-specimen-image previews). 404s\ncleanly when the item doesn't exist, is inactive, or has no image, so a\nplain <img> consumer can treat a 404 as \"show nothing\" without a\nseparate existence check first.", "tags": ["news"]}}, "/api/v1/outreach/training": {"get": {"operationId": "hub_outreach_api_list_training_materials", "summary": "List Training Materials", "parameters": [{"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "material_type", "schema": {"default": "", "maxLength": 16, "title": "Material Type", "type": "string"}, "required": false}, {"in": "query", "name": "file_format", "schema": {"default": "", "maxLength": 16, "title": "File Format", "type": "string"}, "required": false}, {"in": "query", "name": "published_from", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published From"}, "required": false}, {"in": "query", "name": "published_to", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published To"}, "required": false}, {"in": "query", "name": "sort", "schema": {"default": "newest", "pattern": "^(newest|oldest|title)$", "title": "Sort", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedMaterialOut"}}}}}, "description": "Public: published training materials, newest first unless ``sort``\nsays otherwise; searchable (hub.outreach.search). Paged.", "tags": ["outreach"]}}, "/api/v1/outreach/training/download-all": {"get": {"operationId": "hub_outreach_api_download_all_training_materials", "summary": "Download All Training Materials", "parameters": [{"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "material_type", "schema": {"default": "", "maxLength": 16, "title": "Material Type", "type": "string"}, "required": false}, {"in": "query", "name": "file_format", "schema": {"default": "", "maxLength": 16, "title": "File Format", "type": "string"}, "required": false}, {"in": "query", "name": "published_from", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published From"}, "required": false}, {"in": "query", "name": "published_to", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published To"}, "required": false}, {"in": "query", "name": "sort", "schema": {"default": "newest", "pattern": "^(newest|oldest|title)$", "title": "Sort", "type": "string"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: every file in these search results as one zip (2026-10-10).", "tags": ["outreach"]}}, "/api/v1/outreach/training/{material_id}/file": {"get": {"operationId": "hub_outreach_api_download_training_material", "summary": "Download Training Material", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "query", "name": "inline", "schema": {"default": false, "title": "Inline", "type": "boolean"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: a published training material's file (see _training_material).", "tags": ["outreach"]}}, "/api/v1/outreach/training/{material_id}/files/{file_id}": {"get": {"operationId": "hub_outreach_api_download_training_material_file", "summary": "Download Training Material File", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "path", "name": "file_id", "schema": {"title": "File Id", "type": "integer"}, "required": true}, {"in": "query", "name": "inline", "schema": {"default": false, "title": "Inline", "type": "boolean"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: one of a published training material's more files.", "tags": ["outreach"]}}, "/api/v1/outreach/training/{material_id}/preview": {"get": {"operationId": "hub_outreach_api_preview_training_material", "summary": "Preview Training Material", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public: a training material's preview image (see _training_material).", "tags": ["outreach"]}}, "/api/v1/outreach/training/{material_id}/files/{file_id}/preview": {"get": {"operationId": "hub_outreach_api_preview_training_material_file", "summary": "Preview Training Material File", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "path", "name": "file_id", "schema": {"title": "File Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public: the preview image of one of a training material's more files.", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials": {"get": {"operationId": "hub_outreach_api_list_public_outreach_materials", "summary": "List Public Outreach Materials", "parameters": [{"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "material_type", "schema": {"default": "", "maxLength": 16, "title": "Material Type", "type": "string"}, "required": false}, {"in": "query", "name": "file_format", "schema": {"default": "", "maxLength": 16, "title": "File Format", "type": "string"}, "required": false}, {"in": "query", "name": "published_from", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published From"}, "required": false}, {"in": "query", "name": "published_to", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published To"}, "required": false}, {"in": "query", "name": "sort", "schema": {"default": "newest", "pattern": "^(newest|oldest|title)$", "title": "Sort", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedMaterialOut"}}}}}, "description": "Public: the outreach materials made public (finished PDFs: posters,\nbanner, card, brief, FAQ, brochure), newest first unless ``sort`` says\notherwise; searchable. Paged.", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/download-all": {"get": {"operationId": "hub_outreach_api_download_all_public_outreach_materials", "summary": "Download All Public Outreach Materials", "parameters": [{"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "material_type", "schema": {"default": "", "maxLength": 16, "title": "Material Type", "type": "string"}, "required": false}, {"in": "query", "name": "file_format", "schema": {"default": "", "maxLength": 16, "title": "File Format", "type": "string"}, "required": false}, {"in": "query", "name": "published_from", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published From"}, "required": false}, {"in": "query", "name": "published_to", "schema": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published To"}, "required": false}, {"in": "query", "name": "sort", "schema": {"default": "newest", "pattern": "^(newest|oldest|title)$", "title": "Sort", "type": "string"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: every file in these search results as one zip (2026-10-10).", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}": {"get": {"operationId": "hub_outreach_api_get_public_outreach_material", "summary": "Get Public Outreach Material", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MaterialOut"}}}}}, "description": "Public: one public outreach material, for a link to share (2026-10-10).", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}/file": {"get": {"operationId": "hub_outreach_api_download_public_outreach_material", "summary": "Download Public Outreach Material", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "query", "name": "inline", "schema": {"default": false, "title": "Inline", "type": "boolean"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: a public outreach material's file (``inline``: shown in the\nbrowser, for a PDF or an image).", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}/files/{file_id}": {"get": {"operationId": "hub_outreach_api_download_public_outreach_material_file", "summary": "Download Public Outreach Material File", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "path", "name": "file_id", "schema": {"title": "File Id", "type": "integer"}, "required": true}, {"in": "query", "name": "inline", "schema": {"default": false, "title": "Inline", "type": "boolean"}, "required": false}], "responses": {"200": {"description": "OK"}}, "description": "Public: one of a public outreach material's more files.", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}/preview": {"get": {"operationId": "hub_outreach_api_preview_public_outreach_material", "summary": "Preview Public Outreach Material", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public: a public outreach material's preview image.", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}/social-card": {"get": {"operationId": "hub_outreach_api_public_outreach_material_social_card", "summary": "Public Outreach Material Social Card", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public: the 1200 x 627 image shown when this material is shared on\nsocial media (2026-10-10; hub.outreach.social): its preview and title.", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}/files/{file_id}/social-card": {"get": {"operationId": "hub_outreach_api_public_outreach_file_social_card", "summary": "Public Outreach File Social Card", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "path", "name": "file_id", "schema": {"title": "File Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public: the share image of one of a public outreach material's more\nfiles (2026-10-10): its preview, and \"material title: file label\".", "tags": ["outreach"]}}, "/api/v1/outreach/public-materials/{material_id}/files/{file_id}/preview": {"get": {"operationId": "hub_outreach_api_preview_public_outreach_material_file", "summary": "Preview Public Outreach Material File", "parameters": [{"in": "path", "name": "material_id", "schema": {"title": "Material Id", "type": "integer"}, "required": true}, {"in": "path", "name": "file_id", "schema": {"title": "File Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Public: the preview image of one of a public outreach material's more files.", "tags": ["outreach"]}}, "/api/v1/support": {"post": {"operationId": "hub_support_api_submit_support", "summary": "Submit Support", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SupportReceivedOut"}}}}}, "tags": ["support"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SupportIn"}}}, "required": true}}}, "/api/v1/support/endorsements": {"get": {"operationId": "hub_support_api_list_endorsements", "summary": "List Endorsements", "parameters": [{"in": "query", "name": "endorser_type", "schema": {"default": "", "title": "Endorser Type", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedEndorsementOut"}}}}}, "description": "Approved endorsements, newest first. Paged.", "tags": ["support"]}}, "/api/v1/support/stats": {"get": {"operationId": "hub_support_api_endorsement_stats", "summary": "Endorsement Stats", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SupportStatsOut"}}}}}, "description": "Counts of approved endorsements by type, and named vs anonymous.", "tags": ["support"]}}, "/api/v1/curation/curators": {"get": {"operationId": "hub_curation_api_public_curators", "summary": "Public Curators", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CuratorsOut"}}}}}, "description": "Public: the DataBank's curators who chose to be named, most published\ncurations first, and totals counting every curator.", "tags": ["curation"]}}, "/api/v1/curation/dataset-citation": {"get": {"operationId": "hub_curation_api_dataset_citation", "summary": "Dataset Citation", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DatasetCitationOut"}}}}}, "description": "Public: how to cite the pathogen\u2013reservoir associations, crediting\ntheir curators in the CRediT role \"Data curation\".", "tags": ["curation"]}}, "/api/v1/curation/associations/{association_id}/history": {"get": {"operationId": "hub_curation_api_history", "summary": "History", "parameters": [{"in": "path", "name": "association_id", "schema": {"title": "Association Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HistoryOut"}}}}}, "description": "Public: every version of a published curated association.", "tags": ["curation"]}}, "/api/v1/featured-publications": {"get": {"operationId": "hub_featured_publications_api_list_featured_publications", "summary": "List Featured Publications", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedFeaturedPublicationOut"}}}}}, "tags": ["featured-publications"]}}, "/api/v1/mailing-list/subscribe": {"post": {"operationId": "hub_mailing_list_api_subscribe", "summary": "Subscribe", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscribeOut"}}}}}, "tags": ["mailing-list"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscribeIn"}}}, "required": true}}}, "/api/v1/mailing-list/unsubscribe": {"post": {"operationId": "hub_mailing_list_api_unsubscribe", "summary": "Unsubscribe", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnsubscribeOut"}}}}}, "tags": ["mailing-list"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnsubscribeIn"}}}, "required": true}}}, "/api/v1/derived-analysis/results": {"get": {"operationId": "hub_derived_analysis_api_list_derived_analysis_results", "summary": "List Derived Analysis Results", "parameters": [{"in": "query", "name": "species_id", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "required": false}, {"in": "query", "name": "analysis_type", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Analysis Type"}, "required": false}, {"in": "query", "name": "q", "schema": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedDerivedAnalysisResultOut"}}}}}, "description": "Public, same reasoning as every other federated catalog endpoint on\nthis platform \u2014 aggregated metadata, not a per-record access-tier\nconcern (only the raw bytes at .../file are gated, see\nget_derived_analysis_result_file below). Paged (limit/offset, count);\na retracted result drops out (its citable ID still resolves).", "tags": ["derived-analysis"]}}, "/api/v1/derived-analysis/results/facets": {"get": {"operationId": "hub_derived_analysis_api_get_derived_analysis_facets", "summary": "Get Derived Analysis Facets", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DerivedAnalysisFacetsOut"}}}}}, "description": "Real, currently-present distinct analysis_type values only \u2014 not a\nhardcoded vocabulary, matching every other facets endpoint on this\nplatform (e.g. /genomes/facets).", "tags": ["derived-analysis"]}}, "/api/v1/derived-analysis/results/{result_id}": {"get": {"operationId": "hub_derived_analysis_api_get_derived_analysis_result", "summary": "Get Derived Analysis Result", "parameters": [{"in": "path", "name": "result_id", "schema": {"title": "Result Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DerivedAnalysisResultOut"}}}}}, "description": "Still answers for a retracted result: it is a tombstone, shown with\nits retraction notice.", "tags": ["derived-analysis"]}}, "/api/v1/derived-analysis/results/{result_id}/file": {"get": {"operationId": "hub_derived_analysis_api_get_derived_analysis_result_file", "summary": "Get Derived Analysis Result File", "parameters": [{"in": "path", "name": "result_id", "schema": {"title": "Result Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "The genuine Hub-hosted download, once a node<->Hub Transfers pull has\nlanded real bytes here (see DerivedAnalysisResult's own docstring) \u2014\nrequire_access is already fully generic across entity kinds (this is a\nsame-shaped new call site, not a new mechanism); since this isn't a\nSequenceRecord, a non-public result is Continental-Admin-only until a\nreal per-record approval mechanism exists for this type, same as\nStructureRecord/FieldSpecimenImageRecord today. A blank\nresult_storage_key (no transfer has happened yet) is a clean 404 \u2014 the\n\"View at source \u2197\" link is the intended fallback for that case, not an\nerror condition of its own.", "tags": ["derived-analysis"]}}, "/api/v1/node-profiles/areas": {"get": {"operationId": "hub_node_profiles_api_list_research_areas", "summary": "List Research Areas", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ResearchAreaOut"}, "title": "Response", "type": "array"}}}}}, "description": "Public: the research areas a node can choose from.", "tags": ["node-profiles"]}}, "/api/v1/node-profiles": {"get": {"operationId": "hub_node_profiles_api_list_public_profiles", "summary": "List Public Profiles", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/PublicProfileOut"}, "title": "Response", "type": "array"}}}}}, "description": "Public: every profile its node has published (and the Continental Admin hasn't hidden),\nfor participating nodes only. Never an address, a contact email or a server address.", "tags": ["node-profiles"]}}, "/api/v1/node-profiles/web-services": {"get": {"operationId": "hub_node_profiles_api_list_web_services", "summary": "List Web Services", "parameters": [{"in": "query", "name": "area", "schema": {"default": "", "title": "Area", "type": "string"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/WebServiceOut"}, "title": "Response", "type": "array"}}}}}, "description": "Public: the web services nodes offer, approved and switched on (optionally one research\narea), with their runs at the node over the last 30 days.", "tags": ["node-profiles"]}}, "/api/v1/node-profiles/{node_id}/enquiries": {"post": {"operationId": "hub_node_profiles_api_send_message_to_node", "summary": "Send Message To Node", "parameters": [{"in": "path", "name": "node_id", "schema": {"title": "Node Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EnquiryOut"}}}}}, "description": "Public, no login: a message to a node that accepts them, behind the CAPTCHA and daily\nlimits. The node's address is never shown; it replies to the sender directly.", "tags": ["node-profiles"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/EnquiryIn"}}}, "required": true}}}, "/api/v1/contributors/public": {"get": {"operationId": "hub_contributors_api_list_public_contributors", "summary": "List Public Contributors", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/PublicContributorOut"}, "title": "Response", "type": "array"}}}}}, "description": "Public (plan phase 2.6): the researchers credited for public records.", "tags": ["contributors"]}}, "/api/v1/contributors/public/{profile_id}": {"get": {"operationId": "hub_contributors_api_get_public_contributor", "summary": "Get Public Contributor", "parameters": [{"in": "path", "name": "profile_id", "schema": {"title": "Profile Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublicContributorDetailOut"}}}}}, "description": "Public: one contributor and the public records they submitted.", "tags": ["contributors"]}}, "/api/v1/contributors/nodes": {"get": {"operationId": "hub_contributors_api_list_accepting_nodes", "summary": "List Accepting Nodes", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AcceptingNodeOut"}, "title": "Response", "type": "array"}}}}}, "description": "Public: the nodes that accept contributors, for choosing where to submit.", "tags": ["contributors"]}}, "/api/v1/hosted-data": {"get": {"operationId": "hub_hosted_data_api_list_datasets", "summary": "List Datasets", "parameters": [{"in": "query", "name": "kind", "schema": {"default": "", "title": "Kind", "type": "string"}, "required": false}, {"in": "query", "name": "country", "schema": {"default": "", "title": "Country", "type": "string"}, "required": false}, {"in": "query", "name": "q", "schema": {"default": "", "title": "Q", "type": "string"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedDatasetOut"}}}}}, "description": "Public: published datasets (descriptions; files by their access tier).", "tags": ["hosted-data"]}}, "/api/v1/hosted-data/{dataset_id}": {"get": {"operationId": "hub_hosted_data_api_get_dataset", "summary": "Get Dataset", "parameters": [{"in": "path", "name": "dataset_id", "schema": {"title": "Dataset Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DatasetOut"}}}}}, "tags": ["hosted-data"]}}, "/api/v1/hosted-data/{dataset_id}/files/{index}": {"get": {"operationId": "hub_hosted_data_api_download_file", "summary": "Download File", "parameters": [{"in": "path", "name": "dataset_id", "schema": {"title": "Dataset Id", "type": "integer"}, "required": true}, {"in": "path", "name": "index", "schema": {"title": "Index", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "One file, served by the dataset's access tier (its steward decides requests).", "tags": ["hosted-data"]}}, "/api/v1/stewardship/moves/node/{move_id}/file": {"get": {"operationId": "hub_access_stewardship_api_move_file", "summary": "Move File", "parameters": [{"in": "path", "name": "move_id", "schema": {"title": "Move Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "The node taking a moved record downloads its file (Hub-signed token for this move).", "tags": ["stewardship"]}}, "/api/v1/stewardship/moves/node/{move_id}/delivered": {"post": {"operationId": "hub_access_stewardship_api_move_delivered", "summary": "Move Delivered", "parameters": [{"in": "path", "name": "move_id", "schema": {"title": "Move Id", "type": "integer"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MoveOut"}}}}}, "description": "The node taking a moved record reports its new id: the move completes.", "tags": ["stewardship"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeliveredIn"}}}, "required": true}}}}, "components": {"schemas": {"Input": {"properties": {"limit": {"default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer"}, "offset": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}}, "title": "Input", "type": "object"}, "SpeciesFilters": {"properties": {"q": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Q"}, "name_contains": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "title": "Name Contains"}, "iucn_status": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Iucn Status"}, "genome_category": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Genome Category"}, "starts_with": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Starts With"}, "taxonomic_class": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Taxonomic Class"}}, "title": "SpeciesFilters", "type": "object"}, "PagedSpeciesOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SpeciesOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSpeciesOut", "type": "object"}, "SpeciesOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "common_name": {"title": "Common Name", "type": "string"}, "ncbi_taxon_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Ncbi Taxon Id"}, "iucn_status": {"title": "Iucn Status", "type": "string"}, "endemic_range": {"title": "Endemic Range", "type": "string"}, "local_names_enriched_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Local Names Enriched At"}, "alphafold_proteome_id": {"title": "Alphafold Proteome Id", "type": "string"}, "alphafold_proteome_synced_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Alphafold Proteome Synced At"}, "taxonomic_domain": {"title": "Taxonomic Domain", "type": "string"}, "taxonomic_kingdom": {"title": "Taxonomic Kingdom", "type": "string"}, "taxonomic_class": {"title": "Taxonomic Class", "type": "string"}, "taxonomic_synonyms": {"items": {"type": "string"}, "title": "Taxonomic Synonyms", "type": "array"}, "taxonomic_lineage": {"title": "Taxonomic Lineage", "type": "string"}, "parent_species_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Parent Species Id"}, "parent_species_scientific_name": {"title": "Parent Species Scientific Name", "type": "string"}, "african_status": {"title": "African Status", "type": "string"}, "african_status_note": {"title": "African Status Note", "type": "string"}, "african_status_set_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "African Status Set At"}, "african_occurrence": {"title": "African Occurrence", "type": "string"}, "african_occurrence_detail": {"additionalProperties": true, "title": "African Occurrence Detail", "type": "object"}, "african_occurrence_checked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "African Occurrence Checked At"}}, "required": ["id", "scientific_name", "common_name", "ncbi_taxon_id", "iucn_status", "endemic_range", "local_names_enriched_at", "alphafold_proteome_id", "alphafold_proteome_synced_at", "taxonomic_domain", "taxonomic_kingdom", "taxonomic_class", "taxonomic_synonyms", "taxonomic_lineage", "parent_species_id", "parent_species_scientific_name", "african_status", "african_status_note", "african_status_set_at", "african_occurrence", "african_occurrence_detail", "african_occurrence_checked_at"], "title": "SpeciesOut", "type": "object"}, "SpeciesFacetsOut": {"properties": {"taxonomic_class": {"items": {"type": "string"}, "title": "Taxonomic Class", "type": "array"}}, "required": ["taxonomic_class"], "title": "SpeciesFacetsOut", "type": "object"}, "SpeciesUpdateIn": {"properties": {"common_name": {"title": "Common Name", "type": "string"}}, "required": ["common_name"], "title": "SpeciesUpdateIn", "type": "object"}, "PagedStrainOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/StrainOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedStrainOut", "type": "object"}, "StrainOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "genome_count": {"title": "Genome Count", "type": "integer"}}, "required": ["id", "scientific_name", "genome_count"], "title": "StrainOut", "type": "object"}, "TaxonomyTreeOut": {"properties": {"path": {"items": {"type": "string"}, "title": "Path", "type": "array"}, "children": {"items": {"$ref": "#/components/schemas/TreeChildOut"}, "title": "Children", "type": "array"}, "species": {"items": {"$ref": "#/components/schemas/TreeSpeciesOut"}, "title": "Species", "type": "array"}, "species_count": {"title": "Species Count", "type": "integer"}, "unclassified_count": {"title": "Unclassified Count", "type": "integer"}, "published_trees_enabled": {"default": false, "title": "Published Trees Enabled", "type": "boolean"}}, "required": ["path", "children", "species", "species_count", "unclassified_count"], "title": "TaxonomyTreeOut", "type": "object"}, "TreeChildOut": {"properties": {"path": {"items": {"type": "string"}, "title": "Path", "type": "array"}, "names": {"items": {"type": "string"}, "title": "Names", "type": "array"}, "species_count": {"title": "Species Count", "type": "integer"}, "species": {"items": {"$ref": "#/components/schemas/TreeSpeciesOut"}, "title": "Species", "type": "array"}, "has_children": {"title": "Has Children", "type": "boolean"}}, "required": ["path", "names", "species_count", "species", "has_children"], "title": "TreeChildOut", "type": "object"}, "TreeSpeciesOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "common_name": {"title": "Common Name", "type": "string"}}, "required": ["id", "scientific_name", "common_name"], "title": "TreeSpeciesOut", "type": "object"}, "RelatedGroupOut": {"properties": {"ancestor": {"title": "Ancestor", "type": "string"}, "path": {"items": {"type": "string"}, "title": "Path", "type": "array"}, "species": {"items": {"$ref": "#/components/schemas/RelatedSpeciesOut"}, "title": "Species", "type": "array"}}, "required": ["ancestor", "path", "species"], "title": "RelatedGroupOut", "type": "object"}, "RelatedSpeciesOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "common_name": {"title": "Common Name", "type": "string"}, "counts": {"additionalProperties": {"type": "integer"}, "title": "Counts", "type": "object"}}, "required": ["id", "scientific_name", "common_name", "counts"], "title": "RelatedSpeciesOut", "type": "object"}, "RelatedSpeciesResultOut": {"properties": {"path": {"items": {"type": "string"}, "title": "Path", "type": "array"}, "groups": {"items": {"$ref": "#/components/schemas/RelatedGroupOut"}, "title": "Groups", "type": "array"}, "truncated": {"title": "Truncated", "type": "boolean"}, "count_labels": {"additionalProperties": {"type": "string"}, "title": "Count Labels", "type": "object"}}, "required": ["path", "groups", "truncated", "count_labels"], "title": "RelatedSpeciesResultOut", "type": "object"}, "NotShownOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "reason": {"title": "Reason", "type": "string"}}, "required": ["id", "scientific_name", "reason"], "title": "NotShownOut", "type": "object"}, "PublishedTreeOut": {"properties": {"source": {"title": "Source", "type": "string"}, "source_label": {"title": "Source Label", "type": "string"}, "title": {"title": "Title", "type": "string"}, "release": {"title": "Release", "type": "string"}, "released": {"default": "", "title": "Released", "type": "string"}, "root": {"additionalProperties": true, "title": "Root", "type": "object"}, "has_support": {"title": "Has Support", "type": "boolean"}, "citation": {"additionalProperties": true, "title": "Citation", "type": "object"}, "studies": {"items": {"additionalProperties": true, "type": "object"}, "title": "Studies", "type": "array"}, "study_count": {"title": "Study Count", "type": "integer"}}, "required": ["source", "source_label", "title", "release", "root", "has_support", "citation", "studies", "study_count"], "title": "PublishedTreeOut", "type": "object"}, "PublishedTreesOut": {"properties": {"trees": {"items": {"$ref": "#/components/schemas/PublishedTreeOut"}, "title": "Trees", "type": "array"}, "not_shown": {"items": {"$ref": "#/components/schemas/NotShownOut"}, "title": "Not Shown", "type": "array"}}, "required": ["trees", "not_shown"], "title": "PublishedTreesOut", "type": "object"}, "AfricanStatusIn": {"properties": {"status": {"maxLength": 24, "title": "Status", "type": "string"}, "note": {"anyOf": [{"maxLength": 5000, "type": "string"}, {"type": "null"}], "title": "Note"}}, "required": ["status"], "title": "AfricanStatusIn", "type": "object"}, "PagedSpeciesAssociationOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SpeciesAssociationOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSpeciesAssociationOut", "type": "object"}, "SpeciesAfricaOut": {"description": "A species' Africa status on an association row (2026-10-09).", "properties": {"status": {"title": "Status", "type": "string"}, "occurrence": {"title": "Occurrence", "type": "string"}}, "required": ["status", "occurrence"], "title": "SpeciesAfricaOut", "type": "object"}, "SpeciesAssociationOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "related_species_id": {"title": "Related Species Id", "type": "integer"}, "related_species_scientific_name": {"title": "Related Species Scientific Name", "type": "string"}, "association_type": {"title": "Association Type", "type": "string"}, "status": {"title": "Status", "type": "string"}, "evidence_note": {"title": "Evidence Note", "type": "string"}, "publication_id": {"title": "Publication Id", "type": "integer"}, "publication_citable_id": {"title": "Publication Citable Id", "type": "string"}, "publication_title": {"title": "Publication Title", "type": "string"}, "citable_id": {"default": "", "title": "Citable Id", "type": "string"}, "publication_citation": {"default": "", "title": "Publication Citation", "type": "string"}, "publication_url": {"default": "", "title": "Publication Url", "type": "string"}, "direction": {"title": "Direction", "type": "string"}, "via_species_scientific_name": {"title": "Via Species Scientific Name", "type": "string"}, "species_africa": {"$ref": "#/components/schemas/SpeciesAfricaOut"}, "related_species_africa": {"$ref": "#/components/schemas/SpeciesAfricaOut"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}, "curation": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Curation"}}, "required": ["id", "species_id", "species_scientific_name", "related_species_id", "related_species_scientific_name", "association_type", "status", "evidence_note", "publication_id", "publication_citable_id", "publication_title", "direction", "via_species_scientific_name", "species_africa", "related_species_africa", "updated_at", "curation"], "title": "SpeciesAssociationOut", "type": "object"}, "AssociationImportJobDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "filename": {"title": "Filename", "type": "string"}, "check_only": {"title": "Check Only", "type": "boolean"}, "create_species": {"title": "Create Species", "type": "boolean"}, "from_check_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "From Check Id"}, "status": {"title": "Status", "type": "string"}, "row_count": {"title": "Row Count", "type": "integer"}, "summary": {"additionalProperties": true, "title": "Summary", "type": "object"}, "error": {"title": "Error", "type": "string"}, "created_by": {"title": "Created By", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "finished_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Finished At"}, "results": {"items": {"additionalProperties": true, "type": "object"}, "title": "Results", "type": "array"}}, "required": ["id", "filename", "check_only", "create_species", "from_check_id", "status", "row_count", "summary", "error", "created_by", "created_at", "finished_at", "results"], "title": "AssociationImportJobDetailOut", "type": "object"}, "AssociationImportJobOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "filename": {"title": "Filename", "type": "string"}, "check_only": {"title": "Check Only", "type": "boolean"}, "create_species": {"title": "Create Species", "type": "boolean"}, "from_check_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "From Check Id"}, "status": {"title": "Status", "type": "string"}, "row_count": {"title": "Row Count", "type": "integer"}, "summary": {"additionalProperties": true, "title": "Summary", "type": "object"}, "error": {"title": "Error", "type": "string"}, "created_by": {"title": "Created By", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "finished_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Finished At"}}, "required": ["id", "filename", "check_only", "create_species", "from_check_id", "status", "row_count", "summary", "error", "created_by", "created_at", "finished_at"], "title": "AssociationImportJobOut", "type": "object"}, "PagedAssociationImportJobOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/AssociationImportJobOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedAssociationImportJobOut", "type": "object"}, "ReviewOverviewOut": {"properties": {"four_eyes": {"title": "Four Eyes", "type": "boolean"}, "reviewer": {"title": "Reviewer", "type": "string"}, "pending_total": {"title": "Pending Total", "type": "integer"}, "runs": {"items": {"$ref": "#/components/schemas/ReviewRunOut"}, "title": "Runs", "type": "array"}}, "required": ["four_eyes", "reviewer", "pending_total", "runs"], "title": "ReviewOverviewOut", "type": "object"}, "ReviewRunOut": {"properties": {"import_job_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Import Job Id"}, "filename": {"title": "Filename", "type": "string"}, "imported_by": {"title": "Imported By", "type": "string"}, "imported_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Imported At"}, "pending": {"title": "Pending", "type": "integer"}, "published": {"title": "Published", "type": "integer"}, "rejected": {"title": "Rejected", "type": "integer"}, "curated": {"default": false, "title": "Curated", "type": "boolean"}}, "required": ["import_job_id", "filename", "imported_by", "imported_at", "pending", "published", "rejected"], "title": "ReviewRunOut", "type": "object"}, "AssociationReviewOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "related_species_id": {"title": "Related Species Id", "type": "integer"}, "related_species_scientific_name": {"title": "Related Species Scientific Name", "type": "string"}, "status": {"title": "Status", "type": "string"}, "evidence_note": {"title": "Evidence Note", "type": "string"}, "review_status": {"title": "Review Status", "type": "string"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "pmid": {"title": "Pmid", "type": "string"}, "publication_doi": {"title": "Publication Doi", "type": "string"}, "doi_reason": {"title": "Doi Reason", "type": "string"}, "publication_title": {"title": "Publication Title", "type": "string"}, "publication_year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Publication Year"}, "publication_journal": {"title": "Publication Journal", "type": "string"}, "import_job_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Import Job Id"}, "imported_by": {"title": "Imported By", "type": "string"}, "reviewed_by": {"title": "Reviewed By", "type": "string"}, "reviewed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Reviewed At"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "species_africa": {"$ref": "#/components/schemas/SpeciesAfricaOut"}, "related_species_africa": {"$ref": "#/components/schemas/SpeciesAfricaOut"}, "curated_by": {"title": "Curated By", "type": "string"}, "co_curated_by": {"title": "Co Curated By", "type": "string"}}, "required": ["id", "species_id", "species_scientific_name", "related_species_id", "related_species_scientific_name", "status", "evidence_note", "review_status", "rejection_reason", "pmid", "publication_doi", "doi_reason", "publication_title", "publication_year", "publication_journal", "import_job_id", "imported_by", "reviewed_by", "reviewed_at", "created_at", "species_africa", "related_species_africa", "curated_by", "co_curated_by"], "title": "AssociationReviewOut", "type": "object"}, "PagedAssociationReviewOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/AssociationReviewOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedAssociationReviewOut", "type": "object"}, "ReviewDecisionOut": {"properties": {"approved": {"title": "Approved", "type": "integer"}, "rejected": {"title": "Rejected", "type": "integer"}, "returned": {"default": 0, "title": "Returned", "type": "integer"}, "refused": {"title": "Refused", "type": "integer"}, "refused_reason": {"title": "Refused Reason", "type": "string"}}, "required": ["approved", "rejected", "refused", "refused_reason"], "title": "ReviewDecisionOut", "type": "object"}, "ReviewDecisionIn": {"properties": {"decision": {"pattern": "^(approve|reject|changes)$", "title": "Decision", "type": "string"}, "ids": {"default": [], "items": {"type": "integer"}, "title": "Ids", "type": "array"}, "import_job_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Import Job Id"}, "command_line": {"default": false, "title": "Command Line", "type": "boolean"}, "curated": {"default": false, "title": "Curated", "type": "boolean"}, "all_pending_in_run": {"default": false, "title": "All Pending In Run", "type": "boolean"}, "reason": {"default": "", "maxLength": 5000, "title": "Reason", "type": "string"}}, "required": ["decision"], "title": "ReviewDecisionIn", "type": "object"}, "ReviewEditIn": {"properties": {"status": {"anyOf": [{"pattern": "^(confirmed|suspected)$", "type": "string"}, {"type": "null"}], "title": "Status"}, "evidence_note": {"anyOf": [{"maxLength": 5000, "type": "string"}, {"type": "null"}], "title": "Evidence Note"}}, "title": "ReviewEditIn", "type": "object"}, "PagedSpeciesLocalNameOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SpeciesLocalNameOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSpeciesLocalNameOut", "type": "object"}, "SpeciesLocalNameOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "language": {"title": "Language", "type": "string"}, "country": {"title": "Country", "type": "string"}, "source": {"title": "Source", "type": "string"}, "source_url": {"title": "Source Url", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean"}, "contributed_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Contributed By"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "species_id", "name", "language", "country", "source", "source_url", "is_active", "contributed_by", "created_at"], "title": "SpeciesLocalNameOut", "type": "object"}, "SpeciesLocalNameSubmissionOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "name": {"title": "Name", "type": "string"}, "language": {"title": "Language", "type": "string"}, "country": {"title": "Country", "type": "string"}, "notes": {"title": "Notes", "type": "string"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "status": {"title": "Status", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "created_local_name_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Created Local Name Id"}}, "required": ["id", "species_id", "species_scientific_name", "name", "language", "country", "notes", "submitted_by", "status", "submitted_at", "decided_by", "decided_at", "rejection_reason", "created_local_name_id"], "title": "SpeciesLocalNameSubmissionOut", "type": "object"}, "SpeciesLocalNameSubmissionIn": {"properties": {"name": {"title": "Name", "type": "string"}, "language": {"default": "", "title": "Language", "type": "string"}, "country": {"default": "", "title": "Country", "type": "string"}, "notes": {"default": "", "title": "Notes", "type": "string"}}, "required": ["name"], "title": "SpeciesLocalNameSubmissionIn", "type": "object"}, "LocalNameBulkToggleIn": {"properties": {"ids": {"items": {"type": "integer"}, "title": "Ids", "type": "array"}, "is_active": {"title": "Is Active", "type": "boolean"}}, "required": ["ids", "is_active"], "title": "LocalNameBulkToggleIn", "type": "object"}, "LocalNamesRefreshAck": {"properties": {"dispatched": {"title": "Dispatched", "type": "boolean"}}, "required": ["dispatched"], "title": "LocalNamesRefreshAck", "type": "object"}, "LocalNameToggleIn": {"properties": {"is_active": {"title": "Is Active", "type": "boolean"}}, "required": ["is_active"], "title": "LocalNameToggleIn", "type": "object"}, "PagedSpeciesLocalNameSubmissionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SpeciesLocalNameSubmissionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSpeciesLocalNameSubmissionOut", "type": "object"}, "RejectSubmissionIn": {"properties": {"reason": {"default": "", "title": "Reason", "type": "string"}}, "title": "RejectSubmissionIn", "type": "object"}, "SequenceFilters": {"properties": {"species_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "access_tier": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Access Tier"}, "country_of_origin": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Country Of Origin"}, "license_tag": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "License Tag"}, "origin": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Origin"}, "goat_assembly_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Goat Assembly Level"}, "min_busco": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Busco"}, "sequence_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sequence Type"}, "source_release_date_from": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Source Release Date From"}, "source_release_date_to": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Source Release Date To"}, "institution": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Institution"}, "skip_availability_checks": {"default": false, "title": "Skip Availability Checks", "type": "boolean"}}, "title": "SequenceFilters", "type": "object"}, "PagedSequenceRecordOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SequenceRecordOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSequenceRecordOut", "type": "object"}, "SequenceRecordOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "specimen_id": {"title": "Specimen Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_common_name": {"title": "Species Common Name", "type": "string"}, "species_ncbi_taxon_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Ncbi Taxon Id"}, "specimen_collection_site": {"title": "Specimen Collection Site", "type": "string"}, "specimen_latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Specimen Latitude"}, "specimen_longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Specimen Longitude"}, "specimen_collection_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Specimen Collection Date"}, "specimen_collector": {"title": "Specimen Collector", "type": "string"}, "specimen_institution": {"title": "Specimen Institution", "type": "string"}, "specimen_institution_ror_id": {"title": "Specimen Institution Ror Id", "type": "string"}, "specimen_voucher_id": {"title": "Specimen Voucher Id", "type": "string"}, "specimen_sex": {"title": "Specimen Sex", "type": "string"}, "specimen_ploidy": {"title": "Specimen Ploidy", "type": "string"}, "sequence_type": {"title": "Sequence Type", "type": "string"}, "organelle": {"title": "Organelle", "type": "string"}, "genome_completeness": {"title": "Genome Completeness", "type": "string"}, "file_format": {"title": "File Format", "type": "string"}, "assembly_version": {"title": "Assembly Version", "type": "string"}, "sequencing_platform": {"title": "Sequencing Platform", "type": "string"}, "assembler_tool": {"title": "Assembler Tool", "type": "string"}, "coverage_depth": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Coverage Depth"}, "source_release_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Source Release Date"}, "source_submitter": {"title": "Source Submitter", "type": "string"}, "storage_key": {"title": "Storage Key", "type": "string"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "goat_assembly_level": {"title": "Goat Assembly Level", "type": "string"}, "goat_genome_size_bp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Goat Genome Size Bp"}, "goat_scaffold_n50": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Goat Scaffold N50"}, "goat_busco_complete_pct": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Goat Busco Complete Pct"}, "goat_chromosome_count": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Goat Chromosome Count"}, "goat_enriched_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Goat Enriched At"}, "ena_submission_consent": {"title": "Ena Submission Consent", "type": "boolean"}, "ena_study_accession": {"title": "Ena Study Accession", "type": "string"}, "ena_sample_accession": {"title": "Ena Sample Accession", "type": "string"}, "ena_analysis_accession": {"title": "Ena Analysis Accession", "type": "string"}, "ena_assembly_accession": {"title": "Ena Assembly Accession", "type": "string"}, "ena_submission_status": {"title": "Ena Submission Status", "type": "string"}, "ena_submitted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Ena Submitted At"}, "ena_links": {"default": [], "items": {"additionalProperties": true, "type": "object"}, "title": "Ena Links", "type": "array"}, "assembly_program": {"title": "Assembly Program", "type": "string"}, "assembly_platform": {"title": "Assembly Platform", "type": "string"}, "assembly_coverage": {"title": "Assembly Coverage", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "file_available": {"title": "File Available", "type": "boolean"}, "annotation_gff_available": {"title": "Annotation Gff Available", "type": "boolean"}, "cds_fasta_available": {"title": "Cds Fasta Available", "type": "boolean"}, "protein_fasta_available": {"title": "Protein Fasta Available", "type": "boolean"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "specimen_id", "species_scientific_name", "species_id", "species_common_name", "species_ncbi_taxon_id", "specimen_collection_site", "specimen_latitude", "specimen_longitude", "specimen_collection_date", "specimen_collector", "specimen_institution", "specimen_institution_ror_id", "specimen_voucher_id", "specimen_sex", "specimen_ploidy", "sequence_type", "organelle", "genome_completeness", "file_format", "assembly_version", "sequencing_platform", "assembler_tool", "coverage_depth", "source_release_date", "source_submitter", "storage_key", "origin", "origin_node_id", "origin_entity_id", "hop_chain", "source_repository", "source_accession", "sha256_checksum", "access_tier", "embargo_level", "embargo_release_date", "license_tag", "citable_id", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "goat_assembly_level", "goat_genome_size_bp", "goat_scaffold_n50", "goat_busco_complete_pct", "goat_chromosome_count", "goat_enriched_at", "ena_submission_consent", "ena_study_accession", "ena_sample_accession", "ena_analysis_accession", "ena_assembly_accession", "ena_submission_status", "ena_submitted_at", "assembly_program", "assembly_platform", "assembly_coverage", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "file_available", "annotation_gff_available", "cds_fasta_available", "protein_fasta_available", "created_at", "updated_at"], "title": "SequenceRecordOut", "type": "object"}, "SequenceFacetsOut": {"properties": {"country_of_origin": {"items": {"type": "string"}, "title": "Country Of Origin", "type": "array"}, "license_tag": {"items": {"type": "string"}, "title": "License Tag", "type": "array"}, "origin": {"items": {"type": "string"}, "title": "Origin", "type": "array"}, "goat_assembly_level": {"items": {"type": "string"}, "title": "Goat Assembly Level", "type": "array"}, "sequence_type": {"items": {"type": "string"}, "title": "Sequence Type", "type": "array"}}, "required": ["country_of_origin", "license_tag", "origin", "goat_assembly_level", "sequence_type"], "title": "SequenceFacetsOut", "type": "object"}, "MirroredRawReadsReferenceOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "run_accession": {"title": "Run Accession", "type": "string"}, "experiment_accession": {"title": "Experiment Accession", "type": "string"}, "study_accession": {"title": "Study Accession", "type": "string"}, "sample_accession": {"title": "Sample Accession", "type": "string"}, "platform": {"title": "Platform", "type": "string"}, "total_bases": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Total Bases"}, "total_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Total Size Bytes"}, "source_repository": {"title": "Source Repository", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "discovered_at": {"format": "date-time", "title": "Discovered At", "type": "string"}}, "required": ["id", "run_accession", "experiment_accession", "study_accession", "sample_accession", "platform", "total_bases", "total_size_bytes", "source_repository", "external_url", "citable_id", "discovered_at"], "title": "MirroredRawReadsReferenceOut", "type": "object"}, "PagedMirroredRawReadsReferenceOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MirroredRawReadsReferenceOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMirroredRawReadsReferenceOut", "type": "object"}, "EnaConsentIn": {"properties": {"consent": {"title": "Consent", "type": "boolean"}}, "required": ["consent"], "title": "EnaConsentIn", "type": "object"}, "AssemblyMetadataIn": {"properties": {"assembly_program": {"default": "", "title": "Assembly Program", "type": "string"}, "assembly_platform": {"default": "", "title": "Assembly Platform", "type": "string"}, "assembly_coverage": {"default": "", "title": "Assembly Coverage", "type": "string"}}, "title": "AssemblyMetadataIn", "type": "object"}, "EmbargoIn": {"properties": {"access_tier": {"title": "Access Tier", "type": "string"}, "embargo_level": {"default": "", "title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}}, "required": ["access_tier"], "title": "EmbargoIn", "type": "object"}, "RetractionRequestIn": {"properties": {"reason": {"maxLength": 5000, "minLength": 1, "title": "Reason", "type": "string"}, "public_notice": {"default": "", "maxLength": 5000, "title": "Public Notice", "type": "string"}}, "required": ["reason"], "title": "RetractionRequestIn", "type": "object"}, "RetractionDecisionIn": {"properties": {"approve": {"title": "Approve", "type": "boolean"}}, "required": ["approve"], "title": "RetractionDecisionIn", "type": "object"}, "PagedRawReadsSampleDiscoveryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RawReadsSampleDiscoveryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRawReadsSampleDiscoveryOut", "type": "object"}, "RawReadsSampleDiscoveryOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "sequence_record_origin_node_id": {"title": "Sequence Record Origin Node Id", "type": "string"}, "sequence_record_origin_entity_id": {"title": "Sequence Record Origin Entity Id", "type": "string"}, "platform": {"title": "Platform", "type": "string"}, "raw_reads_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Raw Reads Size Bytes"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "raw_reads_storage_key": {"title": "Raw Reads Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}}, "required": ["id", "sequence_record_origin_node_id", "sequence_record_origin_entity_id", "platform", "raw_reads_size_bytes", "origin_node_id", "origin_entity_id", "raw_reads_storage_key", "sha256_checksum"], "title": "RawReadsSampleDiscoveryOut", "type": "object"}, "ComputeRequestOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "requester": {"title": "Requester", "type": "string"}, "resource_type": {"title": "Resource Type", "type": "string"}, "target_node_id": {"title": "Target Node Id", "type": "string"}, "target_node_tier": {"title": "Target Node Tier", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "status": {"title": "Status", "type": "string"}, "query_sequence": {"title": "Query Sequence", "type": "string"}, "top_n": {"title": "Top N", "type": "integer"}, "result_data": {"additionalProperties": true, "title": "Result Data", "type": "object"}, "error_detail": {"title": "Error Detail", "type": "string"}, "duration_seconds": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Duration Seconds"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "completed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Completed At"}, "decided_by": {"title": "Decided By", "type": "string"}, "result_reference": {"title": "Result Reference", "type": "string"}, "tool_id": {"title": "Tool Id", "type": "string"}, "accepted_modes": {"items": {"type": "string"}, "title": "Accepted Modes", "type": "array"}, "output_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Output Size Bytes"}, "input_available": {"title": "Input Available", "type": "boolean"}, "output_available": {"title": "Output Available", "type": "boolean"}, "custom_image": {"title": "Custom Image", "type": "string"}, "base_image_verified_digest": {"title": "Base Image Verified Digest", "type": "string"}, "delivery": {"default": "", "title": "Delivery", "type": "string"}, "claim_count": {"default": 0, "title": "Claim Count", "type": "integer"}, "node_service_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Node Service Id"}, "service_values": {"additionalProperties": true, "default": {}, "title": "Service Values", "type": "object"}}, "required": ["id", "requester", "resource_type", "target_node_id", "target_node_tier", "purpose", "status", "query_sequence", "top_n", "result_data", "error_detail", "duration_seconds", "requested_at", "decided_at", "decided_by", "result_reference", "tool_id", "accepted_modes", "output_size_bytes", "input_available", "output_available", "custom_image", "base_image_verified_digest"], "title": "ComputeRequestOut", "type": "object"}, "ComputeRequestIn": {"properties": {"resource_type": {"title": "Resource Type", "type": "string"}, "target_node_id": {"title": "Target Node Id", "type": "string"}, "target_node_tier": {"default": "", "title": "Target Node Tier", "type": "string"}, "purpose": {"default": "", "title": "Purpose", "type": "string"}, "query_sequence": {"default": "", "title": "Query Sequence", "type": "string"}, "top_n": {"default": 10, "title": "Top N", "type": "integer"}}, "required": ["resource_type", "target_node_id"], "title": "ComputeRequestIn", "type": "object"}, "PagedComputeRequestOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ComputeRequestOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedComputeRequestOut", "type": "object"}, "ErrorOut": {"properties": {"detail": {"title": "Detail", "type": "string"}}, "required": ["detail"], "title": "ErrorOut", "type": "object"}, "ComputeRequestDecision": {"properties": {"status": {"title": "Status", "type": "string"}}, "required": ["status"], "title": "ComputeRequestDecision", "type": "object"}, "ComputeSearchBatchDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "requester": {"title": "Requester", "type": "string"}, "query_sequence": {"title": "Query Sequence", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "top_n": {"title": "Top N", "type": "integer"}, "resource_type": {"title": "Resource Type", "type": "string"}, "tool_id": {"title": "Tool Id", "type": "string"}, "custom_image": {"title": "Custom Image", "type": "string"}, "base_image_verified_digest": {"title": "Base Image Verified Digest", "type": "string"}, "accepted_modes": {"items": {"type": "string"}, "title": "Accepted Modes", "type": "array"}, "input_available": {"title": "Input Available", "type": "boolean"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "items": {"items": {"$ref": "#/components/schemas/ComputeRequestOut"}, "title": "Items", "type": "array"}}, "required": ["id", "requester", "query_sequence", "purpose", "top_n", "resource_type", "tool_id", "custom_image", "base_image_verified_digest", "accepted_modes", "input_available", "requested_at", "items"], "title": "ComputeSearchBatchDetailOut", "type": "object"}, "ComputeSearchBatchIn": {"properties": {"query_sequence": {"default": "", "title": "Query Sequence", "type": "string"}, "purpose": {"default": "", "title": "Purpose", "type": "string"}, "top_n": {"default": 10, "title": "Top N", "type": "integer"}, "resource_type": {"default": "blast", "title": "Resource Type", "type": "string"}, "targets": {"items": {"$ref": "#/components/schemas/ComputeSearchTargetIn"}, "title": "Targets", "type": "array"}, "tool_id": {"default": "", "title": "Tool Id", "type": "string"}, "custom_image": {"default": "", "title": "Custom Image", "type": "string"}, "accepted_modes": {"default": [], "items": {"type": "string"}, "title": "Accepted Modes", "type": "array"}}, "required": ["targets"], "title": "ComputeSearchBatchIn", "type": "object"}, "ComputeSearchTargetIn": {"properties": {"target_node_id": {"title": "Target Node Id", "type": "string"}, "target_node_tier": {"default": "", "title": "Target Node Tier", "type": "string"}}, "required": ["target_node_id"], "title": "ComputeSearchTargetIn", "type": "object"}, "ComputeSearchBatchOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "requester": {"title": "Requester", "type": "string"}, "query_sequence": {"title": "Query Sequence", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "top_n": {"title": "Top N", "type": "integer"}, "resource_type": {"title": "Resource Type", "type": "string"}, "tool_id": {"title": "Tool Id", "type": "string"}, "custom_image": {"title": "Custom Image", "type": "string"}, "base_image_verified_digest": {"title": "Base Image Verified Digest", "type": "string"}, "accepted_modes": {"items": {"type": "string"}, "title": "Accepted Modes", "type": "array"}, "input_available": {"title": "Input Available", "type": "boolean"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}}, "required": ["id", "requester", "query_sequence", "purpose", "top_n", "resource_type", "tool_id", "custom_image", "base_image_verified_digest", "accepted_modes", "input_available", "requested_at"], "title": "ComputeSearchBatchOut", "type": "object"}, "PagedComputeSearchBatchOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ComputeSearchBatchOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedComputeSearchBatchOut", "type": "object"}, "NodeServiceTargetOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "node_name": {"title": "Node Name", "type": "string"}, "name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "url": {"title": "Url", "type": "string"}, "citation": {"title": "Citation", "type": "string"}, "terms_url": {"title": "Terms Url", "type": "string"}, "inputs": {"items": {"$ref": "#/components/schemas/ServiceInputOut"}, "title": "Inputs", "type": "array"}, "max_input_mb": {"title": "Max Input Mb", "type": "integer"}}, "required": ["id", "node_id", "node_name", "name", "description", "url", "citation", "terms_url", "inputs", "max_input_mb"], "title": "NodeServiceTargetOut", "type": "object"}, "PagedNodeServiceTargetOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/NodeServiceTargetOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedNodeServiceTargetOut", "type": "object"}, "ServiceInputOut": {"properties": {"name": {"title": "Name", "type": "string"}, "label": {"default": "", "title": "Label", "type": "string"}, "type": {"default": "text", "title": "Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}, "choices": {"default": [], "items": {"type": "string"}, "title": "Choices", "type": "array"}, "default": {"type": "string", "default": "", "title": "Default"}, "help": {"default": "", "title": "Help", "type": "string"}}, "required": ["name"], "title": "ServiceInputOut", "type": "object"}, "ComputeToolOut": {"properties": {"tool_id": {"title": "Tool Id", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "description": {"title": "Description", "type": "string"}}, "required": ["tool_id", "display_name", "description"], "title": "ComputeToolOut", "type": "object"}, "PagedComputeToolOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ComputeToolOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedComputeToolOut", "type": "object"}, "ApprovedBaseImageOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "display_name": {"title": "Display Name", "type": "string"}, "image": {"title": "Image", "type": "string"}}, "required": ["id", "display_name", "image"], "title": "ApprovedBaseImageOut", "type": "object"}, "PagedApprovedBaseImageOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ApprovedBaseImageOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedApprovedBaseImageOut", "type": "object"}, "ComputeParticipationTermsOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "terms_text": {"title": "Terms Text", "type": "string"}, "attribution_text": {"title": "Attribution Text", "type": "string"}, "updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Updated At"}}, "required": ["id", "tier", "node_id", "terms_text", "attribution_text"], "title": "ComputeParticipationTermsOut", "type": "object"}, "PagedComputeParticipationTermsOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ComputeParticipationTermsOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedComputeParticipationTermsOut", "type": "object"}, "ComputeParticipationTermsIn": {"properties": {"terms_text": {"default": "", "title": "Terms Text", "type": "string"}, "attribution_text": {"default": "", "title": "Attribution Text", "type": "string"}}, "title": "ComputeParticipationTermsIn", "type": "object"}, "ClaimResponse": {"properties": {"jobs": {"items": {"$ref": "#/components/schemas/WorkJob"}, "title": "Jobs", "type": "array"}, "lease_seconds": {"title": "Lease Seconds", "type": "integer"}}, "required": ["lease_seconds"], "title": "ClaimResponse", "type": "object"}, "WorkJob": {"description": "One compute request handed to the node. Which fields are set depends on ``kind``.", "properties": {"request_id": {"title": "Request Id", "type": "integer"}, "kind": {"enum": ["blast", "phylogenetics", "general_hpc", "node_service"], "title": "Kind", "type": "string"}, "lease_token": {"title": "Lease Token", "type": "string"}, "lease_expires_at": {"format": "date-time", "title": "Lease Expires At", "type": "string"}, "query_sequence": {"default": "", "title": "Query Sequence", "type": "string"}, "top_n": {"default": 10, "title": "Top N", "type": "integer"}, "image": {"default": "", "title": "Image", "type": "string"}, "command": {"items": {"type": "string"}, "title": "Command", "type": "array"}, "needs_network": {"default": false, "title": "Needs Network", "type": "boolean"}, "tool_id": {"default": "", "title": "Tool Id", "type": "string"}, "custom_image": {"default": "", "title": "Custom Image", "type": "string"}, "input_files": {"items": {"type": "string"}, "title": "Input Files", "type": "array"}, "hub_service_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Hub Service Id"}, "values": {"additionalProperties": {"type": "string"}, "title": "Values", "type": "object"}}, "required": ["request_id", "kind", "lease_token", "lease_expires_at"], "title": "WorkJob", "type": "object"}, "ClaimRequest": {"properties": {"node_id": {"maxLength": 128, "minLength": 1, "title": "Node Id", "type": "string"}, "kinds": {"items": {"type": "string"}, "title": "Kinds", "type": "array"}, "limit": {"default": 1, "maximum": 10, "minimum": 0, "title": "Limit", "type": "integer"}, "services": {"items": {"$ref": "#/components/schemas/OfferedService"}, "maxItems": 50, "title": "Services", "type": "array"}, "node_version": {"default": "", "maxLength": 32, "title": "Node Version", "type": "string"}}, "required": ["node_id"], "title": "ClaimRequest", "type": "object"}, "OfferedService": {"description": "A web service (API form) the node offers as a compute target on the Hub:\none the Hub lists (``hub_service_id``) and the operators switched on.", "properties": {"hub_service_id": {"title": "Hub Service Id", "type": "integer"}, "inputs": {"items": {"$ref": "#/components/schemas/ServiceInput"}, "maxItems": 30, "title": "Inputs", "type": "array"}, "max_input_mb": {"default": 100, "minimum": 1, "title": "Max Input Mb", "type": "integer"}}, "required": ["hub_service_id"], "title": "OfferedService", "type": "object"}, "ServiceInput": {"description": "One input of a node web service's form, as the node's operators described it.", "properties": {"name": {"maxLength": 64, "minLength": 1, "title": "Name", "type": "string"}, "label": {"default": "", "maxLength": 120, "title": "Label", "type": "string"}, "type": {"default": "text", "title": "Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}, "choices": {"items": {"type": "string"}, "maxItems": 50, "title": "Choices", "type": "array"}, "default": {"type": "string", "maxLength": 500, "default": "", "title": "Default"}, "help": {"default": "", "maxLength": 300, "title": "Help", "type": "string"}}, "required": ["name"], "title": "ServiceInput", "type": "object"}, "ModeResponse": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "fetch": {"title": "Fetch", "type": "boolean"}, "released": {"default": 0, "title": "Released", "type": "integer"}}, "required": ["node_id", "fetch"], "title": "ModeResponse", "type": "object"}, "ModeRequest": {"description": "The node says whether it fetches its work. Off: the Hub calls it again.", "properties": {"node_id": {"maxLength": 128, "minLength": 1, "title": "Node Id", "type": "string"}, "fetch": {"title": "Fetch", "type": "boolean"}}, "required": ["node_id", "fetch"], "title": "ModeRequest", "type": "object"}, "LeaseResponse": {"properties": {"request_id": {"title": "Request Id", "type": "integer"}, "lease_expires_at": {"format": "date-time", "title": "Lease Expires At", "type": "string"}}, "required": ["request_id", "lease_expires_at"], "title": "LeaseResponse", "type": "object"}, "LeaseRequest": {"properties": {"node_id": {"maxLength": 128, "minLength": 1, "title": "Node Id", "type": "string"}, "lease_token": {"maxLength": 128, "minLength": 1, "title": "Lease Token", "type": "string"}}, "required": ["node_id", "lease_token"], "title": "LeaseRequest", "type": "object"}, "ResultReceipt": {"properties": {"request_id": {"title": "Request Id", "type": "integer"}, "status": {"title": "Status", "type": "string"}, "output_stored": {"default": false, "title": "Output Stored", "type": "boolean"}, "duplicate": {"default": false, "title": "Duplicate", "type": "boolean"}}, "required": ["request_id", "status"], "title": "ResultReceipt", "type": "object"}, "StartOut": {"properties": {"device_code": {"title": "Device Code", "type": "string"}, "user_code": {"title": "User Code", "type": "string"}, "verification_url": {"title": "Verification Url", "type": "string"}, "expires_in": {"title": "Expires In", "type": "integer"}, "interval": {"title": "Interval", "type": "integer"}}, "required": ["device_code", "user_code", "verification_url", "expires_in", "interval"], "title": "StartOut", "type": "object"}, "StartIn": {"properties": {"file_name": {"maxLength": 255, "title": "File Name", "type": "string"}, "size_bytes": {"title": "Size Bytes", "type": "integer"}}, "required": ["file_name", "size_bytes"], "title": "StartIn", "type": "object"}, "BundleOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "parent_node_id": {"title": "Parent Node Id", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}, "hub_web_base_url": {"title": "Hub Web Base Url", "type": "string"}, "hub_jwt_public_key": {"title": "Hub Jwt Public Key", "type": "string"}, "node_sync_token": {"title": "Node Sync Token", "type": "string"}, "release_token": {"title": "Release Token", "type": "string"}, "status": {"title": "Status", "type": "string"}, "push_token": {"default": "", "title": "Push Token", "type": "string"}}, "required": ["node_id", "tier", "parent_node_id", "display_name", "country", "base_url", "hub_web_base_url", "hub_jwt_public_key", "node_sync_token", "release_token", "status"], "title": "BundleOut", "type": "object"}, "PendingOut": {"properties": {"detail": {"title": "Detail", "type": "string"}, "pending": {"default": true, "title": "Pending", "type": "boolean"}}, "required": ["detail"], "title": "PendingOut", "type": "object"}, "DeviceCodeIn": {"properties": {"device_code": {"maxLength": 128, "title": "Device Code", "type": "string"}}, "required": ["device_code"], "title": "DeviceCodeIn", "type": "object"}, "ReachableOut": {"properties": {"reachable": {"title": "Reachable", "type": "boolean"}}, "required": ["reachable"], "title": "ReachableOut", "type": "object"}, "PushTokenOut": {"properties": {"push_token": {"title": "Push Token", "type": "string"}}, "required": ["push_token"], "title": "PushTokenOut", "type": "object"}, "OperatorNodeOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "status": {"title": "Status", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}}, "required": ["node_id", "tier", "status", "base_url"], "title": "OperatorNodeOut", "type": "object"}, "ConnectOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}, "registration": {"title": "Registration", "type": "string"}}, "required": ["node_id", "base_url", "registration"], "title": "ConnectOut", "type": "object"}, "ConnectIn": {"properties": {"user_code": {"maxLength": 16, "title": "User Code", "type": "string"}, "node_id": {"maxLength": 128, "title": "Node Id", "type": "string"}, "base_url": {"maxLength": 512, "title": "Base Url", "type": "string"}, "display_name": {"default": "", "maxLength": 255, "title": "Display Name", "type": "string"}}, "required": ["user_code", "node_id", "base_url"], "title": "ConnectIn", "type": "object"}, "AccessRequestOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "sequence_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Sequence Record Id"}, "entity_type": {"title": "Entity Type", "type": "string"}, "record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Record Id"}, "record_citable_id": {"default": "", "title": "Record Citable Id", "type": "string"}, "requester": {"title": "Requester", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "institution": {"title": "Institution", "type": "string"}, "country": {"title": "Country", "type": "string"}, "consent_basis": {"title": "Consent Basis", "type": "string"}, "decision": {"title": "Decision", "type": "string"}, "verification_status": {"title": "Verification Status", "type": "string"}, "verification_detail": {"title": "Verification Detail", "type": "string"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "decided_by": {"title": "Decided By", "type": "string"}, "decision_reason": {"default": "", "title": "Decision Reason", "type": "string"}, "abs_reference_id": {"title": "Abs Reference Id", "type": "string"}, "decided_by_party": {"default": "", "title": "Decided By Party", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "access_conditions": {"default": "", "title": "Access Conditions", "type": "string"}, "conditions_access_tier": {"default": "", "title": "Conditions Access Tier", "type": "string"}, "conditions_abs_framework": {"default": "", "title": "Conditions Abs Framework", "type": "string"}}, "required": ["id", "entity_type", "requester", "purpose", "institution", "country", "consent_basis", "decision", "verification_status", "verification_detail", "requested_at", "decided_at", "decided_by", "abs_reference_id"], "title": "AccessRequestOut", "type": "object"}, "AccessRequestIn": {"properties": {"sequence_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Sequence Record Id"}, "entity_type": {"default": "", "title": "Entity Type", "type": "string"}, "record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Record Id"}, "requester": {"default": "", "title": "Requester", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "institution": {"default": "", "title": "Institution", "type": "string"}, "country": {"default": "", "title": "Country", "type": "string"}, "consent_basis": {"default": "", "title": "Consent Basis", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["purpose"], "title": "AccessRequestIn", "type": "object"}, "PagedAccessRequestOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/AccessRequestOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedAccessRequestOut", "type": "object"}, "AccessRequestDecisionIn": {"properties": {"decision": {"title": "Decision", "type": "string"}, "reason": {"default": "", "maxLength": 2000, "title": "Reason", "type": "string"}}, "required": ["decision"], "title": "AccessRequestDecisionIn", "type": "object"}, "ClientCountOut": {"properties": {"client": {"title": "Client", "type": "string"}, "label": {"title": "Label", "type": "string"}, "count": {"title": "Count", "type": "integer"}}, "required": ["client", "label", "count"], "title": "ClientCountOut", "type": "object"}, "CountryCountOut": {"properties": {"country": {"title": "Country", "type": "string"}, "count": {"title": "Count", "type": "integer"}}, "required": ["country", "count"], "title": "CountryCountOut", "type": "object"}, "DownloadsByCountryOut": {"properties": {"total": {"title": "Total", "type": "integer"}, "unknown": {"title": "Unknown", "type": "integer"}, "countries": {"items": {"$ref": "#/components/schemas/CountryCountOut"}, "title": "Countries", "type": "array"}, "clients": {"items": {"$ref": "#/components/schemas/ClientCountOut"}, "title": "Clients", "type": "array"}, "attribution": {"title": "Attribution", "type": "string"}}, "required": ["total", "unknown", "countries", "clients", "attribution"], "title": "DownloadsByCountryOut", "type": "object"}, "RecordKindOut": {"properties": {"value": {"title": "Value", "type": "string"}, "label": {"title": "Label", "type": "string"}}, "required": ["value", "label"], "title": "RecordKindOut", "type": "object"}, "TopRecordOut": {"properties": {"record_kind": {"title": "Record Kind", "type": "string"}, "record_kind_label": {"title": "Record Kind Label", "type": "string"}, "record_id": {"title": "Record Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "count": {"title": "Count", "type": "integer"}, "clients": {"additionalProperties": {"type": "integer"}, "title": "Clients", "type": "object"}}, "required": ["record_kind", "record_kind_label", "record_id", "name", "citable_id", "origin_node_id", "count", "clients"], "title": "TopRecordOut", "type": "object"}, "TopRecordsOut": {"properties": {"total": {"title": "Total", "type": "integer"}, "items": {"items": {"$ref": "#/components/schemas/TopRecordOut"}, "title": "Items", "type": "array"}, "record_kinds": {"items": {"$ref": "#/components/schemas/RecordKindOut"}, "title": "Record Kinds", "type": "array"}}, "required": ["total", "items", "record_kinds"], "title": "TopRecordsOut", "type": "object"}, "CountryRouteChangeOut": {"properties": {"country": {"title": "Country", "type": "string"}, "route": {"title": "Route", "type": "string"}, "previous_route": {"title": "Previous Route", "type": "string"}, "set_by_node_id": {"title": "Set By Node Id", "type": "string"}, "records_changed": {"title": "Records Changed", "type": "integer"}, "changed_at": {"format": "date-time", "title": "Changed At", "type": "string"}}, "required": ["country", "route", "previous_route", "set_by_node_id", "records_changed", "changed_at"], "title": "CountryRouteChangeOut", "type": "object"}, "CountryRouteOut": {"properties": {"country": {"title": "Country", "type": "string"}, "name": {"title": "Name", "type": "string"}, "route": {"title": "Route", "type": "string"}, "set_by_node_id": {"title": "Set By Node Id", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["country", "name", "route", "set_by_node_id", "updated_at"], "title": "CountryRouteOut", "type": "object"}, "CountryRoutesOut": {"properties": {"countries": {"items": {"$ref": "#/components/schemas/CountryRouteOut"}, "title": "Countries", "type": "array"}, "changes": {"items": {"$ref": "#/components/schemas/CountryRouteChangeOut"}, "title": "Changes", "type": "array"}}, "required": ["countries", "changes"], "title": "CountryRoutesOut", "type": "object"}, "CountryRoutePermissionsOut": {"properties": {"national_node_countries": {"items": {"type": "string"}, "title": "National Node Countries", "type": "array"}, "continental_admin": {"title": "Continental Admin", "type": "boolean"}}, "required": ["national_node_countries", "continental_admin"], "title": "CountryRoutePermissionsOut", "type": "object"}, "CountryRouteSetOut": {"properties": {"country": {"title": "Country", "type": "string"}, "route": {"title": "Route", "type": "string"}, "records_changed": {"title": "Records Changed", "type": "integer"}}, "required": ["country", "route", "records_changed"], "title": "CountryRouteSetOut", "type": "object"}, "CountryRouteIn": {"properties": {"route": {"maxLength": 16, "title": "Route", "type": "string"}, "instruction_reference": {"default": "", "maxLength": 500, "title": "Instruction Reference", "type": "string"}, "note": {"default": "", "maxLength": 2000, "title": "Note", "type": "string"}}, "required": ["route"], "title": "CountryRouteIn", "type": "object"}, "FederatedNodeOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "parent_node_id": {"title": "Parent Node Id", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}, "status": {"title": "Status", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "ror_id": {"title": "Ror Id", "type": "string"}, "applied_at": {"format": "date-time", "title": "Applied At", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "decided_by": {"title": "Decided By", "type": "string"}, "last_synced_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Synced At"}}, "required": ["id", "node_id", "tier", "parent_node_id", "base_url", "status", "display_name", "country", "ror_id", "applied_at", "decided_at", "decided_by", "last_synced_at"], "title": "FederatedNodeOut", "type": "object"}, "NodeApplicationIn": {"properties": {"node_id": {"maxLength": 128, "title": "Node Id", "type": "string"}, "tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "parent_node_id": {"maxLength": 128, "title": "Parent Node Id", "type": "string"}, "base_url": {"maxLength": 200, "title": "Base Url", "type": "string"}, "display_name": {"default": "", "maxLength": 255, "title": "Display Name", "type": "string"}, "country": {"maxLength": 2, "title": "Country", "type": "string"}, "ror_id": {"default": "", "title": "Ror Id", "type": "string"}, "email": {"maxLength": 255, "title": "Email", "type": "string"}, "mobile_number": {"default": "", "title": "Mobile Number", "type": "string"}, "applicant_id": {"maxLength": 64, "title": "Applicant Id", "type": "string"}, "analytics_opt_in": {"default": false, "title": "Analytics Opt In", "type": "boolean"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["node_id", "tier", "parent_node_id", "base_url", "country", "email", "applicant_id"], "title": "NodeApplicationIn", "type": "object"}, "PagedFederatedNodeOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/FederatedNodeOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedFederatedNodeOut", "type": "object"}, "PagedRegistryEntryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RegistryEntryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRegistryEntryOut", "type": "object"}, "RegistryEntryOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}, "parent_node_id": {"title": "Parent Node Id", "type": "string"}, "status": {"title": "Status", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "ror_id": {"title": "Ror Id", "type": "string"}, "email": {"title": "Email", "type": "string"}, "mobile_number": {"title": "Mobile Number", "type": "string"}, "last_synced_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Synced At"}, "implementation_name": {"title": "Implementation Name", "type": "string"}, "implementation_version": {"title": "Implementation Version", "type": "string"}, "protocol_version": {"title": "Protocol Version", "type": "string"}, "capabilities_checked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Capabilities Checked At"}, "is_stock_implementation": {"title": "Is Stock Implementation", "type": "boolean"}, "collision_detected_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Collision Detected At"}, "collision_detail": {"title": "Collision Detail", "type": "string"}, "tier_drift_detected_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Tier Drift Detected At"}, "tier_drift_detail": {"title": "Tier Drift Detail", "type": "string"}}, "required": ["node_id", "tier", "base_url", "parent_node_id", "status", "display_name", "country", "ror_id", "email", "mobile_number", "last_synced_at", "implementation_name", "implementation_version", "protocol_version", "capabilities_checked_at", "is_stock_implementation", "collision_detected_at", "collision_detail", "tier_drift_detected_at", "tier_drift_detail"], "title": "RegistryEntryOut", "type": "object"}, "ResendNotificationOut": {"properties": {"detail": {"title": "Detail", "type": "string"}, "email_sent": {"title": "Email Sent", "type": "boolean"}}, "required": ["detail", "email_sent"], "title": "ResendNotificationOut", "type": "object"}, "TierChangeRequestOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "from_tier": {"title": "From Tier", "type": "string"}, "to_tier": {"title": "To Tier", "type": "string"}, "initiator": {"title": "Initiator", "type": "string"}, "status": {"title": "Status", "type": "string"}, "justification": {"title": "Justification", "type": "string"}, "new_parent_node_id": {"title": "New Parent Node Id", "type": "string"}, "requested_by": {"title": "Requested By", "type": "string"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "decided_by": {"title": "Decided By", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "completed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Completed At"}}, "required": ["id", "node_id", "from_tier", "to_tier", "initiator", "status", "justification", "new_parent_node_id", "requested_by", "requested_at", "decided_by", "decided_at", "rejection_reason", "completed_at"], "title": "TierChangeRequestOut", "type": "object"}, "TierChangeRequestIn": {"properties": {"to_tier": {"maxLength": 16, "title": "To Tier", "type": "string"}, "justification": {"default": "", "title": "Justification", "type": "string"}}, "required": ["to_tier"], "title": "TierChangeRequestIn", "type": "object"}, "PagedTierChangeRequestOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TierChangeRequestOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTierChangeRequestOut", "type": "object"}, "TierChangeApproveIn": {"properties": {"new_parent_node_id": {"default": "", "maxLength": 128, "title": "New Parent Node Id", "type": "string"}}, "title": "TierChangeApproveIn", "type": "object"}, "TierChangeRejectIn": {"properties": {"rejection_reason": {"default": "", "title": "Rejection Reason", "type": "string"}}, "title": "TierChangeRejectIn", "type": "object"}, "UnilateralTierChangeIn": {"properties": {"to_tier": {"maxLength": 16, "title": "To Tier", "type": "string"}, "new_parent_node_id": {"default": "", "maxLength": 128, "title": "New Parent Node Id", "type": "string"}, "justification": {"default": "", "title": "Justification", "type": "string"}}, "required": ["to_tier"], "title": "UnilateralTierChangeIn", "type": "object"}, "EligibleParentOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}}, "required": ["node_id", "tier", "display_name", "country"], "title": "EligibleParentOut", "type": "object"}, "PagedEligibleParentOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EligibleParentOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedEligibleParentOut", "type": "object"}, "HubApplicationOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "ror_id": {"title": "Ror Id", "type": "string"}, "justification": {"title": "Justification", "type": "string"}, "email": {"title": "Email", "type": "string"}, "mobile_number": {"title": "Mobile Number", "type": "string"}, "status": {"title": "Status", "type": "string"}, "placed_parent_node_id": {"title": "Placed Parent Node Id", "type": "string"}, "applied_at": {"format": "date-time", "title": "Applied At", "type": "string"}, "decided_by": {"title": "Decided By", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}}, "required": ["id", "node_id", "tier", "base_url", "display_name", "country", "ror_id", "justification", "email", "mobile_number", "status", "placed_parent_node_id", "applied_at", "decided_by", "decided_at", "rejection_reason"], "title": "HubApplicationOut", "type": "object"}, "HubApplicationIn": {"properties": {"node_id": {"maxLength": 128, "title": "Node Id", "type": "string"}, "tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "base_url": {"maxLength": 200, "title": "Base Url", "type": "string"}, "display_name": {"default": "", "maxLength": 255, "title": "Display Name", "type": "string"}, "country": {"maxLength": 2, "title": "Country", "type": "string"}, "ror_id": {"default": "", "title": "Ror Id", "type": "string"}, "justification": {"default": "", "title": "Justification", "type": "string"}, "email": {"maxLength": 255, "title": "Email", "type": "string"}, "mobile_number": {"default": "", "title": "Mobile Number", "type": "string"}, "applicant_id": {"maxLength": 64, "title": "Applicant Id", "type": "string"}, "analytics_opt_in": {"default": false, "title": "Analytics Opt In", "type": "boolean"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["node_id", "tier", "base_url", "country", "email", "applicant_id"], "title": "HubApplicationIn", "type": "object"}, "PagedHubApplicationOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/HubApplicationOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedHubApplicationOut", "type": "object"}, "PlaceApplicationIn": {"properties": {"parent_node_id": {"maxLength": 128, "title": "Parent Node Id", "type": "string"}}, "required": ["parent_node_id"], "title": "PlaceApplicationIn", "type": "object"}, "RejectApplicationIn": {"properties": {"rejection_reason": {"default": "", "title": "Rejection Reason", "type": "string"}}, "title": "RejectApplicationIn", "type": "object"}, "HubApplicationReachabilityOut": {"properties": {"reachable": {"title": "Reachable", "type": "boolean"}, "implementation_name": {"title": "Implementation Name", "type": "string"}, "implementation_version": {"title": "Implementation Version", "type": "string"}, "protocol_version": {"title": "Protocol Version", "type": "string"}}, "required": ["reachable", "implementation_name", "implementation_version", "protocol_version"], "title": "HubApplicationReachabilityOut", "type": "object"}, "ContributionEntryOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "counts": {"additionalProperties": {"type": "integer"}, "title": "Counts", "type": "object"}, "total": {"title": "Total", "type": "integer"}, "activity": {"additionalProperties": {"type": "integer"}, "title": "Activity", "type": "object"}, "capabilities": {"additionalProperties": true, "default": {}, "title": "Capabilities", "type": "object"}}, "required": ["node_id", "tier", "display_name", "country", "counts", "total", "activity"], "title": "ContributionEntryOut", "type": "object"}, "PagedContributionEntryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ContributionEntryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedContributionEntryOut", "type": "object"}, "EarlierFileRequestsOut": {"properties": {"shown": {"title": "Shown", "type": "boolean"}, "count": {"title": "Count", "type": "integer"}, "until": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Until"}}, "required": ["shown", "count", "until"], "title": "EarlierFileRequestsOut", "type": "object"}, "GrowthPointOut": {"properties": {"month": {"title": "Month", "type": "string"}, "new_records": {"title": "New Records", "type": "integer"}, "cumulative_total": {"title": "Cumulative Total", "type": "integer"}, "by_type": {"additionalProperties": {"type": "integer"}, "title": "By Type", "type": "object"}}, "required": ["month", "new_records", "cumulative_total", "by_type"], "title": "GrowthPointOut", "type": "object"}, "PagedGrowthPointOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/GrowthPointOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedGrowthPointOut", "type": "object"}, "OversightResultOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "status": {"title": "Status", "type": "string"}}, "required": ["node_id", "status"], "title": "OversightResultOut", "type": "object"}, "NodeContactInfoOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "physical_address": {"title": "Physical Address", "type": "string"}, "mobile_number": {"title": "Mobile Number", "type": "string"}, "contact_email": {"title": "Contact Email", "type": "string"}, "updated_by": {"title": "Updated By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["node_id", "tier", "physical_address", "mobile_number", "contact_email", "updated_by", "updated_at"], "title": "NodeContactInfoOut", "type": "object"}, "NodeContactInfoIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "physical_address": {"default": "", "title": "Physical Address", "type": "string"}, "mobile_number": {"default": "", "maxLength": 64, "title": "Mobile Number", "type": "string"}, "contact_email": {"default": "", "maxLength": 255, "title": "Contact Email", "type": "string"}}, "required": ["tier"], "title": "NodeContactInfoIn", "type": "object"}, "DisplayNameOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}}, "required": ["node_id", "display_name"], "title": "DisplayNameOut", "type": "object"}, "DisplayNameIn": {"properties": {"display_name": {"default": "", "maxLength": 255, "title": "Display Name", "type": "string"}}, "title": "DisplayNameIn", "type": "object"}, "FederatedNodeDetailsOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "base_url": {"title": "Base Url", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "ror_id": {"title": "Ror Id", "type": "string"}}, "required": ["node_id", "tier", "base_url", "display_name", "country", "ror_id"], "title": "FederatedNodeDetailsOut", "type": "object"}, "FederatedNodeDetailsIn": {"properties": {"base_url": {"title": "Base Url", "type": "string"}, "display_name": {"default": "", "maxLength": 255, "title": "Display Name", "type": "string"}, "country": {"default": "", "maxLength": 2, "title": "Country", "type": "string"}, "ror_id": {"default": "", "maxLength": 9, "title": "Ror Id", "type": "string"}}, "required": ["base_url"], "title": "FederatedNodeDetailsIn", "type": "object"}, "AnalyticsPreferenceOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "opted_in": {"title": "Opted In", "type": "boolean"}}, "required": ["node_id", "opted_in"], "title": "AnalyticsPreferenceOut", "type": "object"}, "AnalyticsPreferenceIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "opted_in": {"title": "Opted In", "type": "boolean"}}, "required": ["tier", "opted_in"], "title": "AnalyticsPreferenceIn", "type": "object"}, "UpdatePreferenceOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "auto_update": {"title": "Auto Update", "type": "boolean"}, "requested_update_for": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Requested Update For"}}, "required": ["node_id", "auto_update"], "title": "UpdatePreferenceOut", "type": "object"}, "UpdatePreferenceIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "auto_update": {"title": "Auto Update", "type": "boolean"}}, "required": ["tier", "auto_update"], "title": "UpdatePreferenceIn", "type": "object"}, "RequestUpdateIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "delay_hours": {"default": 0, "maximum": 168, "minimum": 0, "title": "Delay Hours", "type": "number"}}, "required": ["tier"], "title": "RequestUpdateIn", "type": "object"}, "UpdateCheckOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "reported": {"title": "Reported", "type": "boolean"}, "checked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Checked At"}, "outcome": {"default": "", "title": "Outcome", "type": "string"}, "outcome_label": {"default": "", "title": "Outcome Label", "type": "string"}, "message": {"default": "", "title": "Message", "type": "string"}, "running_version": {"default": "", "title": "Running Version", "type": "string"}, "available_version": {"default": "", "title": "Available Version", "type": "string"}, "install_type": {"default": "", "title": "Install Type", "type": "string"}, "last_updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Updated At"}, "last_failure_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Failure At"}, "last_failure_message": {"default": "", "title": "Last Failure Message", "type": "string"}}, "required": ["node_id", "reported"], "title": "UpdateCheckOut", "type": "object"}, "UpdateCheckIn": {"properties": {"outcome": {"maxLength": 20, "title": "Outcome", "type": "string"}, "message": {"default": "", "maxLength": 4000, "title": "Message", "type": "string"}, "running_version": {"default": "", "maxLength": 64, "title": "Running Version", "type": "string"}, "available_version": {"default": "", "maxLength": 64, "title": "Available Version", "type": "string"}, "install_type": {"default": "", "maxLength": 16, "title": "Install Type", "type": "string"}}, "required": ["outcome"], "title": "UpdateCheckIn", "type": "object"}, "LicenseAcknowledgmentOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "acknowledged_version": {"default": "", "title": "Acknowledged Version", "type": "string"}, "acknowledged_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Acknowledged At"}}, "required": ["node_id"], "title": "LicenseAcknowledgmentOut", "type": "object"}, "LicenseAcknowledgmentIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "version": {"maxLength": 32, "title": "Version", "type": "string"}}, "required": ["tier", "version"], "title": "LicenseAcknowledgmentIn", "type": "object"}, "ReleaseAccessTokenStatusOut": {"description": "Deliberately never includes the raw token value \u2014 see\nNodeReleaseAccessToken's own docstring on the one-time-reveal\nconvention.", "properties": {"node_id": {"title": "Node Id", "type": "string"}, "has_active_token": {"title": "Has Active Token", "type": "boolean"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Created At"}}, "required": ["node_id", "has_active_token"], "title": "ReleaseAccessTokenStatusOut", "type": "object"}, "ReleaseAccessTokenRegeneratedOut": {"description": "The ONE response that ever carries the raw token value \u2014 see\nregenerate_release_access_token's own docstring.", "properties": {"node_id": {"title": "Node Id", "type": "string"}, "token": {"title": "Token", "type": "string"}}, "required": ["node_id", "token"], "title": "ReleaseAccessTokenRegeneratedOut", "type": "object"}, "RegenerateReleaseAccessTokenIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}}, "required": ["tier"], "title": "RegenerateReleaseAccessTokenIn", "type": "object"}, "SyncTokenOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "sync_token": {"title": "Sync Token", "type": "string"}}, "required": ["node_id", "sync_token"], "title": "SyncTokenOut", "type": "object"}, "RootTokenRequestOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "status": {"title": "Status", "type": "string"}, "justification": {"title": "Justification", "type": "string"}, "requested_by": {"title": "Requested By", "type": "string"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "granted_by": {"title": "Granted By", "type": "string"}, "granted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Granted At"}, "denied_reason": {"title": "Denied Reason", "type": "string"}, "consumed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Consumed At"}}, "required": ["id", "node_id", "tier", "status", "justification", "requested_by", "requested_at", "granted_by", "denied_reason"], "title": "RootTokenRequestOut", "type": "object"}, "RootTokenRequestIn": {"properties": {"tier": {"maxLength": 16, "title": "Tier", "type": "string"}, "justification": {"default": "", "title": "Justification", "type": "string"}}, "required": ["tier"], "title": "RootTokenRequestIn", "type": "object"}, "PagedRootTokenRequestOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RootTokenRequestOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRootTokenRequestOut", "type": "object"}, "RootTokenDenyIn": {"properties": {"reason": {"default": "", "title": "Reason", "type": "string"}}, "title": "RootTokenDenyIn", "type": "object"}, "RootTokenRevealOut": {"description": "The ONE response that ever carries the raw ``FEDERATION_ROOT_TOKEN``\nvalue \u2014 see ``reveal_root_token`` below.", "properties": {"token": {"title": "Token", "type": "string"}}, "required": ["token"], "title": "RootTokenRevealOut", "type": "object"}, "SyncPushFailure": {"properties": {"entity_type": {"title": "Entity Type", "type": "string"}, "entity_id": {"title": "Entity Id", "type": "string"}, "error": {"title": "Error", "type": "string"}}, "required": ["entity_type", "entity_id", "error"], "title": "SyncPushFailure", "type": "object"}, "SyncPushResponse": {"description": "``accepted_through``: the newest ``updated_at`` the receiver stored;\nthe sender's next batch starts after it. None if nothing was accepted.\n``failed`` is the first change that couldn't be applied for a temporary\nreason; the receiver stops there, so the sender resends from that change\nnext cycle. ``set_aside`` lists changes that can't be applied as sent.", "properties": {"applied": {"title": "Applied", "type": "integer"}, "ignored": {"title": "Ignored", "type": "integer"}, "accepted_through": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Accepted Through"}, "failed": {"anyOf": [{"$ref": "#/components/schemas/SyncPushFailure"}, {"type": "null"}]}, "set_aside": {"default": [], "items": {"$ref": "#/components/schemas/SyncPushFailure"}, "title": "Set Aside", "type": "array"}}, "required": ["applied", "ignored"], "title": "SyncPushResponse", "type": "object"}, "SyncChangeRecord": {"description": "One changed entity, as exchanged over ``/api/sync/changes``.", "properties": {"entity_type": {"title": "Entity Type", "type": "string"}, "entity_id": {"title": "Entity Id", "type": "string"}, "payload": {"additionalProperties": true, "title": "Payload", "type": "object"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["entity_type", "entity_id", "payload", "updated_at"], "title": "SyncChangeRecord", "type": "object"}, "SyncPushRequest": {"description": "One batch, oldest first. ``node_id`` must be the node the push token\nwas issued to.", "properties": {"node_id": {"title": "Node Id", "type": "string"}, "changes": {"items": {"$ref": "#/components/schemas/SyncChangeRecord"}, "title": "Changes", "type": "array"}}, "required": ["node_id", "changes"], "title": "SyncPushRequest", "type": "object"}, "ChildrenSyncTokensOut": {"properties": {"tokens": {"additionalProperties": {"type": "string"}, "title": "Tokens", "type": "object"}}, "required": ["tokens"], "title": "ChildrenSyncTokensOut", "type": "object"}, "ChildrenSyncTokensIn": {"properties": {"node_id": {"maxLength": 128, "title": "Node Id", "type": "string"}}, "required": ["node_id"], "title": "ChildrenSyncTokensIn", "type": "object"}, "SyncPushStatusOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "push_allowed": {"title": "Push Allowed", "type": "boolean"}, "has_active_token": {"title": "Has Active Token", "type": "boolean"}, "token_created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Token Created At"}, "last_push_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Push At"}, "last_push_error": {"default": "", "title": "Last Push Error", "type": "string"}, "polling_paused": {"title": "Polling Paused", "type": "boolean"}}, "required": ["node_id", "push_allowed", "has_active_token", "polling_paused"], "title": "SyncPushStatusOut", "type": "object"}, "SyncPushAllowedIn": {"properties": {"push_allowed": {"title": "Push Allowed", "type": "boolean"}}, "required": ["push_allowed"], "title": "SyncPushAllowedIn", "type": "object"}, "SyncPushTokenOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "token": {"title": "Token", "type": "string"}}, "required": ["node_id", "token"], "title": "SyncPushTokenOut", "type": "object"}, "PagedSetAsideChangeOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SetAsideChangeOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSetAsideChangeOut", "type": "object"}, "SetAsideChangeOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "entity_type": {"title": "Entity Type", "type": "string"}, "entity_id": {"title": "Entity Id", "type": "string"}, "change_updated_at": {"format": "date-time", "title": "Change Updated At", "type": "string"}, "error": {"title": "Error", "type": "string"}, "error_class": {"title": "Error Class", "type": "string"}, "attempts": {"title": "Attempts", "type": "integer"}, "state": {"title": "State", "type": "string"}, "state_label": {"title": "State Label", "type": "string"}, "first_seen_at": {"format": "date-time", "title": "First Seen At", "type": "string"}, "last_attempt_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Attempt At"}, "set_aside_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Set Aside At"}, "resolved_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Resolved At"}, "resolved_by": {"title": "Resolved By", "type": "string"}, "resolution_note": {"title": "Resolution Note", "type": "string"}, "payload_truncated": {"title": "Payload Truncated", "type": "boolean"}}, "required": ["id", "node_id", "entity_type", "entity_id", "change_updated_at", "error", "error_class", "attempts", "state", "state_label", "first_seen_at", "last_attempt_at", "set_aside_at", "resolved_at", "resolved_by", "resolution_note", "payload_truncated"], "title": "SetAsideChangeOut", "type": "object"}, "SetAsideRetryOut": {"properties": {"applied": {"title": "Applied", "type": "boolean"}, "change": {"$ref": "#/components/schemas/SetAsideChangeOut"}}, "required": ["applied", "change"], "title": "SetAsideRetryOut", "type": "object"}, "SetAsideDismissIn": {"properties": {"reason": {"maxLength": 2000, "title": "Reason", "type": "string"}}, "required": ["reason"], "title": "SetAsideDismissIn", "type": "object"}, "ProteinSubmissionOut": {"properties": {"backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data_confirmed": {"default": false, "title": "No Human Data Confirmed", "type": "boolean"}, "id": {"title": "Id", "type": "integer"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "genome_record_id": {"title": "Genome Record Id", "type": "integer"}, "gene_name": {"title": "Gene Name", "type": "string"}, "locus_tag": {"title": "Locus Tag", "type": "string"}, "sequence": {"title": "Sequence", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "status": {"title": "Status", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "created_protein_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Created Protein Record Id"}}, "required": ["id", "tier", "node_id", "genome_record_id", "gene_name", "locus_tag", "sequence", "access_tier", "license_tag", "status", "submitted_at", "decided_at", "rejection_reason", "created_protein_record_id"], "title": "ProteinSubmissionOut", "type": "object"}, "ProteinSubmissionIn": {"properties": {"tier": {"default": "", "title": "Tier", "type": "string"}, "node_id": {"default": "", "title": "Node Id", "type": "string"}, "genome_record_id": {"title": "Genome Record Id", "type": "integer"}, "gene_name": {"default": "", "title": "Gene Name", "type": "string"}, "locus_tag": {"default": "", "title": "Locus Tag", "type": "string"}, "sequence": {"title": "Sequence", "type": "string"}, "access_tier": {"default": "public", "title": "Access Tier", "type": "string"}, "license_tag": {"default": "cc_by", "title": "License Tag", "type": "string"}, "backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data": {"default": false, "title": "No Human Data", "type": "boolean"}}, "required": ["genome_record_id", "sequence"], "title": "ProteinSubmissionIn", "type": "object"}, "PagedProteinSubmissionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProteinSubmissionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProteinSubmissionOut", "type": "object"}, "RejectIn": {"properties": {"reason": {"default": "", "maxLength": 1000, "title": "Reason", "type": "string"}}, "title": "RejectIn", "type": "object"}, "PagedProteinRecordOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProteinRecordOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProteinRecordOut", "type": "object"}, "ProteinRecordOut": {"properties": {"steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "genome_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Genome Record Id"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "gene_name": {"title": "Gene Name", "type": "string"}, "locus_tag": {"title": "Locus Tag", "type": "string"}, "protein_storage_key": {"title": "Protein Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "translation_length": {"title": "Translation Length", "type": "integer"}, "domains": {"items": {"additionalProperties": true, "type": "object"}, "title": "Domains", "type": "array"}, "domains_annotated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Domains Annotated At"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "genome_record_id", "species_scientific_name", "gene_name", "locus_tag", "protein_storage_key", "sha256_checksum", "translation_length", "domains", "domains_annotated_at", "origin", "origin_node_id", "origin_entity_id", "hop_chain", "source_repository", "source_accession", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "updated_at"], "title": "ProteinRecordOut", "type": "object"}, "OrthologClusterOut": {"properties": {"clusters": {"items": {"items": {"type": "integer"}, "type": "array"}, "title": "Clusters", "type": "array"}, "records_considered": {"title": "Records Considered", "type": "integer"}, "total_records": {"title": "Total Records", "type": "integer"}}, "required": ["clusters", "records_considered", "total_records"], "title": "OrthologClusterOut", "type": "object"}, "ProteinFacetsOut": {"properties": {"species_scientific_name": {"items": {"type": "string"}, "title": "Species Scientific Name", "type": "array"}, "source_repository": {"items": {"type": "string"}, "title": "Source Repository", "type": "array"}}, "required": ["species_scientific_name", "source_repository"], "title": "ProteinFacetsOut", "type": "object"}, "AnnotateAck": {"properties": {"protein_record_id": {"title": "Protein Record Id", "type": "integer"}, "status": {"default": "queued", "title": "Status", "type": "string"}}, "required": ["protein_record_id"], "title": "AnnotateAck", "type": "object"}, "PredictAck": {"properties": {"protein_record_id": {"title": "Protein Record Id", "type": "integer"}, "status": {"default": "queued", "title": "Status", "type": "string"}}, "required": ["protein_record_id"], "title": "PredictAck", "type": "object"}, "PredictIn": {"properties": {"protein_record_id": {"title": "Protein Record Id", "type": "integer"}, "compute_request_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Compute Request Id"}}, "required": ["protein_record_id"], "title": "PredictIn", "type": "object"}, "StructureRecordOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "protein_record_id": {"title": "Protein Record Id", "type": "integer"}, "compute_request_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Compute Request Id"}, "version": {"title": "Version", "type": "integer"}, "pdb_storage_key": {"title": "Pdb Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "plddt_score": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Plddt Score"}, "homolog_reference": {"title": "Homolog Reference", "type": "string"}, "ligands": {"items": {"additionalProperties": true, "type": "object"}, "title": "Ligands", "type": "array"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "origin": {"title": "Origin", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "protein_record_id", "compute_request_id", "version", "pdb_storage_key", "sha256_checksum", "plddt_score", "homolog_reference", "ligands", "source_repository", "source_accession", "origin", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "updated_at"], "title": "StructureRecordOut", "type": "object"}, "PagedStructureRecordOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/StructureRecordOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedStructureRecordOut", "type": "object"}, "StructureFacetsOut": {"properties": {"species_scientific_name": {"items": {"type": "string"}, "title": "Species Scientific Name", "type": "array"}, "source_repository": {"items": {"type": "string"}, "title": "Source Repository", "type": "array"}}, "required": ["species_scientific_name", "source_repository"], "title": "StructureFacetsOut", "type": "object"}, "EDnaClassificationOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "taxon_name": {"title": "Taxon Name", "type": "string"}, "read_count": {"title": "Read Count", "type": "integer"}, "relative_abundance": {"title": "Relative Abundance", "type": "number"}, "confidence": {"title": "Confidence", "type": "number"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "taxon_name", "read_count", "relative_abundance", "confidence", "origin", "origin_node_id", "hop_chain", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "updated_at"], "title": "EDnaClassificationOut", "type": "object"}, "PagedEDnaClassificationOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EDnaClassificationOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedEDnaClassificationOut", "type": "object"}, "EDnaSampleDiscoveryOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "collection_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Collection Date"}, "raw_reads_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Raw Reads Size Bytes"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "raw_reads_storage_key": {"title": "Raw Reads Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "collection_date", "raw_reads_size_bytes", "origin_node_id", "origin_entity_id", "raw_reads_storage_key", "sha256_checksum"], "title": "EDnaSampleDiscoveryOut", "type": "object"}, "PagedEDnaSampleDiscoveryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EDnaSampleDiscoveryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedEDnaSampleDiscoveryOut", "type": "object"}, "PagedSiteSummaryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SiteSummaryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSiteSummaryOut", "type": "object"}, "SiteSummaryOut": {"properties": {"site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "taxon_count": {"title": "Taxon Count", "type": "integer"}, "total_reads": {"title": "Total Reads", "type": "integer"}, "shannon": {"title": "Shannon", "type": "number"}, "simpson": {"title": "Simpson", "type": "number"}, "taxa": {"items": {"type": "string"}, "title": "Taxa", "type": "array"}, "functional_labels": {"items": {"type": "string"}, "title": "Functional Labels", "type": "array"}}, "required": ["site_name", "latitude", "longitude", "taxon_count", "total_reads", "shannon", "simpson", "taxa", "functional_labels"], "title": "SiteSummaryOut", "type": "object"}, "FieldSpecimenImageRecordOut": {"properties": {"steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "image_type": {"title": "Image Type", "type": "string"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "preview_storage_key": {"title": "Preview Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "species_label": {"title": "Species Label", "type": "string"}, "species_confidence": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Species Confidence"}, "label_text": {"title": "Label Text", "type": "string"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "image_type", "site_name", "latitude", "longitude", "preview_storage_key", "sha256_checksum", "species_label", "species_confidence", "label_text", "origin", "origin_node_id", "hop_chain", "source_repository", "source_accession", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "updated_at"], "title": "FieldSpecimenImageRecordOut", "type": "object"}, "PagedFieldSpecimenImageRecordOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/FieldSpecimenImageRecordOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedFieldSpecimenImageRecordOut", "type": "object"}, "FieldSpecimenImageFacetsOut": {"properties": {"image_type": {"items": {"type": "string"}, "title": "Image Type", "type": "array"}, "site_name": {"items": {"type": "string"}, "title": "Site Name", "type": "array"}, "species_label": {"items": {"type": "string"}, "title": "Species Label", "type": "array"}}, "required": ["image_type", "site_name", "species_label"], "title": "FieldSpecimenImageFacetsOut", "type": "object"}, "SubmissionOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "task_id": {"title": "Task Id", "type": "integer"}, "pathogen": {"title": "Pathogen", "type": "string"}, "pmid": {"title": "Pmid", "type": "string"}, "doi": {"default": "", "title": "Doi", "type": "string"}, "doi_reason": {"default": "", "title": "Doi Reason", "type": "string"}, "status": {"title": "Status", "type": "string"}, "evidence_note": {"title": "Evidence Note", "type": "string"}, "pathogen_african_status": {"title": "Pathogen African Status", "type": "string"}, "host_african_status": {"title": "Host African Status", "type": "string"}, "reservoir_host": {"title": "Reservoir Host", "type": "string"}, "state": {"title": "State", "type": "string"}, "state_label": {"title": "State Label", "type": "string"}, "reviewer_note": {"title": "Reviewer Note", "type": "string"}, "association_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Association Id"}, "curator": {"title": "Curator", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "task_id", "pathogen", "pmid", "status", "evidence_note", "pathogen_african_status", "host_african_status", "reservoir_host", "state", "state_label", "reviewer_note", "association_id", "curator", "created_at", "updated_at"], "title": "SubmissionOut", "type": "object"}, "PagedSubmissionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SubmissionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSubmissionOut", "type": "object"}, "SubmissionDetailOut": {"properties": {"backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data_confirmed": {"default": false, "title": "No Human Data Confirmed", "type": "boolean"}, "id": {"title": "Id", "type": "integer"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "raw_csv_filename": {"title": "Raw Csv Filename", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "items": {"items": {"$ref": "#/components/schemas/SubmissionItemOut"}, "title": "Items", "type": "array"}}, "required": ["id", "submitted_by", "tier", "node_id", "raw_csv_filename", "submitted_at", "items"], "title": "SubmissionDetailOut", "type": "object"}, "SubmissionItemOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "image_type": {"title": "Image Type", "type": "string"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "source_url": {"title": "Source Url", "type": "string"}, "zip_member_filename": {"title": "Zip Member Filename", "type": "string"}, "fetch_status": {"title": "Fetch Status", "type": "string"}, "fetch_detail": {"title": "Fetch Detail", "type": "string"}, "status": {"title": "Status", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "created_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Created Record Id"}}, "required": ["id", "image_type", "site_name", "latitude", "longitude", "access_tier", "license_tag", "source_url", "zip_member_filename", "fetch_status", "fetch_detail", "status", "decided_by", "decided_at", "rejection_reason", "created_record_id"], "title": "SubmissionItemOut", "type": "object"}, "MetagenomicProfileOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "category": {"title": "Category", "type": "string"}, "label": {"title": "Label", "type": "string"}, "read_count": {"title": "Read Count", "type": "integer"}, "relative_abundance": {"title": "Relative Abundance", "type": "number"}, "confidence": {"title": "Confidence", "type": "number"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "category", "label", "read_count", "relative_abundance", "confidence", "origin", "origin_node_id", "hop_chain", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "updated_at"], "title": "MetagenomicProfileOut", "type": "object"}, "PagedMetagenomicProfileOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MetagenomicProfileOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMetagenomicProfileOut", "type": "object"}, "MetagenomicSampleDiscoveryOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "collection_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Collection Date"}, "raw_reads_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Raw Reads Size Bytes"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "raw_reads_storage_key": {"title": "Raw Reads Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "collection_date", "raw_reads_size_bytes", "origin_node_id", "origin_entity_id", "raw_reads_storage_key", "sha256_checksum"], "title": "MetagenomicSampleDiscoveryOut", "type": "object"}, "PagedMetagenomicSampleDiscoveryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MetagenomicSampleDiscoveryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMetagenomicSampleDiscoveryOut", "type": "object"}, "PagedProteomicsProfileOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProteomicsProfileOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProteomicsProfileOut", "type": "object"}, "ProteomicsProfileOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "protein_name": {"title": "Protein Name", "type": "string"}, "accession": {"title": "Accession", "type": "string"}, "abundance": {"title": "Abundance", "type": "number"}, "confidence": {"title": "Confidence", "type": "number"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "species_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "protein_name", "accession", "abundance", "confidence", "origin", "origin_node_id", "hop_chain", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "species_id", "species_scientific_name", "source_repository", "updated_at"], "title": "ProteomicsProfileOut", "type": "object"}, "PagedProteomicsProjectReferenceOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProteomicsProjectReferenceOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProteomicsProjectReferenceOut", "type": "object"}, "ProteomicsProjectReferenceOut": {"properties": {"steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "title": {"title": "Title", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "species_id", "species_scientific_name", "title", "external_url", "source_repository", "source_accession", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "updated_at"], "title": "ProteomicsProjectReferenceOut", "type": "object"}, "ProteomicsFacetsOut": {"properties": {"source_repository": {"items": {"type": "string"}, "title": "Source Repository", "type": "array"}}, "required": ["source_repository"], "title": "ProteomicsFacetsOut", "type": "object"}, "PagedProteomicsSampleDiscoveryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProteomicsSampleDiscoveryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProteomicsSampleDiscoveryOut", "type": "object"}, "ProteomicsSampleDiscoveryOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "collection_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Collection Date"}, "raw_run_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Raw Run Size Bytes"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "raw_run_storage_key": {"title": "Raw Run Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "collection_date", "raw_run_size_bytes", "origin_node_id", "origin_entity_id", "raw_run_storage_key", "sha256_checksum"], "title": "ProteomicsSampleDiscoveryOut", "type": "object"}, "ProteomicsSubmissionOut": {"properties": {"backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data_confirmed": {"default": false, "title": "No Human Data Confirmed", "type": "boolean"}, "id": {"title": "Id", "type": "integer"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "title": {"title": "Title", "type": "string"}, "description": {"title": "Description", "type": "string"}, "doi": {"title": "Doi", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "status": {"title": "Status", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "created_reference_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Created Reference Id"}}, "required": ["id", "species_id", "species_scientific_name", "title", "description", "doi", "external_url", "access_tier", "license_tag", "status", "submitted_at", "decided_at", "rejection_reason", "created_reference_id"], "title": "ProteomicsSubmissionOut", "type": "object"}, "ProteomicsSubmissionIn": {"properties": {"species_id": {"title": "Species Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "description": {"default": "", "title": "Description", "type": "string"}, "doi": {"default": "", "title": "Doi", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "access_tier": {"default": "public", "title": "Access Tier", "type": "string"}, "license_tag": {"default": "restricted", "title": "License Tag", "type": "string"}, "backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data": {"default": false, "title": "No Human Data", "type": "boolean"}}, "required": ["species_id", "title", "external_url"], "title": "ProteomicsSubmissionIn", "type": "object"}, "PagedProteomicsSubmissionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProteomicsSubmissionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProteomicsSubmissionOut", "type": "object"}, "MetabolomicsProfileOut": {"properties": {"steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "compound_name": {"title": "Compound Name", "type": "string"}, "smiles": {"title": "Smiles", "type": "string"}, "inchi": {"title": "Inchi", "type": "string"}, "pubchem_id": {"title": "Pubchem Id", "type": "string"}, "soil_type": {"title": "Soil Type", "type": "string"}, "season": {"title": "Season", "type": "string"}, "climate": {"title": "Climate", "type": "string"}, "concentration": {"title": "Concentration", "type": "number"}, "confidence": {"title": "Confidence", "type": "number"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "pic_status": {"title": "Pic Status", "type": "string"}, "mat_status": {"title": "Mat Status", "type": "string"}, "abs_ircc_reference": {"title": "Abs Ircc Reference", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "species_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "source_detail": {"title": "Source Detail", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "compound_name", "smiles", "inchi", "pubchem_id", "soil_type", "season", "climate", "concentration", "confidence", "origin", "origin_node_id", "hop_chain", "access_tier", "license_tag", "citable_id", "country_of_origin", "collection_permit_ref", "pic_status", "mat_status", "abs_ircc_reference", "embargo_level", "embargo_release_date", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "species_id", "species_scientific_name", "source_repository", "source_accession", "source_detail", "updated_at"], "title": "MetabolomicsProfileOut", "type": "object"}, "PagedMetabolomicsProfileOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MetabolomicsProfileOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMetabolomicsProfileOut", "type": "object"}, "MetabolomicsFacetsOut": {"properties": {"site_name": {"items": {"type": "string"}, "title": "Site Name", "type": "array"}, "species_scientific_name": {"items": {"type": "string"}, "title": "Species Scientific Name", "type": "array"}, "compound_name": {"items": {"type": "string"}, "title": "Compound Name", "type": "array"}}, "required": ["site_name", "species_scientific_name", "compound_name"], "title": "MetabolomicsFacetsOut", "type": "object"}, "MetabolomicsSampleDiscoveryOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "site_name": {"title": "Site Name", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "soil_type": {"title": "Soil Type", "type": "string"}, "season": {"title": "Season", "type": "string"}, "climate": {"title": "Climate", "type": "string"}, "collection_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Collection Date"}, "raw_run_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Raw Run Size Bytes"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "raw_run_storage_key": {"title": "Raw Run Storage Key", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}}, "required": ["id", "site_name", "latitude", "longitude", "soil_type", "season", "climate", "collection_date", "raw_run_size_bytes", "origin_node_id", "origin_entity_id", "raw_run_storage_key", "sha256_checksum"], "title": "MetabolomicsSampleDiscoveryOut", "type": "object"}, "PagedMetabolomicsSampleDiscoveryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MetabolomicsSampleDiscoveryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMetabolomicsSampleDiscoveryOut", "type": "object"}, "ChemicalProfileSubmissionOut": {"properties": {"backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data_confirmed": {"default": false, "title": "No Human Data Confirmed", "type": "boolean"}, "id": {"title": "Id", "type": "integer"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "compound_name": {"title": "Compound Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "doi": {"title": "Doi", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "status": {"title": "Status", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "created_profile_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Created Profile Id"}}, "required": ["id", "species_id", "species_scientific_name", "compound_name", "description", "doi", "external_url", "access_tier", "license_tag", "status", "submitted_at", "decided_at", "rejection_reason", "created_profile_id"], "title": "ChemicalProfileSubmissionOut", "type": "object"}, "ChemicalProfileSubmissionIn": {"properties": {"species_id": {"title": "Species Id", "type": "integer"}, "compound_name": {"title": "Compound Name", "type": "string"}, "description": {"default": "", "title": "Description", "type": "string"}, "doi": {"default": "", "title": "Doi", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "access_tier": {"default": "public", "title": "Access Tier", "type": "string"}, "license_tag": {"default": "cc_by", "title": "License Tag", "type": "string"}, "backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data": {"default": false, "title": "No Human Data", "type": "boolean"}}, "required": ["species_id", "compound_name", "external_url"], "title": "ChemicalProfileSubmissionIn", "type": "object"}, "PagedChemicalProfileSubmissionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ChemicalProfileSubmissionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedChemicalProfileSubmissionOut", "type": "object"}, "IngestJobOut": {"description": "A small local copy of hub.mirroring.api's own IngestJobOut shape \u2014\ndeliberately not imported from there, same reasoning\nhub.cellular_imaging.api's own identical copy already states.", "properties": {"id": {"title": "Id", "type": "integer"}, "source": {"title": "Source", "type": "string"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "raw_input": {"title": "Raw Input", "type": "string"}, "total_count": {"title": "Total Count", "type": "integer"}, "succeeded_count": {"title": "Succeeded Count", "type": "integer"}, "failed_count": {"title": "Failed Count", "type": "integer"}, "status": {"title": "Status", "type": "string"}}, "required": ["id", "source", "submitted_by", "submitted_at", "raw_input", "total_count", "succeeded_count", "failed_count", "status"], "title": "IngestJobOut", "type": "object"}, "PasteIngestIn": {"properties": {"raw_text": {"title": "Raw Text", "type": "string"}}, "required": ["raw_text"], "title": "PasteIngestIn", "type": "object"}, "CellularImagingRecordOut": {"properties": {"steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "description": {"title": "Description", "type": "string"}, "imaging_modality": {"title": "Imaging Modality", "type": "string"}, "principal_investigator": {"title": "Principal Investigator", "type": "string"}, "country": {"title": "Country", "type": "string"}, "dataset_size_label": {"title": "Dataset Size Label", "type": "string"}, "dataset_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dataset Size Bytes"}, "doi": {"title": "Doi", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "origin": {"title": "Origin", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "species_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "title", "description", "imaging_modality", "principal_investigator", "country", "dataset_size_label", "dataset_size_bytes", "doi", "external_url", "source_repository", "source_accession", "origin", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "species_id", "species_scientific_name", "updated_at"], "title": "CellularImagingRecordOut", "type": "object"}, "PagedCellularImagingRecordOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/CellularImagingRecordOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedCellularImagingRecordOut", "type": "object"}, "CellularImagingFacetsOut": {"properties": {"title": {"items": {"type": "string"}, "title": "Title", "type": "array"}, "country": {"items": {"type": "string"}, "title": "Country", "type": "array"}, "source_repository": {"items": {"type": "string"}, "title": "Source Repository", "type": "array"}, "imaging_modality": {"items": {"type": "string"}, "title": "Imaging Modality", "type": "array"}}, "required": ["title", "country", "source_repository", "imaging_modality"], "title": "CellularImagingFacetsOut", "type": "object"}, "SubmissionIn": {"properties": {"species_id": {"title": "Species Id", "type": "integer"}, "title": {"default": "", "title": "Title", "type": "string"}, "description": {"default": "", "title": "Description", "type": "string"}, "compounds_detected": {"default": [], "items": {"type": "string"}, "title": "Compounds Detected", "type": "array"}, "doi": {"default": "", "title": "Doi", "type": "string"}, "external_url": {"default": "", "title": "External Url", "type": "string"}, "access_tier": {"default": "public", "title": "Access Tier", "type": "string"}, "license_tag": {"default": "restricted", "title": "License Tag", "type": "string"}, "backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data": {"default": false, "title": "No Human Data", "type": "boolean"}}, "required": ["species_id"], "title": "SubmissionIn", "type": "object"}, "RegisterOut": {"properties": {"username": {"title": "Username", "type": "string"}, "status": {"default": "pending", "title": "Status", "type": "string"}, "requested_node_id": {"title": "Requested Node Id", "type": "string"}}, "required": ["username", "requested_node_id"], "title": "RegisterOut", "type": "object"}, "RegisterIn": {"properties": {"first_name": {"title": "First Name", "type": "string"}, "middle_name": {"default": "", "title": "Middle Name", "type": "string"}, "last_name": {"title": "Last Name", "type": "string"}, "username": {"maxLength": 150, "title": "Username", "type": "string"}, "email": {"maxLength": 254, "title": "Email", "type": "string"}, "password": {"title": "Password", "type": "string"}, "requested_tier": {"title": "Requested Tier", "type": "string"}, "requested_node_id": {"default": "", "maxLength": 128, "title": "Requested Node Id", "type": "string"}, "country": {"description": "ISO 3166-1 alpha-2, e.g. KE", "pattern": "^[A-Z]{2}$", "title": "Country", "type": "string"}, "organisation": {"maxLength": 255, "title": "Organisation", "type": "string"}, "organisation_abbreviation": {"title": "Organisation Abbreviation", "type": "string"}, "registration_mode": {"title": "Registration Mode", "type": "string"}, "orcid": {"default": "", "title": "Orcid", "type": "string"}, "ror_id": {"default": "", "title": "Ror Id", "type": "string"}, "mobile_number": {"default": "", "maxLength": 64, "title": "Mobile Number", "type": "string"}, "justification": {"title": "Justification", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["first_name", "last_name", "username", "email", "password", "requested_tier", "country", "organisation", "organisation_abbreviation", "registration_mode", "justification"], "title": "RegisterIn", "type": "object"}, "LoginOut": {"properties": {"access_token": {"title": "Access Token", "type": "string"}, "expires_at": {"format": "date-time", "title": "Expires At", "type": "string"}, "username": {"title": "Username", "type": "string"}, "is_continental_admin": {"title": "Is Continental Admin", "type": "boolean"}, "roles": {"items": {"$ref": "#/components/schemas/RoleOut"}, "title": "Roles", "type": "array"}, "must_change_password": {"title": "Must Change Password", "type": "boolean"}, "contributor_at": {"default": [], "items": {"$ref": "#/components/schemas/RoleOut"}, "title": "Contributor At", "type": "array"}, "two_factor_setup_required": {"default": false, "title": "Two Factor Setup Required", "type": "boolean"}}, "required": ["access_token", "expires_at", "username", "is_continental_admin", "roles", "must_change_password"], "title": "LoginOut", "type": "object"}, "RoleOut": {"properties": {"tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}}, "required": ["tier", "node_id"], "title": "RoleOut", "type": "object"}, "TwoFactorNeededOut": {"properties": {"detail": {"title": "Detail", "type": "string"}, "two_factor_required": {"default": true, "title": "Two Factor Required", "type": "boolean"}}, "required": ["detail"], "title": "TwoFactorNeededOut", "type": "object"}, "LoginStateOut": {"description": "The password was right, but the account can't sign in yet (plan phase\n3.6): which step is missing, so the page can say what to do.", "properties": {"detail": {"title": "Detail", "type": "string"}, "state": {"title": "State", "type": "string"}}, "required": ["detail", "state"], "title": "LoginStateOut", "type": "object"}, "LoginIn": {"properties": {"username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}, "code": {"default": "", "maxLength": 32, "title": "Code", "type": "string"}}, "required": ["username", "password"], "title": "LoginIn", "type": "object"}, "InboxQueueOut": {"properties": {"key": {"title": "Key", "type": "string"}, "label": {"title": "Label", "type": "string"}, "href": {"title": "Href", "type": "string"}, "count": {"title": "Count", "type": "integer"}, "oldest": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Oldest"}, "oldest_days": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Oldest Days"}}, "required": ["key", "label", "href", "count", "oldest", "oldest_days"], "title": "InboxQueueOut", "type": "object"}, "PagedInboxQueueOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/InboxQueueOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedInboxQueueOut", "type": "object"}, "NodeTokenOut": {"properties": {"access_token": {"title": "Access Token", "type": "string"}, "expires_at": {"format": "date-time", "title": "Expires At", "type": "string"}}, "required": ["access_token", "expires_at"], "title": "NodeTokenOut", "type": "object"}, "NodeTokenIn": {"properties": {"node_id": {"maxLength": 128, "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$", "title": "Node Id", "type": "string"}}, "required": ["node_id"], "title": "NodeTokenIn", "type": "object"}, "ApiTokenOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "prefix": {"title": "Prefix", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "expires_at": {"format": "date-time", "title": "Expires At", "type": "string"}, "last_used_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Used At"}, "revoked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Revoked At"}}, "required": ["id", "name", "prefix", "created_at", "expires_at", "last_used_at", "revoked_at"], "title": "ApiTokenOut", "type": "object"}, "PagedApiTokenOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ApiTokenOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedApiTokenOut", "type": "object"}, "ApiTokenCreatedOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "prefix": {"title": "Prefix", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "expires_at": {"format": "date-time", "title": "Expires At", "type": "string"}, "last_used_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Used At"}, "revoked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Revoked At"}, "token": {"title": "Token", "type": "string"}}, "required": ["id", "name", "prefix", "created_at", "expires_at", "last_used_at", "revoked_at", "token"], "title": "ApiTokenCreatedOut", "type": "object"}, "ApiTokenIn": {"properties": {"name": {"maxLength": 100, "title": "Name", "type": "string"}, "days": {"default": 90, "title": "Days", "type": "integer"}}, "required": ["name"], "title": "ApiTokenIn", "type": "object"}, "NodeRoleRequestIn": {"description": "A node-operator request from an account that already exists\n(2026-10-12): /register's node fields, without a new username, email or\npassword. One Hub account per person; roles are added to it.", "properties": {"first_name": {"title": "First Name", "type": "string"}, "middle_name": {"default": "", "title": "Middle Name", "type": "string"}, "last_name": {"title": "Last Name", "type": "string"}, "requested_tier": {"title": "Requested Tier", "type": "string"}, "requested_node_id": {"default": "", "maxLength": 128, "title": "Requested Node Id", "type": "string"}, "country": {"description": "ISO 3166-1 alpha-2, e.g. KE", "pattern": "^[A-Z]{2}$", "title": "Country", "type": "string"}, "organisation": {"maxLength": 255, "title": "Organisation", "type": "string"}, "organisation_abbreviation": {"title": "Organisation Abbreviation", "type": "string"}, "registration_mode": {"title": "Registration Mode", "type": "string"}, "orcid": {"default": "", "title": "Orcid", "type": "string"}, "ror_id": {"default": "", "title": "Ror Id", "type": "string"}, "mobile_number": {"default": "", "maxLength": 64, "title": "Mobile Number", "type": "string"}, "justification": {"title": "Justification", "type": "string"}}, "required": ["first_name", "last_name", "requested_tier", "country", "organisation", "organisation_abbreviation", "registration_mode", "justification"], "title": "NodeRoleRequestIn", "type": "object"}, "MessageOut": {"properties": {"detail": {"title": "Detail", "type": "string"}}, "required": ["detail"], "title": "MessageOut", "type": "object"}, "SignupIn": {"properties": {"username": {"maxLength": 150, "title": "Username", "type": "string"}, "email": {"maxLength": 254, "title": "Email", "type": "string"}, "password": {"maxLength": 256, "title": "Password", "type": "string"}, "first_name": {"maxLength": 150, "title": "First Name", "type": "string"}, "last_name": {"maxLength": 150, "title": "Last Name", "type": "string"}, "country": {"maxLength": 2, "title": "Country", "type": "string"}, "affiliation": {"default": "", "maxLength": 300, "title": "Affiliation", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["username", "email", "password", "first_name", "last_name", "country"], "title": "SignupIn", "type": "object"}, "ConfirmEmailIn": {"properties": {"token": {"maxLength": 128, "title": "Token", "type": "string"}}, "required": ["token"], "title": "ConfirmEmailIn", "type": "object"}, "ResendConfirmationIn": {"properties": {"identifier": {"maxLength": 254, "title": "Identifier", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["identifier"], "title": "ResendConfirmationIn", "type": "object"}, "SignupSettingsOut": {"properties": {"require_approval": {"title": "Require Approval", "type": "boolean"}, "updated_by": {"title": "Updated By", "type": "string"}, "updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Updated At"}}, "required": ["require_approval", "updated_by", "updated_at"], "title": "SignupSettingsOut", "type": "object"}, "SignupSettingsIn": {"properties": {"require_approval": {"title": "Require Approval", "type": "boolean"}}, "required": ["require_approval"], "title": "SignupSettingsIn", "type": "object"}, "PagedPendingSignupOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PendingSignupOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedPendingSignupOut", "type": "object"}, "PendingSignupOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "username": {"title": "Username", "type": "string"}, "name": {"title": "Name", "type": "string"}, "email": {"title": "Email", "type": "string"}, "country": {"title": "Country", "type": "string"}, "affiliation": {"title": "Affiliation", "type": "string"}, "email_confirmed": {"title": "Email Confirmed", "type": "boolean"}, "approval": {"title": "Approval", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "decided_by": {"title": "Decided By", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "reconsidered_by": {"title": "Reconsidered By", "type": "string"}, "anonymised": {"title": "Anonymised", "type": "boolean"}}, "required": ["id", "username", "name", "email", "country", "affiliation", "email_confirmed", "approval", "created_at", "decided_by", "decided_at", "rejection_reason", "reconsidered_by", "anonymised"], "title": "PendingSignupOut", "type": "object"}, "SignupRejectIn": {"properties": {"reason": {"default": "", "maxLength": 2000, "title": "Reason", "type": "string"}}, "title": "SignupRejectIn", "type": "object"}, "RequestPasswordResetIn": {"properties": {"identifier": {"title": "Identifier", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["identifier"], "title": "RequestPasswordResetIn", "type": "object"}, "ResetPasswordIn": {"properties": {"token": {"title": "Token", "type": "string"}, "new_password": {"title": "New Password", "type": "string"}}, "required": ["token", "new_password"], "title": "ResetPasswordIn", "type": "object"}, "MeOut": {"properties": {"is_contributor": {"title": "Is Contributor", "type": "boolean"}, "profile": {"anyOf": [{"$ref": "#/components/schemas/ProfileOut"}, {"type": "null"}]}, "terms_version": {"title": "Terms Version", "type": "string"}, "node_memberships": {"default": [], "items": {"$ref": "#/components/schemas/MembershipOut"}, "title": "Node Memberships", "type": "array"}}, "required": ["is_contributor", "terms_version"], "title": "MeOut", "type": "object"}, "EmailStatusOut": {"properties": {"email": {"title": "Email", "type": "string"}, "confirmed": {"title": "Confirmed", "type": "boolean"}, "pending_email": {"default": "", "title": "Pending Email", "type": "string"}}, "required": ["email", "confirmed"], "title": "EmailStatusOut", "type": "object"}, "EmailChangeIn": {"properties": {"new_email": {"maxLength": 254, "title": "New Email", "type": "string"}, "password": {"maxLength": 256, "title": "Password", "type": "string"}, "code": {"default": "", "maxLength": 32, "title": "Code", "type": "string"}}, "required": ["new_email", "password"], "title": "EmailChangeIn", "type": "object"}, "EmailCodeIn": {"properties": {"code": {"maxLength": 16, "title": "Code", "type": "string"}}, "required": ["code"], "title": "EmailCodeIn", "type": "object"}, "TwoFactorStatusOut": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}, "required": {"title": "Required", "type": "boolean"}, "required_for": {"default": [], "items": {"type": "string"}, "title": "Required For", "type": "array"}, "recovery_codes_left": {"title": "Recovery Codes Left", "type": "integer"}, "email_confirmed": {"title": "Email Confirmed", "type": "boolean"}}, "required": ["enabled", "required", "recovery_codes_left", "email_confirmed"], "title": "TwoFactorStatusOut", "type": "object"}, "TwoFactorSetupOut": {"properties": {"secret": {"title": "Secret", "type": "string"}, "otpauth_uri": {"title": "Otpauth Uri", "type": "string"}, "qr_svg": {"title": "Qr Svg", "type": "string"}}, "required": ["secret", "otpauth_uri", "qr_svg"], "title": "TwoFactorSetupOut", "type": "object"}, "TwoFactorSetupIn": {"properties": {"password": {"maxLength": 256, "title": "Password", "type": "string"}}, "required": ["password"], "title": "TwoFactorSetupIn", "type": "object"}, "TwoFactorEnableOut": {"properties": {"recovery_codes": {"items": {"type": "string"}, "title": "Recovery Codes", "type": "array"}, "login": {"anyOf": [{"$ref": "#/components/schemas/LoginOut"}, {"type": "null"}]}}, "required": ["recovery_codes"], "title": "TwoFactorEnableOut", "type": "object"}, "TwoFactorCodeIn": {"properties": {"code": {"maxLength": 32, "title": "Code", "type": "string"}}, "required": ["code"], "title": "TwoFactorCodeIn", "type": "object"}, "RecoveryCodesOut": {"properties": {"recovery_codes": {"items": {"type": "string"}, "title": "Recovery Codes", "type": "array"}}, "required": ["recovery_codes"], "title": "RecoveryCodesOut", "type": "object"}, "TwoFactorConfirmIn": {"properties": {"password": {"maxLength": 256, "title": "Password", "type": "string"}, "code": {"maxLength": 32, "title": "Code", "type": "string"}}, "required": ["password", "code"], "title": "TwoFactorConfirmIn", "type": "object"}, "NodeOperatorRequestOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "first_name": {"title": "First Name", "type": "string"}, "middle_name": {"title": "Middle Name", "type": "string"}, "last_name": {"title": "Last Name", "type": "string"}, "username": {"title": "Username", "type": "string"}, "email": {"title": "Email", "type": "string"}, "mobile_number": {"title": "Mobile Number", "type": "string"}, "requested_tier": {"title": "Requested Tier", "type": "string"}, "requested_node_id": {"title": "Requested Node Id", "type": "string"}, "country": {"title": "Country", "type": "string"}, "organisation": {"title": "Organisation", "type": "string"}, "organisation_abbreviation": {"title": "Organisation Abbreviation", "type": "string"}, "registration_mode": {"title": "Registration Mode", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "ror_id": {"title": "Ror Id", "type": "string"}, "justification": {"title": "Justification", "type": "string"}, "status": {"title": "Status", "type": "string"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "applicant_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Applicant Id"}, "applicant_id_consumed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Applicant Id Consumed At"}, "email_confirmed": {"default": false, "title": "Email Confirmed", "type": "boolean"}}, "required": ["id", "first_name", "middle_name", "last_name", "username", "email", "mobile_number", "requested_tier", "requested_node_id", "country", "organisation", "organisation_abbreviation", "registration_mode", "orcid", "ror_id", "justification", "status", "requested_at", "decided_by", "decided_at", "rejection_reason", "applicant_id", "applicant_id_consumed_at"], "title": "NodeOperatorRequestOut", "type": "object"}, "PagedNodeOperatorRequestOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/NodeOperatorRequestOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedNodeOperatorRequestOut", "type": "object"}, "UpdateMyRequestIn": {"description": "Direct follow-up: an applicant should be able to see AND correct the\ndetails they submitted on /apply, from their own \"my account\" page,\nwithout waiting on a Continental Admin. `requested_node_id`/\n`applicant_id` are deliberately absent from this schema \u2014 they're\nfixed the moment the request exists (see generate_node_id/\n_consume_applicant_id's own exact-match enforcement), so there's\nnothing to accept here even if a caller tried to send one; the same\nreasoning locks `registration_mode`, since it's inseparable from\nwhichever `requested_node_id` was already produced from it. Every\nother field the applicant originally filled in is editable \u2014 full-\nreplace (PUT), matching hub.federation.api's NodeContactInfoIn shape,\nnot a partial patch.", "properties": {"first_name": {"title": "First Name", "type": "string"}, "middle_name": {"default": "", "title": "Middle Name", "type": "string"}, "last_name": {"title": "Last Name", "type": "string"}, "requested_tier": {"title": "Requested Tier", "type": "string"}, "country": {"description": "ISO 3166-1 alpha-2, e.g. KE", "pattern": "^[A-Z]{2}$", "title": "Country", "type": "string"}, "organisation": {"maxLength": 255, "title": "Organisation", "type": "string"}, "organisation_abbreviation": {"title": "Organisation Abbreviation", "type": "string"}, "orcid": {"default": "", "title": "Orcid", "type": "string"}, "ror_id": {"default": "", "title": "Ror Id", "type": "string"}, "justification": {"default": "", "title": "Justification", "type": "string"}, "mobile_number": {"default": "", "maxLength": 64, "title": "Mobile Number", "type": "string"}, "email": {"maxLength": 254, "title": "Email", "type": "string"}}, "required": ["first_name", "last_name", "requested_tier", "country", "organisation", "organisation_abbreviation", "email"], "title": "UpdateMyRequestIn", "type": "object"}, "NodeOperatorRoleOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "username": {"title": "Username", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "granted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Granted By"}, "granted_at": {"format": "date-time", "title": "Granted At", "type": "string"}, "revoked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Revoked At"}}, "required": ["id", "username", "tier", "node_id", "granted_by", "granted_at", "revoked_at"], "title": "NodeOperatorRoleOut", "type": "object"}, "PagedNodeOperatorRoleOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/NodeOperatorRoleOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedNodeOperatorRoleOut", "type": "object"}, "GrantRoleIn": {"properties": {"username": {"title": "Username", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}}, "required": ["username", "tier", "node_id"], "title": "GrantRoleIn", "type": "object"}, "ChangePasswordOut": {"properties": {"username": {"title": "Username", "type": "string"}, "access_token": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Access Token"}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Expires At"}}, "required": ["username"], "title": "ChangePasswordOut", "type": "object"}, "ChangePasswordIn": {"properties": {"current_password": {"title": "Current Password", "type": "string"}, "new_password": {"title": "New Password", "type": "string"}}, "required": ["current_password", "new_password"], "title": "ChangePasswordIn", "type": "object"}, "ProfilePictureOut": {"properties": {"username": {"title": "Username", "type": "string"}, "has_avatar": {"title": "Has Avatar", "type": "boolean"}, "avatar_url": {"title": "Avatar Url", "type": "string"}}, "required": ["username", "has_avatar", "avatar_url"], "title": "ProfilePictureOut", "type": "object"}, "ContinentalAdminOut": {"properties": {"username": {"title": "Username", "type": "string"}, "is_continental_admin": {"title": "Is Continental Admin", "type": "boolean"}}, "required": ["username", "is_continental_admin"], "title": "ContinentalAdminOut", "type": "object"}, "PagedContinentalAdminOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ContinentalAdminOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedContinentalAdminOut", "type": "object"}, "CitableRecordOut": {"properties": {"citable_id": {"title": "Citable Id", "type": "string"}, "entity_type": {"title": "Entity Type", "type": "string"}, "entity_id": {"title": "Entity Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_node_name": {"default": "", "title": "Origin Node Name", "type": "string"}, "steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "steward_profile_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Steward Profile Id"}, "origin": {"title": "Origin", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Updated At"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "contributors": {"default": [], "items": {"type": "string"}, "title": "Contributors", "type": "array"}, "evidence": {"default": "", "title": "Evidence", "type": "string"}, "evidence_url": {"default": "", "title": "Evidence Url", "type": "string"}, "version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version"}, "work_citation": {"default": "", "title": "Work Citation", "type": "string"}, "work_authors": {"default": "", "title": "Work Authors", "type": "string"}, "work_journal": {"default": "", "title": "Work Journal", "type": "string"}, "work_year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Work Year"}, "work_doi": {"default": "", "title": "Work Doi", "type": "string"}, "ena_links": {"default": [], "items": {"additionalProperties": true, "type": "object"}, "title": "Ena Links", "type": "array"}}, "required": ["citable_id", "entity_type", "entity_id", "title", "access_tier", "license_tag", "origin_node_id", "origin", "source_repository", "source_accession", "external_url", "updated_at", "retraction_status", "retracted_at", "retraction_public_notice"], "title": "CitableRecordOut", "type": "object"}, "PagedIngestJobOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/IngestJobOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedIngestJobOut", "type": "object"}, "IngestJobDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "source": {"title": "Source", "type": "string"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "raw_input": {"title": "Raw Input", "type": "string"}, "total_count": {"title": "Total Count", "type": "integer"}, "succeeded_count": {"title": "Succeeded Count", "type": "integer"}, "failed_count": {"title": "Failed Count", "type": "integer"}, "status": {"title": "Status", "type": "string"}, "items": {"items": {"$ref": "#/components/schemas/IngestJobItemOut"}, "title": "Items", "type": "array"}}, "required": ["id", "source", "submitted_by", "submitted_at", "raw_input", "total_count", "succeeded_count", "failed_count", "status", "items"], "title": "IngestJobDetailOut", "type": "object"}, "IngestJobItemOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "accession": {"title": "Accession", "type": "string"}, "repository": {"title": "Repository", "type": "string"}, "entity_type": {"title": "Entity Type", "type": "string"}, "sequence_type": {"title": "Sequence Type", "type": "string"}, "outcome": {"title": "Outcome", "type": "string"}, "detail": {"title": "Detail", "type": "string"}, "entity_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Entity Id"}, "citable_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Citable Id"}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title"}}, "required": ["id", "accession", "repository", "entity_type", "sequence_type", "outcome", "detail", "entity_id", "citable_id", "title"], "title": "IngestJobItemOut", "type": "object"}, "HarvestCriteriaOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "country": {"title": "Country", "type": "string"}, "species": {"title": "Species", "type": "string"}, "max_records": {"title": "Max Records", "type": "integer"}, "is_active": {"title": "Is Active", "type": "boolean"}, "interval_hours": {"title": "Interval Hours", "type": "integer"}, "last_run_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Run At"}, "last_run_summary": {"title": "Last Run Summary", "type": "string"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "country", "species", "max_records", "is_active", "interval_hours", "last_run_at", "last_run_summary", "created_by", "created_at"], "title": "HarvestCriteriaOut", "type": "object"}, "HarvestCriteriaIn": {"properties": {"country": {"title": "Country", "type": "string"}, "species": {"default": "", "title": "Species", "type": "string"}, "max_records": {"title": "Max Records", "type": "integer"}, "interval_hours": {"default": 24, "title": "Interval Hours", "type": "integer"}}, "required": ["country", "max_records"], "title": "HarvestCriteriaIn", "type": "object"}, "PagedHarvestCriteriaOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/HarvestCriteriaOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedHarvestCriteriaOut", "type": "object"}, "TransferBatchDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "initiation": {"title": "Initiation", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "initiated_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Initiated By"}, "note": {"title": "Note", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "items": {"items": {"$ref": "#/components/schemas/TransferItemOut"}, "title": "Items", "type": "array"}}, "required": ["id", "initiation", "tier", "node_id", "initiated_by", "note", "created_at", "items"], "title": "TransferBatchDetailOut", "type": "object"}, "TransferItemOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "entity_type": {"title": "Entity Type", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "label": {"title": "Label", "type": "string"}, "status": {"title": "Status", "type": "string"}, "decided_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Decided By"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "auto_decided": {"title": "Auto Decided", "type": "boolean"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "fetch_status": {"title": "Fetch Status", "type": "string"}, "fetch_detail": {"title": "Fetch Detail", "type": "string"}, "hub_storage_key": {"title": "Hub Storage Key", "type": "string"}, "access_conditions": {"default": "", "title": "Access Conditions", "type": "string"}, "conditions_access_tier": {"default": "", "title": "Conditions Access Tier", "type": "string"}, "conditions_abs_framework": {"default": "", "title": "Conditions Abs Framework", "type": "string"}, "conditions_set_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Conditions Set At"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "entity_type", "origin_node_id", "origin_entity_id", "label", "status", "decided_by", "decided_at", "auto_decided", "rejection_reason", "fetch_status", "fetch_detail", "hub_storage_key", "created_at"], "title": "TransferItemOut", "type": "object"}, "BatchCreateIn": {"properties": {"sequence_record_ids": {"items": {"type": "integer"}, "title": "Sequence Record Ids", "type": "array"}, "note": {"default": "", "title": "Note", "type": "string"}}, "required": ["sequence_record_ids"], "title": "BatchCreateIn", "type": "object"}, "TransferItemIn": {"properties": {"entity_type": {"title": "Entity Type", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "label": {"default": "", "title": "Label", "type": "string"}, "access_conditions": {"default": "", "maxLength": 2000, "title": "Access Conditions", "type": "string"}}, "required": ["entity_type", "origin_entity_id"], "title": "TransferItemIn", "type": "object"}, "PagedTransferBatchOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TransferBatchOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTransferBatchOut", "type": "object"}, "TransferBatchOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "initiation": {"title": "Initiation", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "initiated_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Initiated By"}, "note": {"title": "Note", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "initiation", "tier", "node_id", "initiated_by", "note", "created_at"], "title": "TransferBatchOut", "type": "object"}, "PagedTransferPolicyOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TransferPolicyOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTransferPolicyOut", "type": "object"}, "TransferPolicyOut": {"properties": {"tier": {"title": "Tier", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "entity_type": {"title": "Entity Type", "type": "string"}, "node_policy": {"title": "Node Policy", "type": "string"}, "hub_policy": {"title": "Hub Policy", "type": "string"}}, "required": ["tier", "node_id", "entity_type", "node_policy", "hub_policy"], "title": "TransferPolicyOut", "type": "object"}, "FeatureFlagsOut": {"properties": {"flags": {"additionalProperties": {"type": "boolean"}, "title": "Flags", "type": "object"}}, "required": ["flags"], "title": "FeatureFlagsOut", "type": "object"}, "FeatureFlagOut": {"properties": {"key": {"title": "Key", "type": "string"}, "label": {"title": "Label", "type": "string"}, "enabled": {"title": "Enabled", "type": "boolean"}, "updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Updated At"}}, "required": ["key", "label", "enabled", "updated_at"], "title": "FeatureFlagOut", "type": "object"}, "FeatureFlagIn": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}}, "required": ["enabled"], "title": "FeatureFlagIn", "type": "object"}, "PagedSpeciesCompletenessOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SpeciesCompletenessOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSpeciesCompletenessOut", "type": "object"}, "SpeciesCompletenessOut": {"properties": {"species_id": {"title": "Species Id", "type": "integer"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "genome": {"title": "Genome", "type": "boolean"}, "genome_types": {"items": {"type": "string"}, "title": "Genome Types", "type": "array"}, "transcriptome": {"title": "Transcriptome", "type": "boolean"}, "proteins": {"title": "Proteins", "type": "boolean"}, "proteome": {"title": "Proteome", "type": "boolean"}, "protein_structure": {"title": "Protein Structure", "type": "boolean"}, "imaging_field_specimen": {"title": "Imaging Field Specimen", "type": "boolean"}, "chemical_profiles": {"title": "Chemical Profiles", "type": "boolean"}, "metabolic_profiles": {"title": "Metabolic Profiles", "type": "boolean"}, "imaging_cellular_molecular": {"title": "Imaging Cellular Molecular", "type": "boolean"}}, "required": ["species_id", "scientific_name", "genome", "genome_types", "transcriptome", "proteins", "proteome", "protein_structure", "imaging_field_specimen", "chemical_profiles", "metabolic_profiles", "imaging_cellular_molecular"], "title": "SpeciesCompletenessOut", "type": "object"}, "AutoSyncTargetOut": {"properties": {"target_key": {"title": "Target Key", "type": "string"}, "label": {"title": "Label", "type": "string"}, "mode": {"title": "Mode", "type": "string"}, "enabled": {"title": "Enabled", "type": "boolean"}, "interval_hours": {"title": "Interval Hours", "type": "integer"}, "last_run_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Run At"}, "last_run_summary": {"title": "Last Run Summary", "type": "string"}}, "required": ["target_key", "label", "mode", "enabled", "interval_hours", "last_run_at", "last_run_summary"], "title": "AutoSyncTargetOut", "type": "object"}, "AutoSyncBulkSetIn": {"properties": {"target_keys": {"items": {"type": "string"}, "title": "Target Keys", "type": "array"}, "enabled": {"title": "Enabled", "type": "boolean"}}, "required": ["target_keys", "enabled"], "title": "AutoSyncBulkSetIn", "type": "object"}, "AutoSyncSetIn": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}, "interval_hours": {"default": 24, "title": "Interval Hours", "type": "integer"}}, "required": ["enabled"], "title": "AutoSyncSetIn", "type": "object"}, "MetabolicProfileReferenceOut": {"properties": {"steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "origin": {"title": "Origin", "type": "string"}, "title": {"title": "Title", "type": "string"}, "description": {"title": "Description", "type": "string"}, "compounds_detected": {"items": {"type": "string"}, "title": "Compounds Detected", "type": "array"}, "source_detail": {"title": "Source Detail", "type": "string"}, "doi": {"title": "Doi", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "species_id", "species_scientific_name", "source_repository", "source_accession", "origin", "title", "description", "compounds_detected", "source_detail", "doi", "external_url", "access_tier", "license_tag", "citable_id", "embargo_level", "embargo_release_date", "updated_at"], "title": "MetabolicProfileReferenceOut", "type": "object"}, "PagedMetabolicProfileReferenceOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MetabolicProfileReferenceOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMetabolicProfileReferenceOut", "type": "object"}, "MetabolicProfileFacetsOut": {"properties": {"species_scientific_name": {"items": {"type": "string"}, "title": "Species Scientific Name", "type": "array"}, "title": {"items": {"type": "string"}, "title": "Title", "type": "array"}}, "required": ["species_scientific_name", "title"], "title": "MetabolicProfileFacetsOut", "type": "object"}, "PagedSpeciesRangeSummaryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SpeciesRangeSummaryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSpeciesRangeSummaryOut", "type": "object"}, "SpeciesRangeSummaryOut": {"properties": {"species_id": {"title": "Species Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "gbif_usage_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Gbif Usage Key"}, "total_occurrence_count": {"title": "Total Occurrence Count", "type": "integer"}, "country_counts": {"items": {"$ref": "#/components/schemas/CountryCountOut"}, "title": "Country Counts", "type": "array"}, "occurrence_points": {"items": {"items": {"type": "number"}, "type": "array"}, "title": "Occurrence Points", "type": "array"}, "synced_at": {"format": "date-time", "title": "Synced At", "type": "string"}}, "required": ["species_id", "species_scientific_name", "gbif_usage_key", "total_occurrence_count", "country_counts", "occurrence_points", "synced_at"], "title": "SpeciesRangeSummaryOut", "type": "object"}, "ContactSubmitOut": {"properties": {"status": {"title": "Status", "type": "string"}, "ticket_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Ticket Id"}}, "required": ["status"], "title": "ContactSubmitOut", "type": "object"}, "ContactMessageIn": {"properties": {"first_name": {"maxLength": 200, "title": "First Name", "type": "string"}, "surname": {"default": "", "maxLength": 200, "title": "Surname", "type": "string"}, "email": {"maxLength": 254, "title": "Email", "type": "string"}, "subject_category": {"title": "Subject Category", "type": "string"}, "message": {"title": "Message", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["first_name", "email", "subject_category", "message"], "title": "ContactMessageIn", "type": "object"}, "TicketOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "ticket_id": {"title": "Ticket Id", "type": "string"}, "status": {"title": "Status", "type": "string"}, "tracker_type": {"title": "Tracker Type", "type": "string"}, "tracker_issue_url": {"title": "Tracker Issue Url", "type": "string"}, "tracker_issue_ref": {"title": "Tracker Issue Ref", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}, "contact_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Contact Id"}, "first_name": {"title": "First Name", "type": "string"}, "surname": {"title": "Surname", "type": "string"}, "email": {"title": "Email", "type": "string"}, "subject_category": {"title": "Subject Category", "type": "string"}, "message": {"title": "Message", "type": "string"}}, "required": ["id", "ticket_id", "status", "tracker_type", "tracker_issue_url", "tracker_issue_ref", "created_at", "updated_at", "contact_id", "first_name", "surname", "email", "subject_category", "message"], "title": "TicketOut", "type": "object"}, "TicketDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "ticket_id": {"title": "Ticket Id", "type": "string"}, "status": {"title": "Status", "type": "string"}, "tracker_type": {"title": "Tracker Type", "type": "string"}, "tracker_issue_url": {"title": "Tracker Issue Url", "type": "string"}, "tracker_issue_ref": {"title": "Tracker Issue Ref", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}, "contact_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Contact Id"}, "first_name": {"title": "First Name", "type": "string"}, "surname": {"title": "Surname", "type": "string"}, "email": {"title": "Email", "type": "string"}, "subject_category": {"title": "Subject Category", "type": "string"}, "message": {"title": "Message", "type": "string"}, "messages": {"items": {"$ref": "#/components/schemas/TicketMessageOut"}, "title": "Messages", "type": "array"}}, "required": ["id", "ticket_id", "status", "tracker_type", "tracker_issue_url", "tracker_issue_ref", "created_at", "updated_at", "contact_id", "first_name", "surname", "email", "subject_category", "message", "messages"], "title": "TicketDetailOut", "type": "object"}, "TicketMessageOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "sender_type": {"title": "Sender Type", "type": "string"}, "body": {"title": "Body", "type": "string"}, "tracker_comment_id": {"title": "Tracker Comment Id", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "sender_type", "body", "tracker_comment_id", "created_at"], "title": "TicketMessageOut", "type": "object"}, "SubmitterReplyIn": {"properties": {"token": {"title": "Token", "type": "string"}, "body": {"title": "Body", "type": "string"}}, "required": ["token", "body"], "title": "SubmitterReplyIn", "type": "object"}, "PagedTicketOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TicketOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTicketOut", "type": "object"}, "StaffMessageIn": {"properties": {"body": {"title": "Body", "type": "string"}}, "required": ["body"], "title": "StaffMessageIn", "type": "object"}, "LinkTrackerIn": {"properties": {"tracker_type": {"default": "github", "title": "Tracker Type", "type": "string"}}, "title": "LinkTrackerIn", "type": "object"}, "StatusIn": {"properties": {"status": {"title": "Status", "type": "string"}}, "required": ["status"], "title": "StatusIn", "type": "object"}, "TestingGateStatusOut": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}}, "required": ["enabled"], "title": "TestingGateStatusOut", "type": "object"}, "TestingGateSetOut": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}, "token": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Token"}}, "required": ["enabled"], "title": "TestingGateSetOut", "type": "object"}, "TestingGateSetIn": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}}, "required": ["enabled"], "title": "TestingGateSetIn", "type": "object"}, "TestingGateVerifyOut": {"properties": {"token": {"title": "Token", "type": "string"}}, "required": ["token"], "title": "TestingGateVerifyOut", "type": "object"}, "TestingGateVerifyIn": {"properties": {"code": {"title": "Code", "type": "string"}}, "required": ["code"], "title": "TestingGateVerifyIn", "type": "object"}, "TestingGateCheckOut": {"properties": {"valid": {"title": "Valid", "type": "boolean"}}, "required": ["valid"], "title": "TestingGateCheckOut", "type": "object"}, "TestingGateCheckIn": {"properties": {"token": {"default": "", "maxLength": 8192, "title": "Token", "type": "string"}}, "title": "TestingGateCheckIn", "type": "object"}, "EnvironmentOut": {"description": "Phase 5: which real ENA service RealEnaSubmissionClient/\nRealWebinCliRunner actually target right now (see settings.py's own\nENA_SUBMISSION_ENVIRONMENT docstring) plus whether real credentials\nare configured at all \u2014 the frontend uses this to render an\nunmistakable sandbox-vs-production banner on every ENA action, so an\nadmin can never mistake which one they're about to hit.", "properties": {"environment": {"title": "Environment", "type": "string"}, "credentials_configured": {"title": "Credentials Configured", "type": "boolean"}}, "required": ["environment", "credentials_configured"], "title": "EnvironmentOut", "type": "object"}, "EnaSubmissionEnabledOut": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}}, "required": ["enabled"], "title": "EnaSubmissionEnabledOut", "type": "object"}, "EnaSubmissionEnabledIn": {"properties": {"enabled": {"title": "Enabled", "type": "boolean"}}, "required": ["enabled"], "title": "EnaSubmissionEnabledIn", "type": "object"}, "EligibleRecordOut": {"description": "One SequenceRecord that has ena_submission_consent set \u2014 the\nContinental-Admin review surface the plan's Phase 1 bullet calls for\n(\"a panel to review which native/public records have consent set\").\nShows every consent-flagged record, not just the ready-right-now\nsubset, so an admin can see *why* something isn't submittable yet\n(``eligible=False`` with a real ``reason``), not just a silent\nomission.", "properties": {"id": {"title": "Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "sequence_type": {"title": "Sequence Type", "type": "string"}, "genome_completeness": {"title": "Genome Completeness", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "ena_submission_status": {"title": "Ena Submission Status", "type": "string"}, "eligible": {"title": "Eligible", "type": "boolean"}, "reason": {"title": "Reason", "type": "string"}}, "required": ["id", "species_scientific_name", "sequence_type", "genome_completeness", "access_tier", "ena_submission_status", "eligible", "reason"], "title": "EligibleRecordOut", "type": "object"}, "PagedEligibleRecordOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EligibleRecordOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedEligibleRecordOut", "type": "object"}, "EnaSubmissionBatchDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "initiated_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Initiated By"}, "note": {"title": "Note", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "items": {"items": {"$ref": "#/components/schemas/EnaSubmissionItemOut"}, "title": "Items", "type": "array"}}, "required": ["id", "initiated_by", "note", "created_at", "items"], "title": "EnaSubmissionBatchDetailOut", "type": "object"}, "EnaSubmissionItemOut": {"description": "Phase 4 extended this with the record's own live ENA pipeline\nstate (ena_submission_status/ena_analysis_accession/\nena_assembly_accession) \u2014 previously only this item's own frozen\nat-batch-creation-time status/detail were exposed, which never\nchanged even as the record moved through Phase 2/3/4's real pipeline\nafterward. This is the \"review panel... showing every batch's\nper-item status\" surface the plan's own Phase 4 bullet calls for.", "properties": {"id": {"title": "Id", "type": "integer"}, "sequence_record_id": {"title": "Sequence Record Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "status": {"title": "Status", "type": "string"}, "detail": {"title": "Detail", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "ena_submission_status": {"title": "Ena Submission Status", "type": "string"}, "ena_analysis_accession": {"title": "Ena Analysis Accession", "type": "string"}, "ena_assembly_accession": {"title": "Ena Assembly Accession", "type": "string"}, "ena_ncbi_confirmed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Ena Ncbi Confirmed At"}}, "required": ["id", "sequence_record_id", "species_scientific_name", "status", "detail", "created_at", "ena_submission_status", "ena_analysis_accession", "ena_assembly_accession", "ena_ncbi_confirmed_at"], "title": "EnaSubmissionItemOut", "type": "object"}, "EnaSubmissionBatchOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "initiated_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Initiated By"}, "note": {"title": "Note", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "initiated_by", "note", "created_at"], "title": "EnaSubmissionBatchOut", "type": "object"}, "PagedEnaSubmissionBatchOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EnaSubmissionBatchOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedEnaSubmissionBatchOut", "type": "object"}, "RegisterBatchOut": {"properties": {"ena_study_accession": {"title": "Ena Study Accession", "type": "string"}, "study_error": {"title": "Study Error", "type": "string"}, "items": {"items": {"$ref": "#/components/schemas/RegisterItemOutcome"}, "title": "Items", "type": "array"}}, "required": ["ena_study_accession", "study_error", "items"], "title": "RegisterBatchOut", "type": "object"}, "RegisterItemOutcome": {"description": "Phase 2 per-item outcome from POST /batches/{batch_id}/register \u2014\n\"registered\" means a real ENA Sample accession was just minted this\ncall; \"skipped_already_registered\" means a previous register call\nalready succeeded for this record (register_batch is safe to call\nagain \u2014 e.g. to retry the items that failed); \"failed\" means this\nattempt failed and the reason is in detail (the record's own\nena_submission_status is set to FAILED, which check_ena_eligibility\nalready treats as resubmittable in a future batch).", "properties": {"sequence_record_id": {"title": "Sequence Record Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "outcome": {"title": "Outcome", "type": "string"}, "ena_sample_accession": {"title": "Ena Sample Accession", "type": "string"}, "detail": {"title": "Detail", "type": "string"}}, "required": ["sequence_record_id", "species_scientific_name", "outcome", "ena_sample_accession", "detail"], "title": "RegisterItemOutcome", "type": "object"}, "SkippedSubmitItem": {"properties": {"sequence_record_id": {"title": "Sequence Record Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "reason": {"title": "Reason", "type": "string"}}, "required": ["sequence_record_id", "species_scientific_name", "reason"], "title": "SkippedSubmitItem", "type": "object"}, "SubmitAssembliesAck": {"description": "Phase 3's dispatch ack \u2014 dispatched items are handed to Celery\nimmediately and their post-task state isn't reported here at all\n(the exact \"never report a field a .delay() call may have already\nmutated without a fresh refresh_from_db()\" trap this codebase's own\nIncrement 9b/19-20/30 retrospectives already documented and fixed\nelsewhere \u2014 sidestepped here by simply not reporting it, rather than\nneeding a refresh). Real submission status is visible via GET\n/eligible or the sequence record's own read endpoints afterward.", "properties": {"dispatched": {"items": {"type": "integer"}, "title": "Dispatched", "type": "array"}, "skipped": {"items": {"$ref": "#/components/schemas/SkippedSubmitItem"}, "title": "Skipped", "type": "array"}}, "required": ["dispatched", "skipped"], "title": "SubmitAssembliesAck", "type": "object"}, "PollAccessionItemOut": {"properties": {"sequence_record_id": {"title": "Sequence Record Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "ena_submission_status": {"title": "Ena Submission Status", "type": "string"}, "ena_assembly_accession": {"title": "Ena Assembly Accession", "type": "string"}}, "required": ["sequence_record_id", "species_scientific_name", "ena_submission_status", "ena_assembly_accession"], "title": "PollAccessionItemOut", "type": "object"}, "PollAccessionsOut": {"description": "Phase 4's per-batch poll ack \u2014 synchronous (unlike Phase 3's\nsubmit-assemblies, which dispatches a real, potentially slow\nsubprocess call), since a Portal Search API GET is fast and this\nendpoint only ever touches this one batch's own already-SUBMITTED\nitems, matching register_batch's own synchronous shape and reasoning.\nchecked lists every item this call actually polled (whether or not it\nfound a new accession this time) so an admin can see the poll ran at\nall even when nothing changed \u2014 the honest, expected outcome\nthroughout sandbox testing (see hub.ena_submission.accession_poller's\nown docstring).", "properties": {"checked": {"items": {"$ref": "#/components/schemas/PollAccessionItemOut"}, "title": "Checked", "type": "array"}}, "required": ["checked"], "title": "PollAccessionsOut", "type": "object"}, "CheckPropagationItemOut": {"properties": {"sequence_record_id": {"title": "Sequence Record Id", "type": "integer"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "ena_assembly_accession": {"title": "Ena Assembly Accession", "type": "string"}, "ena_ncbi_confirmed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Ena Ncbi Confirmed At"}}, "required": ["sequence_record_id", "species_scientific_name", "ena_assembly_accession", "ena_ncbi_confirmed_at"], "title": "CheckPropagationItemOut", "type": "object"}, "CheckPropagationOut": {"description": "The INSDC-propagation follow-up to PollAccessionsOut above \u2014 same\nsynchronous, always-report-everything-checked shape, since a real\nconfirmed=False result (nothing newly confirmed) is the expected,\nnormal outcome for a record still within INSDC's real, typically\nsame-day propagation window, not a bug.", "properties": {"checked": {"items": {"$ref": "#/components/schemas/CheckPropagationItemOut"}, "title": "Checked", "type": "array"}}, "required": ["checked"], "title": "CheckPropagationOut", "type": "object"}, "PagedReadsDatasetOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ReadsDatasetOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedReadsDatasetOut", "type": "object"}, "ReadsDatasetOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "citable_id": {"title": "Citable Id", "type": "string"}, "title": {"title": "Title", "type": "string"}, "kind_label": {"title": "Kind Label", "type": "string"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "files": {"title": "Files", "type": "integer"}, "ena_submission_status": {"title": "Ena Submission Status", "type": "string"}, "ena_submission_detail": {"title": "Ena Submission Detail", "type": "string"}, "ena_study_accession": {"title": "Ena Study Accession", "type": "string"}, "ena_sample_accession": {"title": "Ena Sample Accession", "type": "string"}, "ena_experiment_accession": {"title": "Ena Experiment Accession", "type": "string"}, "ena_run_accession": {"title": "Ena Run Accession", "type": "string"}, "eligible": {"title": "Eligible", "type": "boolean"}, "reason": {"title": "Reason", "type": "string"}}, "required": ["id", "citable_id", "title", "kind_label", "species_scientific_name", "files", "ena_submission_status", "ena_submission_detail", "ena_study_accession", "ena_sample_accession", "ena_experiment_accession", "ena_run_accession", "eligible", "reason"], "title": "ReadsDatasetOut", "type": "object"}, "PagedPublicationOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PublicationOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedPublicationOut", "type": "object"}, "PublicationOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "authors": {"title": "Authors", "type": "string"}, "journal": {"title": "Journal", "type": "string"}, "publication_year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Publication Year"}, "pmid": {"title": "Pmid", "type": "string"}, "doi": {"title": "Doi", "type": "string"}, "abstract": {"title": "Abstract", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "country_affiliation": {"title": "Country Affiliation", "type": "string"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "source_repository": {"title": "Source Repository", "type": "string"}, "source_accession": {"title": "Source Accession", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "funding_agencies": {"items": {"type": "string"}, "title": "Funding Agencies", "type": "array"}, "research_topics": {"items": {"type": "string"}, "title": "Research Topics", "type": "array"}, "first_author_institution": {"title": "First Author Institution", "type": "string"}, "is_preprint": {"default": false, "title": "Is Preprint", "type": "boolean"}}, "required": ["id", "title", "authors", "journal", "publication_year", "pmid", "doi", "abstract", "external_url", "country_affiliation", "species_scientific_name", "source_repository", "source_accession", "citable_id", "access_tier", "license_tag", "created_at", "funding_agencies", "research_topics", "first_author_institution"], "title": "PublicationOut", "type": "object"}, "RunAllCriteriaOut": {"properties": {"dispatched": {"title": "Dispatched", "type": "boolean"}, "criteria_count": {"title": "Criteria Count", "type": "integer"}}, "required": ["dispatched", "criteria_count"], "title": "RunAllCriteriaOut", "type": "object"}, "PublicationFacetsOut": {"properties": {"country_affiliation": {"items": {"type": "string"}, "title": "Country Affiliation", "type": "array"}, "species_scientific_name": {"items": {"type": "string"}, "title": "Species Scientific Name", "type": "array"}}, "required": ["country_affiliation", "species_scientific_name"], "title": "PublicationFacetsOut", "type": "object"}, "PagedPaperUsingOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PaperUsingOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedPaperUsingOut", "type": "object"}, "PaperUsingOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "journal": {"title": "Journal", "type": "string"}, "year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year"}, "doi": {"title": "Doi", "type": "string"}, "pmid": {"title": "Pmid", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}, "records": {"items": {"type": "string"}, "title": "Records", "type": "array"}}, "required": ["id", "title", "journal", "year", "doi", "pmid", "citable_id", "external_url", "records"], "title": "PaperUsingOut", "type": "object"}, "PagedTeamMemberOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TeamMemberOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTeamMemberOut", "type": "object"}, "TeamMemberOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "salutation": {"title": "Salutation", "type": "string"}, "name": {"title": "Name", "type": "string"}, "role": {"title": "Role", "type": "string"}, "institution": {"title": "Institution", "type": "string"}, "bio": {"title": "Bio", "type": "string"}, "contribution_summary": {"title": "Contribution Summary", "type": "string"}, "has_photo": {"title": "Has Photo", "type": "boolean"}, "orcid": {"title": "Orcid", "type": "string"}, "linkedin_url": {"title": "Linkedin Url", "type": "string"}, "researchgate_url": {"title": "Researchgate Url", "type": "string"}, "google_scholar_url": {"title": "Google Scholar Url", "type": "string"}, "email": {"title": "Email", "type": "string"}, "category": {"title": "Category", "type": "string"}, "thematic_area": {"title": "Thematic Area", "type": "string"}}, "required": ["id", "salutation", "name", "role", "institution", "bio", "contribution_summary", "has_photo", "orcid", "linkedin_url", "researchgate_url", "google_scholar_url", "email", "category", "thematic_area"], "title": "TeamMemberOut", "type": "object"}, "NewsItemOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "category": {"title": "Category", "type": "string"}, "excerpt": {"title": "Excerpt", "type": "string"}, "has_image": {"title": "Has Image", "type": "boolean"}, "external_url": {"title": "External Url", "type": "string"}, "display_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Display Date"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}}, "required": ["id", "title", "slug", "category", "excerpt", "has_image", "external_url", "display_date", "published_at"], "title": "NewsItemOut", "type": "object"}, "PagedNewsItemOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/NewsItemOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedNewsItemOut", "type": "object"}, "PagedWhatsNewOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/WhatsNewOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedWhatsNewOut", "type": "object"}, "WhatsNewOut": {"properties": {"kind": {"title": "Kind", "type": "string"}, "title": {"title": "Title", "type": "string"}, "summary": {"title": "Summary", "type": "string"}, "href": {"title": "Href", "type": "string"}, "date": {"format": "date-time", "title": "Date", "type": "string"}, "security": {"title": "Security", "type": "boolean"}}, "required": ["kind", "title", "summary", "href", "date", "security"], "title": "WhatsNewOut", "type": "object"}, "NewsItemPreviewOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "category": {"title": "Category", "type": "string"}, "excerpt": {"title": "Excerpt", "type": "string"}, "has_image": {"title": "Has Image", "type": "boolean"}, "external_url": {"title": "External Url", "type": "string"}, "display_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Display Date"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}, "body": {"title": "Body", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean"}, "is_scheduled": {"title": "Is Scheduled", "type": "boolean"}}, "required": ["id", "title", "slug", "category", "excerpt", "has_image", "external_url", "display_date", "published_at", "body", "is_active", "is_scheduled"], "title": "NewsItemPreviewOut", "type": "object"}, "NewsItemDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "category": {"title": "Category", "type": "string"}, "excerpt": {"title": "Excerpt", "type": "string"}, "has_image": {"title": "Has Image", "type": "boolean"}, "external_url": {"title": "External Url", "type": "string"}, "display_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Display Date"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}, "body": {"title": "Body", "type": "string"}}, "required": ["id", "title", "slug", "category", "excerpt", "has_image", "external_url", "display_date", "published_at", "body"], "title": "NewsItemDetailOut", "type": "object"}, "MaterialFilters": {"properties": {"q": {"default": "", "maxLength": 200, "title": "Q", "type": "string"}, "material_type": {"default": "", "maxLength": 16, "title": "Material Type", "type": "string"}, "file_format": {"default": "", "maxLength": 16, "title": "File Format", "type": "string"}, "published_from": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published From"}, "published_to": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Published To"}, "sort": {"default": "newest", "pattern": "^(newest|oldest|title)$", "title": "Sort", "type": "string"}}, "title": "MaterialFilters", "type": "object"}, "MaterialFileOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "label": {"title": "Label", "type": "string"}, "file_name": {"title": "File Name", "type": "string"}, "file_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "File Size"}, "has_preview": {"title": "Has Preview", "type": "boolean"}}, "required": ["id", "label", "file_name", "file_size", "has_preview"], "title": "MaterialFileOut", "type": "object"}, "MaterialOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "category": {"title": "Category", "type": "string"}, "is_public": {"title": "Is Public", "type": "boolean"}, "title": {"title": "Title", "type": "string"}, "description": {"title": "Description", "type": "string"}, "material_type": {"title": "Material Type", "type": "string"}, "language": {"title": "Language", "type": "string"}, "file_name": {"title": "File Name", "type": "string"}, "file_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "File Size"}, "has_file": {"title": "Has File", "type": "boolean"}, "external_url": {"title": "External Url", "type": "string"}, "contributed_by_node_id": {"title": "Contributed By Node Id", "type": "string"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}, "files": {"items": {"$ref": "#/components/schemas/MaterialFileOut"}, "title": "Files", "type": "array"}, "has_preview": {"title": "Has Preview", "type": "boolean"}}, "required": ["id", "category", "is_public", "title", "description", "material_type", "language", "file_name", "file_size", "has_file", "external_url", "contributed_by_node_id", "published_at", "files", "has_preview"], "title": "MaterialOut", "type": "object"}, "PagedMaterialOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/MaterialOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedMaterialOut", "type": "object"}, "DecisionIn": {"properties": {"decision": {"pattern": "^(approve|reject|suspend|reinstate)$", "title": "Decision", "type": "string"}, "note": {"default": "", "maxLength": 5000, "title": "Note", "type": "string"}}, "required": ["decision"], "title": "DecisionIn", "type": "object"}, "AccessOut": {"properties": {"allowed": {"title": "Allowed", "type": "boolean"}}, "required": ["allowed"], "title": "AccessOut", "type": "object"}, "UsageCountryOut": {"properties": {"country": {"title": "Country", "type": "string"}, "name": {"title": "Name", "type": "string"}, "downloads": {"title": "Downloads", "type": "integer"}, "views": {"title": "Views", "type": "integer"}}, "required": ["country", "name", "downloads", "views"], "title": "UsageCountryOut", "type": "object"}, "UsageCountsOut": {"properties": {"downloads": {"title": "Downloads", "type": "integer"}, "views": {"title": "Views", "type": "integer"}}, "required": ["downloads", "views"], "title": "UsageCountsOut", "type": "object"}, "UsageMaterialOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "is_public": {"title": "Is Public", "type": "boolean"}, "downloads": {"title": "Downloads", "type": "integer"}, "views": {"title": "Views", "type": "integer"}, "countries": {"title": "Countries", "type": "integer"}}, "required": ["id", "title", "is_public", "downloads", "views", "countries"], "title": "UsageMaterialOut", "type": "object"}, "UsageMonthOut": {"properties": {"month": {"title": "Month", "type": "string"}, "downloads": {"title": "Downloads", "type": "integer"}, "views": {"title": "Views", "type": "integer"}}, "required": ["month", "downloads", "views"], "title": "UsageMonthOut", "type": "object"}, "UsageOut": {"properties": {"category": {"title": "Category", "type": "string"}, "downloads": {"title": "Downloads", "type": "integer"}, "views": {"title": "Views", "type": "integer"}, "signed_in_downloads": {"title": "Signed In Downloads", "type": "integer"}, "anonymous_downloads": {"title": "Anonymous Downloads", "type": "integer"}, "accounts": {"title": "Accounts", "type": "integer"}, "countries_count": {"title": "Countries Count", "type": "integer"}, "countries": {"items": {"$ref": "#/components/schemas/UsageCountryOut"}, "title": "Countries", "type": "array"}, "unknown_country": {"$ref": "#/components/schemas/UsageCountsOut"}, "materials": {"items": {"$ref": "#/components/schemas/UsageMaterialOut"}, "title": "Materials", "type": "array"}, "months": {"items": {"$ref": "#/components/schemas/UsageMonthOut"}, "title": "Months", "type": "array"}, "attribution": {"title": "Attribution", "type": "string"}}, "required": ["category", "downloads", "views", "signed_in_downloads", "anonymous_downloads", "accounts", "countries_count", "countries", "unknown_country", "materials", "months", "attribution"], "title": "UsageOut", "type": "object"}, "PackOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "node_tier": {"title": "Node Tier", "type": "string"}, "scope": {"title": "Scope", "type": "string"}, "scope_value": {"title": "Scope Value", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "policy_context": {"title": "Policy Context", "type": "string"}, "has_logo": {"title": "Has Logo", "type": "boolean"}, "status": {"title": "Status", "type": "string"}, "status_label": {"title": "Status Label", "type": "string"}, "hub_comment": {"title": "Hub Comment", "type": "string"}, "node_comment": {"title": "Node Comment", "type": "string"}, "requested_by": {"title": "Requested By", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "hub_decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Hub Decided At"}, "node_decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Node Decided At"}}, "required": ["id", "node_id", "node_tier", "scope", "scope_value", "display_name", "policy_context", "has_logo", "status", "status_label", "hub_comment", "node_comment", "requested_by", "created_at", "hub_decided_at", "node_decided_at"], "title": "PackOut", "type": "object"}, "PagedPackOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PackOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedPackOut", "type": "object"}, "PackDecisionIn": {"properties": {"decision": {"pattern": "^(approve|reject)$", "title": "Decision", "type": "string"}, "comment": {"default": "", "maxLength": 5000, "title": "Comment", "type": "string"}}, "required": ["decision"], "title": "PackDecisionIn", "type": "object"}, "SupportReceivedOut": {"properties": {"status": {"title": "Status", "type": "string"}, "email_sent": {"title": "Email Sent", "type": "boolean"}}, "required": ["status", "email_sent"], "title": "SupportReceivedOut", "type": "object"}, "SupportIn": {"properties": {"action": {"title": "Action", "type": "string"}, "endorser_type": {"title": "Endorser Type", "type": "string"}, "name": {"maxLength": 200, "title": "Name", "type": "string"}, "organisation": {"default": "", "maxLength": 255, "title": "Organisation", "type": "string"}, "role": {"default": "", "maxLength": 200, "title": "Role", "type": "string"}, "country_of_origin": {"default": "", "maxLength": 2, "title": "Country Of Origin", "type": "string"}, "country_of_affiliation": {"default": "", "maxLength": 2, "title": "Country Of Affiliation", "type": "string"}, "email": {"maxLength": 254, "title": "Email", "type": "string"}, "message": {"default": "", "maxLength": 5000, "title": "Message", "type": "string"}, "show_name": {"default": false, "title": "Show Name", "type": "boolean"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["action", "endorser_type", "name", "email"], "title": "SupportIn", "type": "object"}, "EndorsementOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "display_name": {"title": "Display Name", "type": "string"}, "endorser_type": {"title": "Endorser Type", "type": "string"}, "role": {"title": "Role", "type": "string"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "country_of_affiliation": {"title": "Country Of Affiliation", "type": "string"}, "endorsed_at": {"format": "date-time", "title": "Endorsed At", "type": "string"}}, "required": ["id", "display_name", "endorser_type", "role", "country_of_origin", "country_of_affiliation", "endorsed_at"], "title": "EndorsementOut", "type": "object"}, "PagedEndorsementOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EndorsementOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedEndorsementOut", "type": "object"}, "SupportStatsOut": {"properties": {"organisations": {"title": "Organisations", "type": "integer"}, "individuals": {"title": "Individuals", "type": "integer"}, "total": {"title": "Total", "type": "integer"}, "named": {"title": "Named", "type": "integer"}, "anonymous": {"title": "Anonymous", "type": "integer"}, "by_country_of_origin": {"items": {"$ref": "#/components/schemas/CountryCountOut"}, "title": "By Country Of Origin", "type": "array"}, "by_country_of_affiliation": {"items": {"$ref": "#/components/schemas/CountryCountOut"}, "title": "By Country Of Affiliation", "type": "array"}}, "required": ["organisations", "individuals", "total", "named", "anonymous", "by_country_of_origin", "by_country_of_affiliation"], "title": "SupportStatsOut", "type": "object"}, "CountsOut": {"properties": {"pending": {"title": "Pending", "type": "integer"}, "published": {"title": "Published", "type": "integer"}, "returned": {"title": "Returned", "type": "integer"}, "no_support": {"title": "No Support", "type": "integer"}}, "required": ["pending", "published", "returned", "no_support"], "title": "CountsOut", "type": "object"}, "ProfileOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "username": {"title": "Username", "type": "string"}, "email": {"title": "Email", "type": "string"}, "first_name": {"title": "First Name", "type": "string"}, "last_name": {"title": "Last Name", "type": "string"}, "affiliation": {"title": "Affiliation", "type": "string"}, "country": {"title": "Country", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "data_description": {"title": "Data Description", "type": "string"}, "terms_version": {"title": "Terms Version", "type": "string"}, "status": {"title": "Status", "type": "string"}, "status_label": {"title": "Status Label", "type": "string"}, "decision_note": {"title": "Decision Note", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "username", "email", "first_name", "last_name", "affiliation", "country", "orcid", "data_description", "terms_version", "status", "status_label", "decision_note", "decided_at", "created_at"], "title": "ProfileOut", "type": "object"}, "ProfileIn": {"properties": {"first_name": {"default": "", "maxLength": 150, "title": "First Name", "type": "string"}, "last_name": {"default": "", "maxLength": 150, "title": "Last Name", "type": "string"}, "affiliation": {"default": "", "maxLength": 300, "title": "Affiliation", "type": "string"}, "country": {"default": "", "maxLength": 2, "title": "Country", "type": "string"}, "orcid": {"default": "", "maxLength": 19, "title": "Orcid", "type": "string"}, "data_description": {"default": "", "maxLength": 4000, "title": "Data Description", "type": "string"}}, "title": "ProfileIn", "type": "object"}, "ApplyIn": {"properties": {"first_name": {"default": "", "maxLength": 150, "title": "First Name", "type": "string"}, "last_name": {"default": "", "maxLength": 150, "title": "Last Name", "type": "string"}, "affiliation": {"default": "", "maxLength": 300, "title": "Affiliation", "type": "string"}, "country": {"default": "", "maxLength": 2, "title": "Country", "type": "string"}, "orcid": {"default": "", "maxLength": 19, "title": "Orcid", "type": "string"}, "data_description": {"default": "", "maxLength": 4000, "title": "Data Description", "type": "string"}, "agreed": {"default": false, "title": "Agreed", "type": "boolean"}}, "title": "ApplyIn", "type": "object"}, "OrcidStartOut": {"properties": {"available": {"title": "Available", "type": "boolean"}, "url": {"title": "Url", "type": "string"}}, "required": ["available", "url"], "title": "OrcidStartOut", "type": "object"}, "OrcidVerifyIn": {"properties": {"code": {"maxLength": 200, "title": "Code", "type": "string"}, "state": {"maxLength": 500, "title": "State", "type": "string"}}, "required": ["code", "state"], "title": "OrcidVerifyIn", "type": "object"}, "GuideBlockOut": {"properties": {"text": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Text"}, "items": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Items"}}, "title": "GuideBlockOut", "type": "object"}, "GuideOut": {"properties": {"area": {"title": "Area", "type": "string"}, "title": {"title": "Title", "type": "string"}, "intro": {"title": "Intro", "type": "string"}, "sections": {"items": {"$ref": "#/components/schemas/GuideSectionOut"}, "title": "Sections", "type": "array"}}, "required": ["area", "title", "intro", "sections"], "title": "GuideOut", "type": "object"}, "GuideSectionOut": {"properties": {"heading": {"title": "Heading", "type": "string"}, "blocks": {"items": {"$ref": "#/components/schemas/GuideBlockOut"}, "title": "Blocks", "type": "array"}}, "required": ["heading", "blocks"], "title": "GuideSectionOut", "type": "object"}, "AreaOut": {"properties": {"slug": {"title": "Slug", "type": "string"}, "title": {"title": "Title", "type": "string"}, "path": {"title": "Path", "type": "string"}, "curators": {"title": "Curators", "type": "integer"}, "open_items": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Open Items"}, "last_ready": {"anyOf": [{"$ref": "#/components/schemas/NoticeOut"}, {"type": "null"}]}, "last_opened": {"anyOf": [{"$ref": "#/components/schemas/NoticeOut"}, {"type": "null"}]}}, "required": ["slug", "title", "path", "curators", "open_items", "last_ready", "last_opened"], "title": "AreaOut", "type": "object"}, "NoticeOut": {"properties": {"kind": {"title": "Kind", "type": "string"}, "note": {"title": "Note", "type": "string"}, "recipients": {"title": "Recipients", "type": "integer"}, "open_items": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Open Items"}, "sent_by": {"title": "Sent By", "type": "string"}, "sent_at": {"format": "date-time", "title": "Sent At", "type": "string"}}, "required": ["kind", "note", "recipients", "open_items", "sent_by", "sent_at"], "title": "NoticeOut", "type": "object"}, "PagedAreaOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/AreaOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedAreaOut", "type": "object"}, "NotifyIn": {"properties": {"kind": {"maxLength": 16, "title": "Kind", "type": "string"}, "note": {"default": "", "maxLength": 2000, "title": "Note", "type": "string"}, "force": {"default": false, "title": "Force", "type": "boolean"}}, "required": ["kind"], "title": "NotifyIn", "type": "object"}, "CuratorsOut": {"properties": {"curators": {"title": "Curators", "type": "integer"}, "named": {"title": "Named", "type": "integer"}, "countries": {"title": "Countries", "type": "integer"}, "published": {"title": "Published", "type": "integer"}, "published_by_current": {"title": "Published By Current", "type": "integer"}, "items": {"items": {"$ref": "#/components/schemas/PublicCuratorOut"}, "title": "Items", "type": "array"}}, "required": ["curators", "named", "countries", "published", "published_by_current", "items"], "title": "CuratorsOut", "type": "object"}, "PublicCuratorOut": {"properties": {"name": {"title": "Name", "type": "string"}, "affiliation": {"title": "Affiliation", "type": "string"}, "country": {"title": "Country", "type": "string"}, "country_code": {"title": "Country Code", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "orcid_verified": {"title": "Orcid Verified", "type": "boolean"}, "published": {"title": "Published", "type": "integer"}, "updates": {"title": "Updates", "type": "integer"}, "pathogens": {"items": {"type": "string"}, "title": "Pathogens", "type": "array"}, "pathogen_count": {"title": "Pathogen Count", "type": "integer"}, "since": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Since"}, "latest": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Latest"}, "areas": {"default": [], "items": {"type": "string"}, "title": "Areas", "type": "array"}}, "required": ["name", "affiliation", "country", "country_code", "orcid", "orcid_verified", "published", "updates", "pathogens", "pathogen_count", "since", "latest"], "title": "PublicCuratorOut", "type": "object"}, "CitedCuratorOut": {"properties": {"name": {"title": "Name", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "orcid_verified": {"title": "Orcid Verified", "type": "boolean"}, "affiliation": {"title": "Affiliation", "type": "string"}, "country": {"title": "Country", "type": "string"}}, "required": ["name", "orcid", "orcid_verified", "affiliation", "country"], "title": "CitedCuratorOut", "type": "object"}, "DatasetCitationOut": {"properties": {"text": {"title": "Text", "type": "string"}, "url": {"title": "Url", "type": "string"}, "role": {"title": "Role", "type": "string"}, "curators": {"items": {"$ref": "#/components/schemas/CitedCuratorOut"}, "title": "Curators", "type": "array"}, "unnamed_curators": {"title": "Unnamed Curators", "type": "integer"}, "accessed": {"title": "Accessed", "type": "string"}}, "required": ["text", "url", "role", "curators", "unnamed_curators", "accessed"], "title": "DatasetCitationOut", "type": "object"}, "PagedTaskOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TaskOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTaskOut", "type": "object"}, "TaskOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "pathogen": {"title": "Pathogen", "type": "string"}, "reservoir_host": {"title": "Reservoir Host", "type": "string"}, "host_as_recorded": {"title": "Host As Recorded", "type": "string"}, "host_note": {"title": "Host Note", "type": "string"}, "genomes": {"title": "Genomes", "type": "integer"}, "countries": {"title": "Countries", "type": "string"}, "candidate_pmids": {"items": {"type": "string"}, "title": "Candidate Pmids", "type": "array"}, "pubmed_search": {"title": "Pubmed Search", "type": "string"}, "state": {"title": "State", "type": "string"}, "state_label": {"title": "State Label", "type": "string"}, "claimed_by_me": {"title": "Claimed By Me", "type": "boolean"}, "claimed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Claimed At"}, "can_claim": {"title": "Can Claim", "type": "boolean"}, "submissions_needed": {"title": "Submissions Needed", "type": "integer"}, "closed_by_name": {"default": "", "title": "Closed By Name", "type": "string"}, "closed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Closed At"}, "closed_note": {"default": "", "title": "Closed Note", "type": "string"}, "times_reopened": {"default": 0, "title": "Times Reopened", "type": "integer"}}, "required": ["id", "pathogen", "reservoir_host", "host_as_recorded", "host_note", "genomes", "countries", "candidate_pmids", "pubmed_search", "state", "state_label", "claimed_by_me", "claimed_at", "can_claim", "submissions_needed"], "title": "TaskOut", "type": "object"}, "LoadOut": {"properties": {"added": {"title": "Added", "type": "integer"}, "already": {"title": "Already", "type": "integer"}, "skipped": {"title": "Skipped", "type": "integer"}, "refreshed": {"default": 0, "title": "Refreshed", "type": "integer"}}, "required": ["added", "already", "skipped"], "title": "LoadOut", "type": "object"}, "ReopeningOut": {"properties": {"reason": {"title": "Reason", "type": "string"}, "reopened_by_name": {"title": "Reopened By Name", "type": "string"}, "reopened_at": {"format": "date-time", "title": "Reopened At", "type": "string"}, "closed_by_name": {"title": "Closed By Name", "type": "string"}, "closed_note": {"title": "Closed Note", "type": "string"}, "closed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Closed At"}}, "required": ["reason", "reopened_by_name", "reopened_at", "closed_by_name", "closed_note", "closed_at"], "title": "ReopeningOut", "type": "object"}, "TaskDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "pathogen": {"title": "Pathogen", "type": "string"}, "reservoir_host": {"title": "Reservoir Host", "type": "string"}, "host_as_recorded": {"title": "Host As Recorded", "type": "string"}, "host_note": {"title": "Host Note", "type": "string"}, "genomes": {"title": "Genomes", "type": "integer"}, "countries": {"title": "Countries", "type": "string"}, "candidate_pmids": {"items": {"type": "string"}, "title": "Candidate Pmids", "type": "array"}, "pubmed_search": {"title": "Pubmed Search", "type": "string"}, "state": {"title": "State", "type": "string"}, "state_label": {"title": "State Label", "type": "string"}, "claimed_by_me": {"title": "Claimed By Me", "type": "boolean"}, "claimed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Claimed At"}, "can_claim": {"title": "Can Claim", "type": "boolean"}, "submissions_needed": {"title": "Submissions Needed", "type": "integer"}, "closed_by_name": {"default": "", "title": "Closed By Name", "type": "string"}, "closed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Closed At"}, "closed_note": {"default": "", "title": "Closed Note", "type": "string"}, "times_reopened": {"default": 0, "title": "Times Reopened", "type": "integer"}, "accessions": {"title": "Accessions", "type": "string"}, "my_submissions": {"items": {"$ref": "#/components/schemas/SubmissionOut"}, "title": "My Submissions", "type": "array"}, "reopenings": {"default": [], "items": {"$ref": "#/components/schemas/ReopeningOut"}, "title": "Reopenings", "type": "array"}}, "required": ["id", "pathogen", "reservoir_host", "host_as_recorded", "host_note", "genomes", "countries", "candidate_pmids", "pubmed_search", "state", "state_label", "claimed_by_me", "claimed_at", "can_claim", "submissions_needed", "accessions", "my_submissions"], "title": "TaskDetailOut", "type": "object"}, "NoteIn": {"properties": {"note": {"default": "", "maxLength": 5000, "title": "Note", "type": "string"}}, "title": "NoteIn", "type": "object"}, "CurationIn": {"properties": {"pmid": {"default": "", "maxLength": 40, "title": "Pmid", "type": "string"}, "doi": {"default": "", "maxLength": 300, "title": "Doi", "type": "string"}, "doi_reason": {"default": "", "maxLength": 500, "title": "Doi Reason", "type": "string"}, "status": {"maxLength": 16, "title": "Status", "type": "string"}, "evidence_note": {"default": "", "maxLength": 500, "title": "Evidence Note", "type": "string"}, "pathogen_african_status": {"default": "", "maxLength": 40, "title": "Pathogen African Status", "type": "string"}, "host_african_status": {"default": "", "maxLength": 40, "title": "Host African Status", "type": "string"}, "reservoir_host": {"default": "", "maxLength": 255, "title": "Reservoir Host", "type": "string"}}, "required": ["status"], "title": "CurationIn", "type": "object"}, "PaperOut": {"properties": {"pmid": {"title": "Pmid", "type": "string"}, "doi": {"default": "", "title": "Doi", "type": "string"}, "source": {"default": "PubMed", "title": "Source", "type": "string"}, "is_preprint": {"default": false, "title": "Is Preprint", "type": "boolean"}, "title": {"title": "Title", "type": "string"}, "authors": {"title": "Authors", "type": "string"}, "journal": {"title": "Journal", "type": "string"}, "year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year"}, "abstract": {"title": "Abstract", "type": "string"}, "on_hub": {"title": "On Hub", "type": "boolean"}}, "required": ["pmid", "title", "authors", "journal", "year", "abstract", "on_hub"], "title": "PaperOut", "type": "object"}, "ChangeOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "association_id": {"title": "Association Id", "type": "integer"}, "pair": {"title": "Pair", "type": "string"}, "kind": {"title": "Kind", "type": "string"}, "kind_label": {"title": "Kind Label", "type": "string"}, "proposed_status": {"title": "Proposed Status", "type": "string"}, "proposed_evidence_note": {"title": "Proposed Evidence Note", "type": "string"}, "clear_evidence_note": {"title": "Clear Evidence Note", "type": "boolean"}, "proposed_reservoir_host": {"title": "Proposed Reservoir Host", "type": "string"}, "current_status": {"title": "Current Status", "type": "string"}, "current_evidence_note": {"title": "Current Evidence Note", "type": "string"}, "current_reservoir_host": {"title": "Current Reservoir Host", "type": "string"}, "reason": {"title": "Reason", "type": "string"}, "proposed_by": {"title": "Proposed By", "type": "string"}, "state": {"title": "State", "type": "string"}, "state_label": {"title": "State Label", "type": "string"}, "decision_note": {"title": "Decision Note", "type": "string"}, "version_after": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version After"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "association_id", "pair", "kind", "kind_label", "proposed_status", "proposed_evidence_note", "clear_evidence_note", "proposed_reservoir_host", "current_status", "current_evidence_note", "current_reservoir_host", "reason", "proposed_by", "state", "state_label", "decision_note", "version_after", "created_at"], "title": "ChangeOut", "type": "object"}, "ChangeIn": {"properties": {"reason": {"maxLength": 5000, "title": "Reason", "type": "string"}, "retraction": {"default": false, "title": "Retraction", "type": "boolean"}, "status": {"default": "", "maxLength": 16, "title": "Status", "type": "string"}, "evidence_note": {"anyOf": [{"maxLength": 500, "type": "string"}, {"type": "null"}], "title": "Evidence Note"}, "reservoir_host": {"default": "", "maxLength": 255, "title": "Reservoir Host", "type": "string"}}, "required": ["reason"], "title": "ChangeIn", "type": "object"}, "PagedChangeOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ChangeOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedChangeOut", "type": "object"}, "CreditOut": {"properties": {"name": {"title": "Name", "type": "string"}, "affiliation": {"title": "Affiliation", "type": "string"}, "country": {"title": "Country", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "named": {"title": "Named", "type": "boolean"}, "orcid_verified": {"default": false, "title": "Orcid Verified", "type": "boolean"}}, "required": ["name", "affiliation", "country", "orcid", "named"], "title": "CreditOut", "type": "object"}, "HistoryOut": {"properties": {"association_id": {"title": "Association Id", "type": "integer"}, "version": {"title": "Version", "type": "integer"}, "reviewed_by": {"title": "Reviewed By", "type": "string"}, "versions": {"items": {"$ref": "#/components/schemas/VersionOut"}, "title": "Versions", "type": "array"}}, "required": ["association_id", "version", "reviewed_by", "versions"], "title": "HistoryOut", "type": "object"}, "VersionOut": {"properties": {"version": {"title": "Version", "type": "integer"}, "kind": {"title": "Kind", "type": "string"}, "by": {"anyOf": [{"$ref": "#/components/schemas/CreditOut"}, {"type": "null"}]}, "co_by": {"anyOf": [{"$ref": "#/components/schemas/CreditOut"}, {"type": "null"}]}, "reason": {"title": "Reason", "type": "string"}, "at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "At"}, "changes": {"items": {"additionalProperties": true, "type": "object"}, "title": "Changes", "type": "array"}}, "required": ["version", "kind", "by", "co_by", "reason", "at", "changes"], "title": "VersionOut", "type": "object"}, "PagedProfileOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProfileOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProfileOut", "type": "object"}, "DisputeOut": {"properties": {"task": {"$ref": "#/components/schemas/TaskOut"}, "first": {"$ref": "#/components/schemas/SubmissionOut"}, "second": {"$ref": "#/components/schemas/SubmissionOut"}}, "required": ["task", "first", "second"], "title": "DisputeOut", "type": "object"}, "PagedDisputeOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/DisputeOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedDisputeOut", "type": "object"}, "DisputeIn": {"properties": {"choice": {"pattern": "^(first|second|both|neither)$", "title": "Choice", "type": "string"}, "note": {"default": "", "maxLength": 5000, "title": "Note", "type": "string"}}, "required": ["choice"], "title": "DisputeIn", "type": "object"}, "YesNoIn": {"properties": {"approve": {"title": "Approve", "type": "boolean"}, "note": {"default": "", "maxLength": 5000, "title": "Note", "type": "string"}}, "required": ["approve"], "title": "YesNoIn", "type": "object"}, "PagedStatusProposalOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/StatusProposalOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedStatusProposalOut", "type": "object"}, "StatusProposalOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "species_id": {"title": "Species Id", "type": "integer"}, "species": {"title": "Species", "type": "string"}, "current_status": {"title": "Current Status", "type": "string"}, "proposed_status": {"title": "Proposed Status", "type": "string"}, "reason": {"title": "Reason", "type": "string"}, "proposed_by": {"title": "Proposed By", "type": "string"}, "state": {"title": "State", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "species_id", "species", "current_status", "proposed_status", "reason", "proposed_by", "state", "created_at"], "title": "StatusProposalOut", "type": "object"}, "AdminOverviewOut": {"properties": {"applications": {"title": "Applications", "type": "integer"}, "open_tasks": {"title": "Open Tasks", "type": "integer"}, "claimed_tasks": {"title": "Claimed Tasks", "type": "integer"}, "disputes": {"title": "Disputes", "type": "integer"}, "changes": {"title": "Changes", "type": "integer"}, "status_proposals": {"title": "Status Proposals", "type": "integer"}}, "required": ["applications", "open_tasks", "claimed_tasks", "disputes", "changes", "status_proposals"], "title": "AdminOverviewOut", "type": "object"}, "InstallCodeOut": {"properties": {"install_code": {"title": "Install Code", "type": "string"}, "expires_at": {"format": "date-time", "title": "Expires At", "type": "string"}, "command": {"title": "Command", "type": "string"}, "native_command": {"title": "Native Command", "type": "string"}, "inspect_commands": {"title": "Inspect Commands", "type": "string"}, "installer_url": {"title": "Installer Url", "type": "string"}}, "required": ["install_code", "expires_at", "command", "native_command", "inspect_commands", "installer_url"], "title": "InstallCodeOut", "type": "object"}, "NodeSoftwareReleaseOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "version": {"title": "Version", "type": "string"}, "release_notes": {"title": "Release Notes", "type": "string"}, "is_security_update": {"title": "Is Security Update", "type": "boolean"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}}, "required": ["id", "version", "release_notes", "is_security_update", "published_at"], "title": "NodeSoftwareReleaseOut", "type": "object"}, "ReleaseArtifactOut": {"properties": {"artifact_type": {"title": "Artifact Type", "type": "string"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}}, "required": ["artifact_type", "sha256_checksum"], "title": "ReleaseArtifactOut", "type": "object"}, "ReleaseArtifactsOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "version": {"title": "Version", "type": "string"}, "artifacts": {"items": {"$ref": "#/components/schemas/ReleaseArtifactOut"}, "title": "Artifacts", "type": "array"}, "checksums_manifest_available": {"title": "Checksums Manifest Available", "type": "boolean"}, "checksums_manifest_signature_available": {"title": "Checksums Manifest Signature Available", "type": "boolean"}}, "required": ["id", "version", "artifacts", "checksums_manifest_available", "checksums_manifest_signature_available"], "title": "ReleaseArtifactsOut", "type": "object"}, "LicenseRevisionOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "version": {"title": "Version", "type": "string"}, "summary": {"title": "Summary", "type": "string"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}}, "required": ["id", "version", "summary", "published_at"], "title": "LicenseRevisionOut", "type": "object"}, "FeaturedPublicationOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "category": {"title": "Category", "type": "string"}, "authors": {"title": "Authors", "type": "string"}, "journal": {"title": "Journal", "type": "string"}, "publication_year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Publication Year"}, "doi": {"title": "Doi", "type": "string"}, "abstract": {"title": "Abstract", "type": "string"}, "external_url": {"title": "External Url", "type": "string"}}, "required": ["id", "title", "category", "authors", "journal", "publication_year", "doi", "abstract", "external_url"], "title": "FeaturedPublicationOut", "type": "object"}, "PagedFeaturedPublicationOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/FeaturedPublicationOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedFeaturedPublicationOut", "type": "object"}, "SubscribeOut": {"properties": {"status": {"title": "Status", "type": "string"}}, "required": ["status"], "title": "SubscribeOut", "type": "object"}, "SubscribeIn": {"properties": {"email": {"maxLength": 254, "title": "Email", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["email"], "title": "SubscribeIn", "type": "object"}, "UnsubscribeOut": {"properties": {"status": {"title": "Status", "type": "string"}}, "required": ["status"], "title": "UnsubscribeOut", "type": "object"}, "UnsubscribeIn": {"properties": {"email": {"maxLength": 254, "title": "Email", "type": "string"}}, "required": ["email"], "title": "UnsubscribeIn", "type": "object"}, "PagedSubscriberOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/SubscriberOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedSubscriberOut", "type": "object"}, "SubscriberOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "email": {"title": "Email", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean"}, "subscribed_at": {"format": "date-time", "title": "Subscribed At", "type": "string"}, "unsubscribed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Unsubscribed At"}}, "required": ["id", "email", "is_active", "subscribed_at", "unsubscribed_at"], "title": "SubscriberOut", "type": "object"}, "PagedRecordRevisionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RecordRevisionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRecordRevisionOut", "type": "object"}, "RecordRevisionOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "record_kind": {"title": "Record Kind", "type": "string"}, "record_id": {"title": "Record Id", "type": "integer"}, "field_name": {"title": "Field Name", "type": "string"}, "old_value": {"title": "Old Value", "type": "string"}, "new_value": {"title": "New Value", "type": "string"}, "change_kind": {"title": "Change Kind", "type": "string"}, "changed_by": {"title": "Changed By", "type": "string"}, "changed_at": {"format": "date-time", "title": "Changed At", "type": "string"}}, "required": ["id", "record_kind", "record_id", "field_name", "old_value", "new_value", "change_kind", "changed_by", "changed_at"], "title": "RecordRevisionOut", "type": "object"}, "DerivedAnalysisResultOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "citable_id": {"title": "Citable Id", "type": "string"}, "species_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Species Id"}, "species_scientific_name": {"title": "Species Scientific Name", "type": "string"}, "sequence_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Sequence Record Id"}, "sequence_record_citable_id": {"title": "Sequence Record Citable Id", "type": "string"}, "analysis_type": {"title": "Analysis Type", "type": "string"}, "tool_name": {"title": "Tool Name", "type": "string"}, "tool_version": {"title": "Tool Version", "type": "string"}, "title": {"title": "Title", "type": "string"}, "file_name": {"title": "File Name", "type": "string"}, "manifest": {"additionalProperties": true, "title": "Manifest", "type": "object"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "result_size_bytes": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Result Size Bytes"}, "origin": {"title": "Origin", "type": "string"}, "origin_node_id": {"title": "Origin Node Id", "type": "string"}, "origin_entity_id": {"title": "Origin Entity Id", "type": "string"}, "hop_chain": {"items": {"type": "string"}, "title": "Hop Chain", "type": "array"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "country_of_origin": {"default": "", "title": "Country Of Origin", "type": "string"}, "abs_framework": {"default": "", "title": "Abs Framework", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_requested_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retraction Requested At"}, "retraction_requested_by": {"title": "Retraction Requested By", "type": "string"}, "retraction_reason": {"title": "Retraction Reason", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "retracted_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Retracted At"}, "retracted_by": {"title": "Retracted By", "type": "string"}, "download_available": {"title": "Download Available", "type": "boolean"}, "view_at_source_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "View At Source Url"}}, "required": ["id", "citable_id", "species_id", "species_scientific_name", "sequence_record_id", "sequence_record_citable_id", "analysis_type", "tool_name", "tool_version", "title", "file_name", "manifest", "sha256_checksum", "result_size_bytes", "origin", "origin_node_id", "origin_entity_id", "hop_chain", "access_tier", "license_tag", "updated_at", "retraction_status", "retraction_requested_at", "retraction_requested_by", "retraction_reason", "retraction_public_notice", "retracted_at", "retracted_by", "download_available", "view_at_source_url"], "title": "DerivedAnalysisResultOut", "type": "object"}, "PagedDerivedAnalysisResultOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/DerivedAnalysisResultOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedDerivedAnalysisResultOut", "type": "object"}, "DerivedAnalysisFacetsOut": {"properties": {"analysis_type": {"items": {"type": "string"}, "title": "Analysis Type", "type": "array"}}, "required": ["analysis_type"], "title": "DerivedAnalysisFacetsOut", "type": "object"}, "SourceLinkOut": {"properties": {"url": {"title": "Url", "type": "string"}, "expires_in_seconds": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Expires In Seconds"}}, "required": ["url", "expires_in_seconds"], "title": "SourceLinkOut", "type": "object"}, "ImageSource": {"enum": ["registry", "hub"], "title": "ImageSource", "type": "string"}, "TrainingCapability": {"description": "What a node can do, sent by the node itself (``PUT \u2026/node/capability``)\non each check-in, so the Hub learns it without ever calling the node.\nThe same object appears as ``federated_training`` in ``/api/node-info``.", "properties": {"enabled": {"title": "Enabled", "type": "boolean"}, "gpu": {"default": false, "title": "Gpu", "type": "boolean"}, "data_types": {"items": {"$ref": "#/components/schemas/TrainingDataType"}, "title": "Data Types", "type": "array"}, "contract_version": {"default": "1", "title": "Contract Version", "type": "string"}, "image_sources": {"items": {"$ref": "#/components/schemas/ImageSource"}, "title": "Image Sources", "type": "array"}, "platforms": {"items": {"type": "string"}, "title": "Platforms", "type": "array"}}, "required": ["enabled"], "title": "TrainingCapability", "type": "object"}, "TrainingDataType": {"description": "What a run trains on; the same strings as the sync entity types.", "enum": ["sequence_record", "protein_record"], "title": "TrainingDataType", "type": "string"}, "ConsentStatus": {"enum": ["pending", "accepted", "declined"], "title": "ConsentStatus", "type": "string"}, "DataFilter": {"description": "Which of a node's records a run may use. The node applies it, together\nwith its own allowed access tiers; the Hub never sees the records.", "properties": {"data_type": {"$ref": "#/components/schemas/TrainingDataType"}, "species": {"items": {"type": "string"}, "maxItems": 1000, "title": "Species", "type": "array"}}, "required": ["data_type"], "title": "DataFilter", "type": "object"}, "RunStatus": {"enum": ["awaiting_consent", "running", "succeeded", "failed", "cancelled"], "title": "RunStatus", "type": "string"}, "TrainingInvitation": {"properties": {"run_id": {"maxLength": 64, "minLength": 1, "title": "Run Id", "type": "string"}, "purpose": {"default": "", "maxLength": 2000, "title": "Purpose", "type": "string"}, "recipe": {"$ref": "#/components/schemas/TrainingRecipeRef"}, "rounds": {"maximum": 1000, "minimum": 1, "title": "Rounds", "type": "integer"}, "epochs_per_round": {"maximum": 1000, "minimum": 1, "title": "Epochs Per Round", "type": "integer"}, "data_filter": {"$ref": "#/components/schemas/DataFilter"}, "hyperparameters": {"additionalProperties": true, "title": "Hyperparameters", "type": "object"}, "min_participants": {"minimum": 1, "title": "Min Participants", "type": "integer"}, "round_deadline_hours": {"exclusiveMinimum": 0, "title": "Round Deadline Hours", "type": "number"}, "status": {"$ref": "#/components/schemas/RunStatus"}, "consent": {"$ref": "#/components/schemas/ConsentStatus"}}, "required": ["run_id", "recipe", "rounds", "epochs_per_round", "data_filter", "min_participants", "round_deadline_hours", "status", "consent"], "title": "TrainingInvitation", "type": "object"}, "TrainingInvitationList": {"properties": {"invitations": {"items": {"$ref": "#/components/schemas/TrainingInvitation"}, "title": "Invitations", "type": "array"}}, "required": ["invitations"], "title": "TrainingInvitationList", "type": "object"}, "TrainingRecipeRef": {"description": "A catalogue entry, as a node sees it. Exactly one of:\n\n- ``image``: a registry image pinned by digest, or\n- ``hub_images``: platform (e.g. ``linux/amd64``) -> image ID\n  (``sha256:\u2026``) of an image file the node fetches from the Hub\n  (``GET \u2026/node/runs/{run_id}/image?platform=\u2026``).\n\nEither way the node runs exactly the image the Hub vetted.", "properties": {"recipe_id": {"maxLength": 64, "minLength": 1, "title": "Recipe Id", "type": "string"}, "display_name": {"maxLength": 200, "title": "Display Name", "type": "string"}, "image": {"default": "", "maxLength": 512, "title": "Image", "type": "string"}, "hub_images": {"additionalProperties": {"type": "string"}, "title": "Hub Images", "type": "object"}, "data_type": {"$ref": "#/components/schemas/TrainingDataType"}, "needs_gpu": {"default": false, "title": "Needs Gpu", "type": "boolean"}}, "required": ["recipe_id", "display_name", "data_type"], "title": "TrainingRecipeRef", "type": "object"}, "ConsentDecision": {"properties": {"decision": {"enum": ["accept", "decline"], "title": "Decision", "type": "string"}, "reason": {"default": "", "maxLength": 255, "title": "Reason", "type": "string"}}, "required": ["decision"], "title": "ConsentDecision", "type": "object"}, "RoundState": {"description": "What a participating node should do now.", "enum": ["waiting", "open", "submitted", "finished"], "title": "RoundState", "type": "string"}, "RoundTask": {"description": "``GET \u2026/round``: where the run stands for the asking node.", "properties": {"run_id": {"title": "Run Id", "type": "string"}, "round": {"minimum": 0, "title": "Round", "type": "integer"}, "total_rounds": {"minimum": 1, "title": "Total Rounds", "type": "integer"}, "state": {"$ref": "#/components/schemas/RoundState"}, "run_status": {"$ref": "#/components/schemas/RunStatus"}, "epochs": {"minimum": 1, "title": "Epochs", "type": "integer"}, "hyperparameters": {"additionalProperties": true, "title": "Hyperparameters", "type": "object"}, "global_weights_sha256": {"default": "", "title": "Global Weights Sha256", "type": "string"}, "deadline": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Deadline"}, "excluded_origin_entity_ids": {"items": {"type": "string"}, "title": "Excluded Origin Entity Ids", "type": "array"}}, "required": ["run_id", "round", "total_rounds", "state", "run_status", "epochs"], "title": "RoundTask", "type": "object"}, "RoundUploadReceipt": {"properties": {"run_id": {"title": "Run Id", "type": "string"}, "round": {"title": "Round", "type": "integer"}, "accepted": {"title": "Accepted", "type": "boolean"}, "detail": {"default": "", "title": "Detail", "type": "string"}}, "required": ["run_id", "round", "accepted"], "title": "RoundUploadReceipt", "type": "object"}, "TrainingTokenOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "token": {"title": "Token", "type": "string"}}, "required": ["node_id", "token"], "title": "TrainingTokenOut", "type": "object"}, "TrainingTokenIn": {"properties": {"node_id": {"maxLength": 128, "title": "Node Id", "type": "string"}}, "required": ["node_id"], "title": "TrainingTokenIn", "type": "object"}, "TrainingTokenStatusOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "has_active_token": {"title": "Has Active Token", "type": "boolean"}, "token_created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Token Created At"}}, "required": ["node_id", "has_active_token"], "title": "TrainingTokenStatusOut", "type": "object"}, "PagedRecipeOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RecipeOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRecipeOut", "type": "object"}, "RecipeOut": {"properties": {"recipe_id": {"title": "Recipe Id", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "image_source": {"title": "Image Source", "type": "string"}, "image": {"title": "Image", "type": "string"}, "platforms": {"items": {"type": "string"}, "title": "Platforms", "type": "array"}, "data_type": {"title": "Data Type", "type": "string"}, "needs_gpu": {"title": "Needs Gpu", "type": "boolean"}, "default_hyperparameters": {"additionalProperties": true, "title": "Default Hyperparameters", "type": "object"}}, "required": ["recipe_id", "display_name", "description", "image_source", "image", "platforms", "data_type", "needs_gpu", "default_hyperparameters"], "title": "RecipeOut", "type": "object"}, "PagedTrainingNodeOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TrainingNodeOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTrainingNodeOut", "type": "object"}, "TrainingNodeOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "enabled": {"title": "Enabled", "type": "boolean"}, "gpu": {"title": "Gpu", "type": "boolean"}, "data_types": {"items": {"type": "string"}, "title": "Data Types", "type": "array"}, "last_seen_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Seen At"}, "image_sources": {"items": {"type": "string"}, "title": "Image Sources", "type": "array"}, "platforms": {"items": {"type": "string"}, "title": "Platforms", "type": "array"}, "reported_via": {"title": "Reported Via", "type": "string"}, "has_active_token": {"title": "Has Active Token", "type": "boolean"}}, "required": ["node_id", "display_name", "tier", "enabled", "gpu", "data_types", "last_seen_at", "image_sources", "platforms", "reported_via", "has_active_token"], "title": "TrainingNodeOut", "type": "object"}, "PagedRunSummaryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RunSummaryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRunSummaryOut", "type": "object"}, "RunSummaryOut": {"properties": {"run_id": {"title": "Run Id", "type": "string"}, "recipe_id": {"title": "Recipe Id", "type": "string"}, "recipe_name": {"title": "Recipe Name", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "status": {"title": "Status", "type": "string"}, "rounds": {"title": "Rounds", "type": "integer"}, "current_round": {"title": "Current Round", "type": "integer"}, "invited": {"title": "Invited", "type": "integer"}, "accepted": {"title": "Accepted", "type": "integer"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["run_id", "recipe_id", "recipe_name", "purpose", "status", "rounds", "current_round", "invited", "accepted", "created_at"], "title": "RunSummaryOut", "type": "object"}, "ParticipantOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "consent": {"title": "Consent", "type": "string"}, "consent_reason": {"title": "Consent Reason", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "last_error": {"title": "Last Error", "type": "string"}, "updates": {"items": {"$ref": "#/components/schemas/UpdateOut"}, "title": "Updates", "type": "array"}}, "required": ["node_id", "consent", "consent_reason", "decided_at", "last_error", "updates"], "title": "ParticipantOut", "type": "object"}, "RoundOut": {"properties": {"number": {"title": "Number", "type": "integer"}, "attempt": {"title": "Attempt", "type": "integer"}, "state": {"title": "State", "type": "string"}, "deadline": {"format": "date-time", "title": "Deadline", "type": "string"}, "contributors": {"items": {"type": "string"}, "title": "Contributors", "type": "array"}, "base_digest": {"title": "Base Digest", "type": "string"}, "committed_digest": {"title": "Committed Digest", "type": "string"}, "accepted_updates": {"title": "Accepted Updates", "type": "integer"}, "reason": {"title": "Reason", "type": "string"}, "jobs": {"items": {"$ref": "#/components/schemas/JobOut"}, "title": "Jobs", "type": "array"}}, "required": ["number", "attempt", "state", "deadline", "contributors", "base_digest", "committed_digest", "accepted_updates", "reason", "jobs"], "title": "RoundOut", "type": "object"}, "RunDetailOut": {"properties": {"run_id": {"title": "Run Id", "type": "string"}, "recipe_id": {"title": "Recipe Id", "type": "string"}, "recipe_name": {"title": "Recipe Name", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "status": {"title": "Status", "type": "string"}, "rounds": {"title": "Rounds", "type": "integer"}, "current_round": {"title": "Current Round", "type": "integer"}, "invited": {"title": "Invited", "type": "integer"}, "accepted": {"title": "Accepted", "type": "integer"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "epochs_per_round": {"title": "Epochs Per Round", "type": "integer"}, "min_participants": {"title": "Min Participants", "type": "integer"}, "round_deadline_hours": {"title": "Round Deadline Hours", "type": "number"}, "species": {"items": {"type": "string"}, "title": "Species", "type": "array"}, "hyperparameters": {"additionalProperties": true, "title": "Hyperparameters", "type": "object"}, "data_type": {"title": "Data Type", "type": "string"}, "image": {"title": "Image", "type": "string"}, "needs_gpu": {"title": "Needs Gpu", "type": "boolean"}, "failure_reason": {"title": "Failure Reason", "type": "string"}, "created_by": {"title": "Created By", "type": "string"}, "started_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Started At"}, "finished_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Finished At"}, "aggregator": {"title": "Aggregator", "type": "string"}, "result_access_tier": {"title": "Result Access Tier", "type": "string"}, "result_license_tag": {"title": "Result License Tag", "type": "string"}, "final_weights_sha256": {"title": "Final Weights Sha256", "type": "string"}, "result_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Result Id"}, "result_citable_id": {"title": "Result Citable Id", "type": "string"}, "participants": {"items": {"$ref": "#/components/schemas/ParticipantOut"}, "title": "Participants", "type": "array"}, "training_rounds": {"items": {"$ref": "#/components/schemas/RoundOut"}, "title": "Training Rounds", "type": "array"}}, "required": ["run_id", "recipe_id", "recipe_name", "purpose", "status", "rounds", "current_round", "invited", "accepted", "created_at", "epochs_per_round", "min_participants", "round_deadline_hours", "species", "hyperparameters", "data_type", "image", "needs_gpu", "failure_reason", "created_by", "started_at", "finished_at", "aggregator", "result_access_tier", "result_license_tag", "final_weights_sha256", "result_id", "result_citable_id", "participants", "training_rounds"], "title": "RunDetailOut", "type": "object"}, "UpdateOut": {"properties": {"round_number": {"title": "Round Number", "type": "integer"}, "num_examples": {"title": "Num Examples", "type": "integer"}, "metrics": {"additionalProperties": true, "title": "Metrics", "type": "object"}, "size_bytes": {"title": "Size Bytes", "type": "integer"}, "received_at": {"format": "date-time", "title": "Received At", "type": "string"}}, "required": ["round_number", "num_examples", "metrics", "size_bytes", "received_at"], "title": "UpdateOut", "type": "object"}, "RunIn": {"properties": {"recipe_id": {"maxLength": 64, "title": "Recipe Id", "type": "string"}, "node_ids": {"items": {"type": "string"}, "maxItems": 500, "title": "Node Ids", "type": "array"}, "rounds": {"title": "Rounds", "type": "integer"}, "epochs_per_round": {"title": "Epochs Per Round", "type": "integer"}, "min_participants": {"title": "Min Participants", "type": "integer"}, "round_deadline_hours": {"default": 24.0, "title": "Round Deadline Hours", "type": "number"}, "species": {"items": {"type": "string"}, "maxItems": 1000, "title": "Species", "type": "array"}, "hyperparameters": {"additionalProperties": true, "title": "Hyperparameters", "type": "object"}, "purpose": {"default": "", "maxLength": 2000, "title": "Purpose", "type": "string"}, "result_access_tier": {"default": "public", "title": "Result Access Tier", "type": "string"}, "result_license_tag": {"default": "cc_by", "title": "Result License Tag", "type": "string"}}, "required": ["recipe_id", "node_ids", "rounds", "epochs_per_round", "min_participants"], "title": "RunIn", "type": "object"}, "PagedRoleHoldersOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RoleHoldersOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRoleHoldersOut", "type": "object"}, "RoleHoldersOut": {"properties": {"role": {"title": "Role", "type": "string"}, "usernames": {"items": {"type": "string"}, "title": "Usernames", "type": "array"}}, "required": ["role", "usernames"], "title": "RoleHoldersOut", "type": "object"}, "PagedRuntimeImageOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RuntimeImageOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRuntimeImageOut", "type": "object"}, "RuntimeImageOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "accelerator": {"title": "Accelerator", "type": "string"}, "cuda_version": {"title": "Cuda Version", "type": "string"}, "libraries": {"items": {"type": "string"}, "title": "Libraries", "type": "array"}, "description": {"title": "Description", "type": "string"}, "state": {"title": "State", "type": "string"}, "platforms": {"items": {"type": "string"}, "title": "Platforms", "type": "array"}}, "required": ["id", "name", "version", "accelerator", "cuda_version", "libraries", "description", "state", "platforms"], "title": "RuntimeImageOut", "type": "object"}, "PagedRecipeVersionSummary": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RecipeVersionSummary"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRecipeVersionSummary", "type": "object"}, "RecipeVersionSummary": {"properties": {"id": {"title": "Id", "type": "integer"}, "recipe_id": {"title": "Recipe Id", "type": "string"}, "title": {"title": "Title", "type": "string"}, "version": {"title": "Version", "type": "string"}, "author": {"title": "Author", "type": "string"}, "state": {"title": "State", "type": "string"}, "accelerators": {"items": {"type": "string"}, "title": "Accelerators", "type": "array"}, "manifest_digest": {"title": "Manifest Digest", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "recipe_id", "title", "version", "author", "state", "accelerators", "manifest_digest", "updated_at"], "title": "RecipeVersionSummary", "type": "object"}, "RecipeIn": {"properties": {"recipe_id": {"maxLength": 64, "title": "Recipe Id", "type": "string"}, "title": {"maxLength": 200, "title": "Title", "type": "string"}, "description": {"default": "", "maxLength": 4000, "title": "Description", "type": "string"}, "version": {"default": "1.0.0", "maxLength": 64, "title": "Version", "type": "string"}}, "required": ["recipe_id", "title"], "title": "RecipeIn", "type": "object"}, "NewVersionIn": {"properties": {"version": {"maxLength": 64, "title": "Version", "type": "string"}, "copy_from": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Copy From"}}, "required": ["version"], "title": "NewVersionIn", "type": "object"}, "FileOut": {"properties": {"name": {"title": "Name", "type": "string"}, "size_bytes": {"title": "Size Bytes", "type": "integer"}, "sha256": {"title": "Sha256", "type": "string"}, "md5": {"title": "Md5", "type": "string"}, "role": {"default": "", "title": "Role", "type": "string"}}, "required": ["name", "size_bytes", "sha256", "md5"], "title": "FileOut", "type": "object"}, "RecipeVersionOut": {"properties": {"summary": {"$ref": "#/components/schemas/RecipeVersionSummary"}, "description": {"title": "Description", "type": "string"}, "state_version": {"title": "State Version", "type": "integer"}, "can_edit": {"title": "Can Edit", "type": "boolean"}, "can_review": {"title": "Can Review", "type": "boolean"}, "manifest_draft": {"additionalProperties": true, "title": "Manifest Draft", "type": "object"}, "runtime_images": {"additionalProperties": {"type": "integer"}, "title": "Runtime Images", "type": "object"}, "initial_checkpoint_digest": {"title": "Initial Checkpoint Digest", "type": "string"}, "tensor_schema": {"additionalProperties": true, "title": "Tensor Schema", "type": "object"}, "manifest": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Manifest"}, "bundle_digest": {"title": "Bundle Digest", "type": "string"}, "check_problems": {"items": {"type": "string"}, "title": "Check Problems", "type": "array"}, "reviewed_by": {"title": "Reviewed By", "type": "string"}, "review_comments": {"title": "Review Comments", "type": "string"}, "files": {"items": {"$ref": "#/components/schemas/FileOut"}, "title": "Files", "type": "array"}, "events": {"items": {"additionalProperties": true, "type": "object"}, "title": "Events", "type": "array"}}, "required": ["summary", "description", "state_version", "can_edit", "can_review", "manifest_draft", "runtime_images", "initial_checkpoint_digest", "tensor_schema", "manifest", "bundle_digest", "check_problems", "reviewed_by", "review_comments", "files", "events"], "title": "RecipeVersionOut", "type": "object"}, "DraftIn": {"properties": {"manifest_draft": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Manifest Draft"}, "runtime_images": {"anyOf": [{"additionalProperties": {"type": "integer"}, "type": "object"}, {"type": "null"}], "title": "Runtime Images"}}, "title": "DraftIn", "type": "object"}, "FileIn": {"properties": {"path": {"maxLength": 255, "title": "Path", "type": "string"}, "content": {"maxLength": 1048576, "title": "Content", "type": "string"}}, "required": ["path", "content"], "title": "FileIn", "type": "object"}, "CheckOut": {"properties": {"ok": {"title": "Ok", "type": "boolean"}, "problems": {"items": {"type": "string"}, "title": "Problems", "type": "array"}, "manifest": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Manifest"}, "manifest_digest": {"title": "Manifest Digest", "type": "string"}, "bundle_digest": {"title": "Bundle Digest", "type": "string"}}, "required": ["ok", "problems", "manifest", "manifest_digest", "bundle_digest"], "title": "CheckOut", "type": "object"}, "VersionedIn": {"properties": {"expected_version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Expected Version"}}, "title": "VersionedIn", "type": "object"}, "ReviewIn": {"properties": {"expected_version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Expected Version"}, "approve": {"title": "Approve", "type": "boolean"}, "comments": {"default": "", "maxLength": 4000, "title": "Comments", "type": "string"}}, "required": ["approve"], "title": "ReviewIn", "type": "object"}, "ReasonIn": {"properties": {"expected_version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Expected Version"}, "reason": {"default": "", "maxLength": 1000, "title": "Reason", "type": "string"}}, "title": "ReasonIn", "type": "object"}, "NodeChoiceOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "cpus": {"title": "Cpus", "type": "number"}, "memory_mb": {"title": "Memory Mb", "type": "integer"}, "gpus": {"items": {"additionalProperties": true, "type": "object"}, "title": "Gpus", "type": "array"}, "platforms": {"items": {"type": "string"}, "title": "Platforms", "type": "array"}, "last_seen_at": {"format": "date-time", "title": "Last Seen At", "type": "string"}}, "required": ["node_id", "cpus", "memory_mb", "gpus", "platforms", "last_seen_at"], "title": "NodeChoiceOut", "type": "object"}, "PagedNodeChoiceOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/NodeChoiceOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedNodeChoiceOut", "type": "object"}, "CampaignSummary": {"properties": {"id": {"title": "Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "owner": {"title": "Owner", "type": "string"}, "state": {"title": "State", "type": "string"}, "recipe": {"title": "Recipe", "type": "string"}, "resource_profile": {"title": "Resource Profile", "type": "string"}, "current_revision": {"title": "Current Revision", "type": "integer"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "title", "owner", "state", "recipe", "resource_profile", "current_revision", "updated_at"], "title": "CampaignSummary", "type": "object"}, "PagedCampaignSummary": {"properties": {"items": {"items": {"$ref": "#/components/schemas/CampaignSummary"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedCampaignSummary", "type": "object"}, "CampaignIn": {"properties": {"title": {"maxLength": 200, "title": "Title", "type": "string"}, "recipe_version_id": {"title": "Recipe Version Id", "type": "integer"}}, "required": ["title", "recipe_version_id"], "title": "CampaignIn", "type": "object"}, "CampaignOut": {"properties": {"summary": {"$ref": "#/components/schemas/CampaignSummary"}, "state_version": {"title": "State Version", "type": "integer"}, "can_manage": {"title": "Can Manage", "type": "boolean"}, "status_reason": {"title": "Status Reason", "type": "string"}, "paused_from": {"title": "Paused From", "type": "string"}, "draft": {"additionalProperties": true, "title": "Draft", "type": "object"}, "recipe_version_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Recipe Version Id"}, "profiles": {"additionalProperties": true, "title": "Profiles", "type": "object"}, "problems": {"items": {"type": "string"}, "title": "Problems", "type": "array"}, "revisions": {"items": {"$ref": "#/components/schemas/RevisionOut"}, "title": "Revisions", "type": "array"}, "participations": {"items": {"$ref": "#/components/schemas/ParticipationOut"}, "title": "Participations", "type": "array"}, "observers": {"items": {"type": "string"}, "title": "Observers", "type": "array"}, "rounds": {"items": {"$ref": "#/components/schemas/RoundOut"}, "title": "Rounds", "type": "array"}, "other_jobs": {"items": {"$ref": "#/components/schemas/JobOut"}, "title": "Other Jobs", "type": "array"}, "events": {"items": {"additionalProperties": true, "type": "object"}, "title": "Events", "type": "array"}}, "required": ["summary", "state_version", "can_manage", "status_reason", "paused_from", "draft", "recipe_version_id", "profiles", "problems", "revisions", "participations", "observers", "rounds", "other_jobs", "events"], "title": "CampaignOut", "type": "object"}, "JobOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "kind": {"title": "Kind", "type": "string"}, "attempt": {"title": "Attempt", "type": "integer"}, "state": {"title": "State", "type": "string"}, "split": {"title": "Split", "type": "string"}, "progress": {"additionalProperties": true, "title": "Progress", "type": "object"}, "training_examples": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Training Examples"}, "bytes_sent": {"title": "Bytes Sent", "type": "integer"}, "bytes_received": {"title": "Bytes Received", "type": "integer"}, "stats": {"additionalProperties": true, "title": "Stats", "type": "object"}, "error": {"title": "Error", "type": "string"}, "claimed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Claimed At"}, "finished_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Finished At"}}, "required": ["id", "node_id", "kind", "attempt", "state", "split", "progress", "training_examples", "bytes_sent", "bytes_received", "stats", "error", "claimed_at", "finished_at"], "title": "JobOut", "type": "object"}, "ParticipationOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "state": {"title": "State", "type": "string"}, "revision": {"title": "Revision", "type": "integer"}, "readiness": {"title": "Readiness", "type": "string"}, "readiness_reason": {"title": "Readiness Reason", "type": "string"}, "readiness_message": {"title": "Readiness Message", "type": "string"}, "counts": {"additionalProperties": true, "title": "Counts", "type": "object"}, "decision_reason": {"title": "Decision Reason", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Expires At"}, "incompatible_reason": {"title": "Incompatible Reason", "type": "string"}}, "required": ["node_id", "state", "revision", "readiness", "readiness_reason", "readiness_message", "counts", "decision_reason", "decided_at", "expires_at", "incompatible_reason"], "title": "ParticipationOut", "type": "object"}, "RevisionOut": {"properties": {"number": {"title": "Number", "type": "integer"}, "spec_digest": {"title": "Spec Digest", "type": "string"}, "spec": {"additionalProperties": true, "title": "Spec", "type": "object"}, "created_by": {"title": "Created By", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["number", "spec_digest", "spec", "created_by", "created_at"], "title": "RevisionOut", "type": "object"}, "CampaignDraftIn": {"properties": {"expected_version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Expected Version"}, "draft": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Draft"}, "recipe_version_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Recipe Version Id"}}, "title": "CampaignDraftIn", "type": "object"}, "ObserverIn": {"properties": {"username": {"maxLength": 150, "title": "Username", "type": "string"}}, "required": ["username"], "title": "ObserverIn", "type": "object"}, "PagedReleaseOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ReleaseOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedReleaseOut", "type": "object"}, "ReleaseOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "round_number": {"title": "Round Number", "type": "integer"}, "state": {"title": "State", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "requested_by": {"title": "Requested By", "type": "string"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "decided_by": {"title": "Decided By", "type": "string"}, "decision_note": {"title": "Decision Note", "type": "string"}, "citable_id": {"title": "Citable Id", "type": "string"}, "model_card": {"additionalProperties": true, "title": "Model Card", "type": "object"}}, "required": ["id", "round_number", "state", "access_tier", "license_tag", "requested_by", "requested_at", "decided_by", "decision_note", "citable_id", "model_card"], "title": "ReleaseOut", "type": "object"}, "ReleaseIn": {"properties": {"round_number": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Round Number"}, "intended_use": {"maxLength": 4000, "title": "Intended Use", "type": "string"}, "limitations": {"maxLength": 4000, "title": "Limitations", "type": "string"}, "access_tier": {"default": "public", "title": "Access Tier", "type": "string"}, "license_tag": {"default": "cc_by", "title": "License Tag", "type": "string"}}, "required": ["intended_use", "limitations"], "title": "ReleaseIn", "type": "object"}, "ReleaseDecisionIn": {"properties": {"approve": {"title": "Approve", "type": "boolean"}, "note": {"default": "", "maxLength": 2000, "title": "Note", "type": "string"}}, "required": ["approve"], "title": "ReleaseDecisionIn", "type": "object"}, "FixturePackageOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "fixture_id": {"title": "Fixture Id", "type": "string"}, "letter": {"title": "Letter", "type": "string"}, "node_id": {"title": "Node Id", "type": "string"}, "sha256": {"title": "Sha256", "type": "string"}, "size_bytes": {"title": "Size Bytes", "type": "integer"}, "counts": {"additionalProperties": true, "title": "Counts", "type": "object"}}, "required": ["id", "fixture_id", "letter", "node_id", "sha256", "size_bytes", "counts"], "title": "FixturePackageOut", "type": "object"}, "PagedFixturePackageOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/FixturePackageOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedFixturePackageOut", "type": "object"}, "AssignIn": {"properties": {"letter": {"maxLength": 4, "title": "Letter", "type": "string"}, "node_id": {"maxLength": 128, "title": "Node Id", "type": "string"}}, "required": ["letter", "node_id"], "title": "AssignIn", "type": "object"}, "FromTemplateIn": {"properties": {"resource_profile": {"default": "cpu-small", "maxLength": 64, "title": "Resource Profile", "type": "string"}}, "title": "FromTemplateIn", "type": "object"}, "ResetIn": {"properties": {"reason": {"default": "fixture reset", "maxLength": 500, "title": "Reason", "type": "string"}}, "title": "ResetIn", "type": "object"}, "CapabilityV2": {"additionalProperties": false, "description": "``PUT /capability``: what this node offers to federated learning.", "properties": {"enabled": {"title": "Enabled", "type": "boolean"}, "contract_versions": {"items": {"type": "string"}, "minItems": 1, "title": "Contract Versions", "type": "array"}, "platforms": {"items": {"type": "string"}, "title": "Platforms", "type": "array"}, "cpus": {"default": 0, "minimum": 0, "title": "Cpus", "type": "number"}, "memory_mb": {"default": 0, "minimum": 0, "title": "Memory Mb", "type": "integer"}, "gpus": {"items": {"$ref": "#/components/schemas/GpuDevice"}, "maxItems": 64, "title": "Gpus", "type": "array"}, "max_concurrent_jobs": {"default": 1, "maximum": 64, "minimum": 0, "title": "Max Concurrent Jobs", "type": "integer"}, "cached_digests": {"items": {"pattern": "^sha256:[0-9a-f]{64}$", "type": "string"}, "maxItems": 500, "title": "Cached Digests", "type": "array"}}, "required": ["enabled", "contract_versions"], "title": "CapabilityV2", "type": "object"}, "GpuDevice": {"additionalProperties": false, "properties": {"index": {"minimum": 0, "title": "Index", "type": "integer"}, "name": {"default": "", "maxLength": 128, "title": "Name", "type": "string"}, "memory_mb": {"minimum": 0, "title": "Memory Mb", "type": "integer"}}, "required": ["index", "memory_mb"], "title": "GpuDevice", "type": "object"}, "Accelerator": {"additionalProperties": false, "properties": {"kind": {"allOf": [{"$ref": "#/components/schemas/AcceleratorKind"}], "default": "cpu"}, "count": {"default": 0, "maximum": 16, "minimum": 0, "title": "Count", "type": "integer"}, "min_memory_mb": {"default": 0, "minimum": 0, "title": "Min Memory Mb", "type": "integer"}}, "title": "Accelerator", "type": "object"}, "AcceleratorKind": {"enum": ["cpu", "gpu"], "title": "AcceleratorKind", "type": "string"}, "AggregationSpec": {"additionalProperties": false, "properties": {"id": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Id", "type": "string"}, "update_type": {"$ref": "#/components/schemas/UpdateType"}, "weight": {"const": "training_examples", "default": "training_examples", "title": "Weight", "type": "string"}}, "required": ["id", "update_type"], "title": "AggregationSpec", "type": "object"}, "CampaignSpec": {"additionalProperties": false, "properties": {"schema_version": {"const": "2", "default": "2", "title": "Schema Version", "type": "string"}, "title": {"maxLength": 200, "minLength": 1, "title": "Title", "type": "string"}, "purpose": {"maxLength": 4000, "minLength": 1, "title": "Purpose", "type": "string"}, "recipe": {"$ref": "#/components/schemas/RecipePin"}, "model": {"$ref": "#/components/schemas/ModelPin"}, "data": {"$ref": "#/components/schemas/DataScope"}, "nodes": {"$ref": "#/components/schemas/NodeScope"}, "training": {"additionalProperties": true, "title": "Training", "type": "object"}, "rounds": {"$ref": "#/components/schemas/RoundPolicy"}, "aggregation": {"$ref": "#/components/schemas/AggregationSpec"}, "evaluation": {"$ref": "#/components/schemas/EvaluationSpec"}, "governance": {"$ref": "#/components/schemas/GovernanceSpec"}, "resource_profile": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Resource Profile", "type": "string"}, "invitation_valid_seconds": {"maximum": 2592000, "minimum": 60, "title": "Invitation Valid Seconds", "type": "integer"}, "seed": {"maximum": 2147483647, "minimum": 0, "title": "Seed", "type": "integer"}}, "required": ["title", "purpose", "recipe", "model", "data", "nodes", "rounds", "aggregation", "evaluation", "governance", "resource_profile", "invitation_valid_seconds", "seed"], "title": "CampaignSpec", "type": "object"}, "DataContract": {"additionalProperties": false, "properties": {"record_kind": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Record Kind", "type": "string"}, "schema_version": {"maxLength": 16, "minLength": 1, "title": "Schema Version", "type": "string"}, "label_ontology": {"default": "", "maxLength": 128, "title": "Label Ontology", "type": "string"}, "required_fields": {"items": {"type": "string"}, "maxItems": 50, "title": "Required Fields", "type": "array"}, "alphabet": {"default": "", "maxLength": 64, "title": "Alphabet", "type": "string"}, "length": {"additionalProperties": {"type": "integer"}, "propertyNames": {"enum": ["min", "max"]}, "title": "Length", "type": "object"}}, "required": ["record_kind", "schema_version"], "title": "DataContract", "type": "object"}, "DataScope": {"additionalProperties": false, "properties": {"data_contract_version": {"maxLength": 16, "minLength": 1, "title": "Data Contract Version", "type": "string"}, "label_map": {"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "title": "Label Map", "type": "array"}, "split_spec": {"$ref": "#/components/schemas/SplitSpec"}, "selector": {"additionalProperties": true, "title": "Selector", "type": "object"}}, "required": ["data_contract_version", "label_map", "split_spec"], "title": "DataScope", "type": "object"}, "Direction": {"enum": ["max", "min"], "title": "Direction", "type": "string"}, "EvaluationContract": {"additionalProperties": false, "properties": {"statistics": {"items": {"type": "string"}, "minItems": 1, "title": "Statistics", "type": "array"}, "primary_metric": {"enum": ["accuracy", "macro_f1", "loss"], "title": "Primary Metric", "type": "string"}, "direction": {"$ref": "#/components/schemas/Direction"}}, "required": ["statistics", "primary_metric", "direction"], "title": "EvaluationContract", "type": "object"}, "EvaluationSpec": {"additionalProperties": false, "properties": {"primary_metric": {"enum": ["accuracy", "macro_f1", "loss"], "title": "Primary Metric", "type": "string"}, "direction": {"$ref": "#/components/schemas/Direction"}, "tie_break": {"const": "earlier_round", "default": "earlier_round", "title": "Tie Break", "type": "string"}, "local_baseline_epochs": {"default": 0, "maximum": 1000, "minimum": 0, "title": "Local Baseline Epochs", "type": "integer"}, "final_test": {"const": "once_at_completion", "default": "once_at_completion", "title": "Final Test", "type": "string"}}, "required": ["primary_metric", "direction"], "title": "EvaluationSpec", "type": "object"}, "ExchangeContract": {"additionalProperties": false, "properties": {"update_type": {"items": {"$ref": "#/components/schemas/UpdateType"}, "minItems": 1, "title": "Update Type", "type": "array"}, "format": {"const": "npz", "default": "npz", "title": "Format", "type": "string"}, "max_update_bytes": {"minimum": 1, "title": "Max Update Bytes", "type": "integer"}, "max_update_l2_norm": {"exclusiveMinimum": 0, "title": "Max Update L2 Norm", "type": "number"}, "aggregator": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Aggregator", "type": "string"}}, "required": ["update_type", "max_update_bytes", "max_update_l2_norm", "aggregator"], "title": "ExchangeContract", "type": "object"}, "Execution": {"additionalProperties": false, "description": "How a recipe runs. ``runtime_images`` holds one image per accelerator\nthe recipe supports (CPU, GPU or both); each resource profile runs on the\nimage for its accelerator, so the person setting up a campaign chooses\nCPU or GPU by choosing the profile.", "properties": {"runtime_images": {"additionalProperties": {"$ref": "#/components/schemas/RuntimeImageRef"}, "minProperties": 1, "propertyNames": {"$ref": "#/components/schemas/AcceleratorKind"}, "title": "Runtime Images", "type": "object"}, "code_bundle_digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Code Bundle Digest", "type": "string"}, "contract_version": {"const": "2", "default": "2", "title": "Contract Version", "type": "string"}, "steps": {"items": {"$ref": "#/components/schemas/Step"}, "minItems": 1, "title": "Steps", "type": "array"}, "resource_profiles": {"minProperties": 1, "patternProperties": {"^[a-z0-9][a-z0-9_.-]{0,63}$": {"$ref": "#/components/schemas/ResourceProfile"}}, "title": "Resource Profiles", "type": "object"}}, "required": ["runtime_images", "code_bundle_digest", "steps", "resource_profiles"], "title": "Execution", "type": "object"}, "Governance": {"additionalProperties": false, "properties": {"privacy_profiles": {"items": {"$ref": "#/components/schemas/PrivacyProfile"}, "minItems": 1, "title": "Privacy Profiles", "type": "array"}, "licence_constraints": {"items": {"type": "string"}, "title": "Licence Constraints", "type": "array"}, "release_audiences": {"items": {"$ref": "#/components/schemas/ModelAudience"}, "minItems": 1, "title": "Release Audiences", "type": "array"}}, "required": ["privacy_profiles", "release_audiences"], "title": "Governance", "type": "object"}, "GovernanceSpec": {"additionalProperties": false, "properties": {"privacy_profile": {"$ref": "#/components/schemas/PrivacyProfile"}, "model_audience": {"$ref": "#/components/schemas/ModelAudience"}, "retention_policy_id": {"maxLength": 64, "minLength": 1, "title": "Retention Policy Id", "type": "string"}}, "required": ["privacy_profile", "model_audience", "retention_policy_id"], "title": "GovernanceSpec", "type": "object"}, "InvitationListV2": {"additionalProperties": false, "properties": {"invitations": {"items": {"$ref": "#/components/schemas/InvitationV2"}, "title": "Invitations", "type": "array"}}, "required": ["invitations"], "title": "InvitationListV2", "type": "object"}, "InvitationV2": {"additionalProperties": false, "properties": {"invitation_id": {"maxLength": 64, "minLength": 1, "title": "Invitation Id", "type": "string"}, "campaign_id": {"maxLength": 64, "minLength": 1, "title": "Campaign Id", "type": "string"}, "revision": {"minimum": 1, "title": "Revision", "type": "integer"}, "spec": {"$ref": "#/components/schemas/CampaignSpec"}, "spec_digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Spec Digest", "type": "string"}, "manifest": {"$ref": "#/components/schemas/RecipeManifest"}, "state": {"$ref": "#/components/schemas/ParticipationState"}, "expires_at": {"format": "date-time", "title": "Expires At", "type": "string"}, "incompatible_reason": {"default": "", "maxLength": 500, "title": "Incompatible Reason", "type": "string"}, "owner": {"default": "", "maxLength": 150, "title": "Owner", "type": "string"}}, "required": ["invitation_id", "campaign_id", "revision", "spec", "spec_digest", "manifest", "state", "expires_at"], "title": "InvitationV2", "type": "object"}, "ModelAudience": {"enum": ["campaign_participants", "public"], "title": "ModelAudience", "type": "string"}, "ModelContract": {"additionalProperties": false, "properties": {"architecture": {"maxLength": 128, "minLength": 1, "title": "Architecture", "type": "string"}, "initial_checkpoint_digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Initial Checkpoint Digest", "type": "string"}, "tensors": {"additionalProperties": {"$ref": "#/components/schemas/TensorSpec"}, "minProperties": 1, "title": "Tensors", "type": "object"}, "buffers": {"additionalProperties": {"$ref": "#/components/schemas/TensorSpec"}, "title": "Buffers", "type": "object"}}, "required": ["architecture", "initial_checkpoint_digest", "tensors"], "title": "ModelContract", "type": "object"}, "ModelPin": {"additionalProperties": false, "properties": {"initial_digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Initial Digest", "type": "string"}}, "required": ["initial_digest"], "title": "ModelPin", "type": "object"}, "NodeScope": {"additionalProperties": false, "properties": {"invited": {"items": {"type": "string"}, "maxItems": 500, "minItems": 1, "title": "Invited", "type": "array"}}, "required": ["invited"], "title": "NodeScope", "type": "object"}, "ParameterSpec": {"additionalProperties": false, "properties": {"type": {"enum": ["int", "float", "bool", "str"], "title": "Type", "type": "string"}, "min": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min"}, "max": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max"}, "choices": {"anyOf": [{"items": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "number"}]}, "type": "array"}, {"type": "null"}], "title": "Choices"}}, "required": ["type"], "title": "ParameterSpec", "type": "object"}, "ParticipationState": {"enum": ["pending", "accepted", "declined", "needs_changes", "temporarily_unavailable", "withdrawn", "expired"], "title": "ParticipationState", "type": "string"}, "PrivacyProfile": {"enum": ["P0", "P1", "P2"], "title": "PrivacyProfile", "type": "string"}, "RecipeManifest": {"additionalProperties": false, "properties": {"manifest_version": {"const": "2", "default": "2", "title": "Manifest Version", "type": "string"}, "recipe_id": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Recipe Id", "type": "string"}, "version": {"pattern": "^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z.-]+)?$", "title": "Version", "type": "string"}, "publisher": {"maxLength": 200, "minLength": 1, "title": "Publisher", "type": "string"}, "description": {"default": "", "maxLength": 2000, "title": "Description", "type": "string"}, "execution": {"$ref": "#/components/schemas/Execution"}, "data_contract": {"$ref": "#/components/schemas/DataContract"}, "model_contract": {"$ref": "#/components/schemas/ModelContract"}, "training_contract": {"$ref": "#/components/schemas/TrainingContract"}, "exchange_contract": {"$ref": "#/components/schemas/ExchangeContract"}, "evaluation_contract": {"$ref": "#/components/schemas/EvaluationContract"}, "governance": {"$ref": "#/components/schemas/Governance"}}, "required": ["recipe_id", "version", "publisher", "execution", "data_contract", "model_contract", "training_contract", "exchange_contract", "evaluation_contract", "governance"], "title": "RecipeManifest", "type": "object"}, "RecipePin": {"additionalProperties": false, "properties": {"id": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Id", "type": "string"}, "version": {"pattern": "^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z.-]+)?$", "title": "Version", "type": "string"}, "manifest_digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Manifest Digest", "type": "string"}}, "required": ["id", "version", "manifest_digest"], "title": "RecipePin", "type": "object"}, "ResourceProfile": {"additionalProperties": false, "properties": {"cpus": {"exclusiveMinimum": 0, "maximum": 256, "title": "Cpus", "type": "number"}, "memory_mb": {"minimum": 64, "title": "Memory Mb", "type": "integer"}, "workspace_mb": {"minimum": 1, "title": "Workspace Mb", "type": "integer"}, "max_seconds_per_step": {"maximum": 604800, "minimum": 1, "title": "Max Seconds Per Step", "type": "integer"}, "accelerator": {"allOf": [{"$ref": "#/components/schemas/Accelerator"}]}}, "required": ["cpus", "memory_mb", "workspace_mb", "max_seconds_per_step"], "title": "ResourceProfile", "type": "object"}, "RoundPolicy": {"additionalProperties": false, "properties": {"maximum": {"maximum": 1000, "minimum": 1, "title": "Maximum", "type": "integer"}, "minimum_contributors": {"minimum": 1, "title": "Minimum Contributors", "type": "integer"}, "minimum_evaluations": {"minimum": 1, "title": "Minimum Evaluations", "type": "integer"}, "deadline_seconds": {"maximum": 604800, "minimum": 60, "title": "Deadline Seconds", "type": "integer"}, "max_retries_per_round": {"default": 2, "maximum": 20, "minimum": 0, "title": "Max Retries Per Round", "type": "integer"}}, "required": ["maximum", "minimum_contributors", "minimum_evaluations", "deadline_seconds"], "title": "RoundPolicy", "type": "object"}, "RuntimeImageRef": {"additionalProperties": false, "properties": {"name": {"pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$", "title": "Name", "type": "string"}, "version": {"maxLength": 64, "minLength": 1, "title": "Version", "type": "string"}, "accelerator": {"allOf": [{"$ref": "#/components/schemas/AcceleratorKind"}], "default": "cpu"}, "digests": {"additionalProperties": {"pattern": "^sha256:[0-9a-f]{64}$", "type": "string"}, "minProperties": 1, "title": "Digests", "type": "object"}}, "required": ["name", "version", "digests"], "title": "RuntimeImageRef", "type": "object"}, "SplitSpec": {"additionalProperties": false, "properties": {"method": {"enum": ["by_source_accession", "by_record", "fixed"], "title": "Method", "type": "string"}}, "required": ["method"], "title": "SplitSpec", "type": "object"}, "Step": {"enum": ["inspect", "prepare", "train", "evaluate"], "title": "Step", "type": "string"}, "TensorSpec": {"additionalProperties": false, "properties": {"shape": {"items": {"type": "integer"}, "maxItems": 16, "title": "Shape", "type": "array"}, "dtype": {"enum": ["float16", "float32", "float64"], "title": "Dtype", "type": "string"}}, "required": ["shape", "dtype"], "title": "TensorSpec", "type": "object"}, "TrainingContract": {"additionalProperties": false, "properties": {"loss": {"maxLength": 64, "minLength": 1, "title": "Loss", "type": "string"}, "optimizer": {"maxLength": 64, "minLength": 1, "title": "Optimizer", "type": "string"}, "optimizer_state": {"default": "reset_each_round", "enum": ["reset_each_round", "kept_locally"], "title": "Optimizer State", "type": "string"}, "parameters": {"additionalProperties": {"$ref": "#/components/schemas/ParameterSpec"}, "title": "Parameters", "type": "object"}}, "required": ["loss", "optimizer"], "title": "TrainingContract", "type": "object"}, "UpdateType": {"enum": ["full", "delta"], "title": "UpdateType", "type": "string"}, "DecisionV2": {"additionalProperties": false, "properties": {"decision": {"enum": ["accept", "decline", "needs_changes", "temporarily_unavailable", "withdraw"], "title": "Decision", "type": "string"}, "spec_digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Spec Digest", "type": "string"}, "readiness": {"$ref": "#/components/schemas/ReadinessReport"}, "reason": {"default": "", "maxLength": 1000, "title": "Reason", "type": "string"}}, "required": ["decision", "spec_digest", "readiness"], "title": "DecisionV2", "type": "object"}, "ErrorCode": {"enum": ["UNAUTHORIZED", "POLICY_DENIED", "INCOMPATIBLE_RECIPE", "INCOMPATIBLE_CONTRACT", "DATA_INELIGIBLE", "RESOURCE_LIMIT", "LEASE_EXPIRED", "STALE_BASE", "INVALID_UPDATE", "QUORUM_NOT_MET", "TRANSFER_FAILED", "RECIPE_FAILED", "RECIPE_UNAVAILABLE", "CONFLICT"], "title": "ErrorCode", "type": "string"}, "Readiness": {"enum": ["ready", "not_ready", "unknown"], "title": "Readiness", "type": "string"}, "ReadinessReport": {"additionalProperties": false, "properties": {"status": {"$ref": "#/components/schemas/Readiness"}, "reason": {"anyOf": [{"$ref": "#/components/schemas/ErrorCode"}, {"type": "null"}]}, "message": {"default": "", "maxLength": 1000, "title": "Message", "type": "string"}, "counts": {"additionalProperties": {"additionalProperties": {"type": "integer"}, "type": "object"}, "propertyNames": {"$ref": "#/components/schemas/Split"}, "title": "Counts", "type": "object"}}, "required": ["status"], "title": "ReadinessReport", "type": "object"}, "Split": {"enum": ["train", "validation", "test"], "title": "Split", "type": "string"}, "LeaseRenewal": {"additionalProperties": false, "properties": {"lease_token": {"maxLength": 128, "minLength": 1, "title": "Lease Token", "type": "string"}}, "required": ["lease_token"], "title": "LeaseRenewal", "type": "object"}, "JobEvent": {"additionalProperties": false, "properties": {"lease_token": {"maxLength": 128, "minLength": 1, "title": "Lease Token", "type": "string"}, "state": {"$ref": "#/components/schemas/JobState"}, "percent": {"default": 0, "maximum": 100, "minimum": 0, "title": "Percent", "type": "number"}, "message": {"default": "", "maxLength": 500, "title": "Message", "type": "string"}}, "required": ["lease_token", "state"], "title": "JobEvent", "type": "object"}, "JobState": {"enum": ["queued", "leased", "validating", "preparing", "training", "evaluating", "uploading", "succeeded", "rejected", "cancelled", "expired", "failed"], "title": "JobState", "type": "string"}, "CommunicationStats": {"additionalProperties": false, "properties": {"bytes_sent": {"default": 0, "minimum": 0, "title": "Bytes Sent", "type": "integer"}, "bytes_received": {"default": 0, "minimum": 0, "title": "Bytes Received", "type": "integer"}, "messages": {"default": 0, "minimum": 0, "title": "Messages", "type": "integer"}, "retries": {"default": 0, "minimum": 0, "title": "Retries", "type": "integer"}, "step_seconds": {"additionalProperties": {"type": "number"}, "propertyNames": {"$ref": "#/components/schemas/Step"}, "title": "Step Seconds", "type": "object"}, "waiting_seconds": {"default": 0, "minimum": 0, "title": "Waiting Seconds", "type": "number"}}, "title": "CommunicationStats", "type": "object"}, "ErrorBody": {"additionalProperties": false, "properties": {"code": {"$ref": "#/components/schemas/ErrorCode"}, "message": {"maxLength": 2000, "title": "Message", "type": "string"}, "retryable": {"title": "Retryable", "type": "boolean"}, "correlation_id": {"default": "", "maxLength": 64, "title": "Correlation Id", "type": "string"}}, "required": ["code", "message", "retryable"], "title": "ErrorBody", "type": "object"}, "EvaluationPayload": {"additionalProperties": false, "description": "``evaluation.json`` (section 9.1). Rows are true labels, columns predictions.", "properties": {"split": {"$ref": "#/components/schemas/Split"}, "round": {"minimum": 0, "title": "Round", "type": "integer"}, "checkpoint_digest": {"anyOf": [{"pattern": "^sha256:[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "title": "Checkpoint Digest"}, "examples": {"minimum": 0, "title": "Examples", "type": "integer"}, "correct": {"minimum": 0, "title": "Correct", "type": "integer"}, "loss_sum": {"minimum": 0, "title": "Loss Sum", "type": "number"}, "confusion_matrix": {"items": {"items": {"type": "integer"}, "type": "array"}, "title": "Confusion Matrix", "type": "array"}, "label_order": {"items": {"type": "string"}, "minItems": 1, "title": "Label Order", "type": "array"}}, "required": ["split", "round", "examples", "correct", "loss_sum", "confusion_matrix", "label_order"], "title": "EvaluationPayload", "type": "object"}, "JobCompletion": {"additionalProperties": false, "description": "``POST /jobs/{id}/complete``. Idempotent: the same content returns the\noriginal receipt; different content for the same job is a conflict.", "properties": {"lease_token": {"maxLength": 128, "minLength": 1, "title": "Lease Token", "type": "string"}, "outcome": {"enum": ["succeeded", "failed", "rejected", "cancelled"], "title": "Outcome", "type": "string"}, "artifact_ids": {"items": {"type": "string"}, "maxItems": 20, "title": "Artifact Ids", "type": "array"}, "train": {"anyOf": [{"$ref": "#/components/schemas/TrainOutput"}, {"type": "null"}]}, "evaluation": {"anyOf": [{"$ref": "#/components/schemas/EvaluationPayload"}, {"type": "null"}]}, "readiness": {"anyOf": [{"$ref": "#/components/schemas/ReadinessReport"}, {"type": "null"}]}, "error": {"anyOf": [{"$ref": "#/components/schemas/ErrorBody"}, {"type": "null"}]}, "stats": {"allOf": [{"$ref": "#/components/schemas/CommunicationStats"}]}}, "required": ["lease_token", "outcome"], "title": "JobCompletion", "type": "object"}, "TrainOutput": {"additionalProperties": false, "description": "``train.json``.", "properties": {"training_examples": {"minimum": 1, "title": "Training Examples", "type": "integer"}, "local_steps_completed": {"minimum": 0, "title": "Local Steps Completed", "type": "integer"}, "epochs": {"minimum": 0, "title": "Epochs", "type": "integer"}, "loss": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Loss"}}, "required": ["training_examples", "local_steps_completed", "epochs"], "title": "TrainOutput", "type": "object"}, "UploadIntent": {"additionalProperties": false, "properties": {"job_id": {"maxLength": 64, "minLength": 1, "title": "Job Id", "type": "string"}, "lease_token": {"maxLength": 128, "minLength": 1, "title": "Lease Token", "type": "string"}, "kind": {"enum": ["update", "evaluation", "log"], "title": "Kind", "type": "string"}, "size": {"minimum": 1, "title": "Size", "type": "integer"}, "digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Digest", "type": "string"}}, "required": ["job_id", "lease_token", "kind", "size", "digest"], "title": "UploadIntent", "type": "object"}, "UploadFinalize": {"additionalProperties": false, "properties": {"lease_token": {"maxLength": 128, "minLength": 1, "title": "Lease Token", "type": "string"}, "digest": {"pattern": "^sha256:[0-9a-f]{64}$", "title": "Digest", "type": "string"}, "update_type": {"anyOf": [{"$ref": "#/components/schemas/UpdateType"}, {"type": "null"}]}, "base_model_digest": {"anyOf": [{"pattern": "^sha256:[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "title": "Base Model Digest"}, "training_examples": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "title": "Training Examples"}}, "required": ["lease_token", "digest"], "title": "UploadFinalize", "type": "object"}, "EarlierWordingOut": {"properties": {"changed_at": {"format": "date-time", "title": "Changed At", "type": "string"}, "field": {"title": "Field", "type": "string"}, "old_value": {"title": "Old Value", "type": "string"}}, "required": ["changed_at", "field", "old_value"], "title": "EarlierWordingOut", "type": "object"}, "FeedItemOut": {"properties": {"id": {"title": "Id", "type": "string"}, "source": {"title": "Source", "type": "string"}, "kind": {"title": "Kind", "type": "string"}, "title": {"title": "Title", "type": "string"}, "summary": {"title": "Summary", "type": "string"}, "body": {"title": "Body", "type": "string"}, "published_at": {"format": "date-time", "title": "Published At", "type": "string"}, "pinned": {"title": "Pinned", "type": "boolean"}, "applies_from_version": {"title": "Applies From Version", "type": "string"}, "is_security_update": {"title": "Is Security Update", "type": "boolean"}, "link": {"title": "Link", "type": "string"}, "edited_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Edited At"}, "earlier_wording": {"items": {"$ref": "#/components/schemas/EarlierWordingOut"}, "title": "Earlier Wording", "type": "array"}}, "required": ["id", "source", "kind", "title", "summary", "body", "published_at", "pinned", "applies_from_version", "is_security_update", "link", "edited_at", "earlier_wording"], "title": "FeedItemOut", "type": "object"}, "PagedFeedItemOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/FeedItemOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedFeedItemOut", "type": "object"}, "ResearchAreaOut": {"properties": {"slug": {"title": "Slug", "type": "string"}, "name": {"title": "Name", "type": "string"}}, "required": ["slug", "name"], "title": "ResearchAreaOut", "type": "object"}, "PublicProfileOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "institution": {"title": "Institution", "type": "string"}, "city": {"title": "City", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "description": {"title": "Description", "type": "string"}, "website": {"title": "Website", "type": "string"}, "research_areas": {"items": {"$ref": "#/components/schemas/ResearchAreaOut"}, "title": "Research Areas", "type": "array"}, "accepts_messages": {"title": "Accepts Messages", "type": "boolean"}}, "required": ["node_id", "institution", "city", "latitude", "longitude", "description", "website", "research_areas", "accepts_messages"], "title": "PublicProfileOut", "type": "object"}, "WebServiceOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "node_name": {"title": "Node Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "url": {"title": "Url", "type": "string"}, "research_areas": {"items": {"$ref": "#/components/schemas/ResearchAreaOut"}, "title": "Research Areas", "type": "array"}, "citation": {"title": "Citation", "type": "string"}, "terms_url": {"title": "Terms Url", "type": "string"}, "runs_30_days": {"default": 0, "title": "Runs 30 Days", "type": "integer"}, "countries_30_days": {"default": 0, "title": "Countries 30 Days", "type": "integer"}}, "required": ["id", "node_id", "node_name", "country", "name", "description", "url", "research_areas", "citation", "terms_url"], "title": "WebServiceOut", "type": "object"}, "EditableWebServiceOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "node_name": {"title": "Node Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "url": {"title": "Url", "type": "string"}, "research_areas": {"items": {"$ref": "#/components/schemas/ResearchAreaOut"}, "title": "Research Areas", "type": "array"}, "citation": {"title": "Citation", "type": "string"}, "terms_url": {"title": "Terms Url", "type": "string"}, "runs_30_days": {"default": 0, "title": "Runs 30 Days", "type": "integer"}, "countries_30_days": {"default": 0, "title": "Countries 30 Days", "type": "integer"}, "status": {"title": "Status", "type": "string"}, "status_label": {"title": "Status Label", "type": "string"}, "decision_reason": {"title": "Decision Reason", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean"}, "hidden_by_admin": {"title": "Hidden By Admin", "type": "boolean"}, "hidden_reason": {"title": "Hidden Reason", "type": "string"}, "listed": {"title": "Listed", "type": "boolean"}, "proposed_by": {"title": "Proposed By", "type": "string"}, "updated_at": {"format": "date-time", "title": "Updated At", "type": "string"}}, "required": ["id", "node_id", "node_name", "country", "name", "description", "url", "research_areas", "citation", "terms_url", "status", "status_label", "decision_reason", "is_active", "hidden_by_admin", "hidden_reason", "listed", "proposed_by", "updated_at"], "title": "EditableWebServiceOut", "type": "object"}, "WebServiceDecisionIn": {"properties": {"approve": {"title": "Approve", "type": "boolean"}, "reason": {"default": "", "maxLength": 2000, "title": "Reason", "type": "string"}}, "required": ["approve"], "title": "WebServiceDecisionIn", "type": "object"}, "VisibilityIn": {"properties": {"hidden": {"title": "Hidden", "type": "boolean"}, "reason": {"default": "", "maxLength": 2000, "title": "Reason", "type": "string"}}, "required": ["hidden"], "title": "VisibilityIn", "type": "object"}, "WebServiceIn": {"properties": {"name": {"maxLength": 200, "title": "Name", "type": "string"}, "description": {"maxLength": 2000, "title": "Description", "type": "string"}, "url": {"maxLength": 300, "title": "Url", "type": "string"}, "research_areas": {"items": {"type": "string"}, "maxItems": 40, "title": "Research Areas", "type": "array"}, "citation": {"default": "", "maxLength": 2000, "title": "Citation", "type": "string"}, "terms_url": {"default": "", "maxLength": 300, "title": "Terms Url", "type": "string"}, "is_active": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Active"}}, "required": ["name", "description", "url"], "title": "WebServiceIn", "type": "object"}, "EditableProfileOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "institution": {"title": "Institution", "type": "string"}, "city": {"title": "City", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "description": {"title": "Description", "type": "string"}, "website": {"title": "Website", "type": "string"}, "research_areas": {"items": {"$ref": "#/components/schemas/ResearchAreaOut"}, "title": "Research Areas", "type": "array"}, "accepts_messages": {"title": "Accepts Messages", "type": "boolean"}, "tier": {"title": "Tier", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "published": {"title": "Published", "type": "boolean"}, "hidden_by_admin": {"title": "Hidden By Admin", "type": "boolean"}, "hidden_reason": {"title": "Hidden Reason", "type": "string"}, "has_delivery_address": {"title": "Has Delivery Address", "type": "boolean"}, "updated_by": {"title": "Updated By", "type": "string"}, "updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Updated At"}}, "required": ["node_id", "institution", "city", "latitude", "longitude", "description", "website", "research_areas", "accepts_messages", "tier", "display_name", "country", "published", "hidden_by_admin", "hidden_reason", "has_delivery_address", "updated_by", "updated_at"], "title": "EditableProfileOut", "type": "object"}, "EnquiryOut": {"properties": {"status": {"title": "Status", "type": "string"}}, "required": ["status"], "title": "EnquiryOut", "type": "object"}, "EnquiryIn": {"properties": {"name": {"maxLength": 200, "title": "Name", "type": "string"}, "email": {"maxLength": 254, "title": "Email", "type": "string"}, "institution": {"default": "", "maxLength": 255, "title": "Institution", "type": "string"}, "message": {"maxLength": 5000, "title": "Message", "type": "string"}, "captcha_token": {"default": "", "title": "Captcha Token", "type": "string"}}, "required": ["name", "email", "message"], "title": "EnquiryIn", "type": "object"}, "PublicContributorOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "affiliation": {"title": "Affiliation", "type": "string"}, "country": {"title": "Country", "type": "string"}}, "required": ["id", "name", "orcid", "affiliation", "country"], "title": "PublicContributorOut", "type": "object"}, "CreditedRecordOut": {"properties": {"citable_id": {"title": "Citable Id", "type": "string"}, "entity_type": {"title": "Entity Type", "type": "string"}, "title": {"title": "Title", "type": "string"}}, "required": ["citable_id", "entity_type", "title"], "title": "CreditedRecordOut", "type": "object"}, "PublicContributorDetailOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "orcid": {"title": "Orcid", "type": "string"}, "affiliation": {"title": "Affiliation", "type": "string"}, "country": {"title": "Country", "type": "string"}, "records": {"items": {"$ref": "#/components/schemas/CreditedRecordOut"}, "title": "Records", "type": "array"}}, "required": ["id", "name", "orcid", "affiliation", "country", "records"], "title": "PublicContributorDetailOut", "type": "object"}, "MembershipOut": {"description": "A contributor membership at a node (phase 2).", "properties": {"id": {"title": "Id", "type": "integer"}, "node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "data_description": {"title": "Data Description", "type": "string"}, "status": {"title": "Status", "type": "string"}, "status_label": {"title": "Status Label", "type": "string"}, "decision_note": {"title": "Decision Note", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "username": {"default": "", "title": "Username", "type": "string"}, "email": {"default": "", "title": "Email", "type": "string"}, "full_name": {"default": "", "title": "Full Name", "type": "string"}, "affiliation": {"default": "", "title": "Affiliation", "type": "string"}, "country": {"default": "", "title": "Country", "type": "string"}, "orcid": {"default": "", "title": "Orcid", "type": "string"}}, "required": ["id", "node_id", "tier", "data_description", "status", "status_label", "decision_note", "created_at", "decided_at"], "title": "MembershipOut", "type": "object"}, "RecordRef": {"properties": {"entity_type": {"title": "Entity Type", "type": "string"}, "record_id": {"title": "Record Id", "type": "integer"}, "citable_id": {"title": "Citable Id", "type": "string"}}, "required": ["entity_type", "record_id", "citable_id"], "title": "RecordRef", "type": "object"}, "SubmissionRowOut": {"properties": {"kind": {"title": "Kind", "type": "string"}, "submission_id": {"title": "Submission Id", "type": "integer"}, "title": {"title": "Title", "type": "string"}, "label": {"title": "Label", "type": "string"}, "status": {"title": "Status", "type": "string"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "records": {"items": {"$ref": "#/components/schemas/RecordRef"}, "title": "Records", "type": "array"}}, "required": ["kind", "submission_id", "title", "label", "status", "rejection_reason", "submitted_at", "records"], "title": "SubmissionRowOut", "type": "object"}, "DecideIn": {"properties": {"decision": {"title": "Decision", "type": "string"}, "note": {"default": "", "maxLength": 2000, "title": "Note", "type": "string"}}, "required": ["decision"], "title": "DecideIn", "type": "object"}, "AcceptingNodeOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "display_name": {"title": "Display Name", "type": "string"}, "country": {"title": "Country", "type": "string"}, "note": {"title": "Note", "type": "string"}, "institution": {"title": "Institution", "type": "string"}, "city": {"title": "City", "type": "string"}}, "required": ["node_id", "tier", "display_name", "country", "note", "institution", "city"], "title": "AcceptingNodeOut", "type": "object"}, "NodeApplyIn": {"properties": {"first_name": {"default": "", "maxLength": 150, "title": "First Name", "type": "string"}, "last_name": {"default": "", "maxLength": 150, "title": "Last Name", "type": "string"}, "affiliation": {"default": "", "maxLength": 300, "title": "Affiliation", "type": "string"}, "country": {"default": "", "maxLength": 2, "title": "Country", "type": "string"}, "orcid": {"default": "", "maxLength": 19, "title": "Orcid", "type": "string"}, "data_description": {"default": "", "maxLength": 4000, "title": "Data Description", "type": "string"}, "agreed": {"default": false, "title": "Agreed", "type": "boolean"}}, "title": "NodeApplyIn", "type": "object"}, "NodeSettingsOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "accepting": {"title": "Accepting", "type": "boolean"}, "note": {"title": "Note", "type": "string"}, "allow_steward_onward": {"default": false, "title": "Allow Steward Onward", "type": "boolean"}}, "required": ["node_id", "tier", "accepting", "note"], "title": "NodeSettingsOut", "type": "object"}, "NodeSettingsIn": {"properties": {"accepting": {"title": "Accepting", "type": "boolean"}, "note": {"default": "", "maxLength": 2000, "title": "Note", "type": "string"}, "allow_steward_onward": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allow Steward Onward"}}, "required": ["accepting"], "title": "NodeSettingsIn", "type": "object"}, "LimitsOut": {"properties": {"max_file_bytes": {"title": "Max File Bytes", "type": "integer"}, "chunk_bytes": {"title": "Chunk Bytes", "type": "integer"}}, "required": ["max_file_bytes", "chunk_bytes"], "title": "LimitsOut", "type": "object"}, "UploadOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "file_name": {"title": "File Name", "type": "string"}, "size_bytes": {"title": "Size Bytes", "type": "integer"}, "received_bytes": {"title": "Received Bytes", "type": "integer"}, "status": {"title": "Status", "type": "string"}, "chunk_bytes": {"title": "Chunk Bytes", "type": "integer"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "md5_checksum": {"title": "Md5 Checksum", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "file_name", "size_bytes", "received_bytes", "status", "chunk_bytes", "sha256_checksum", "md5_checksum", "created_at"], "title": "UploadOut", "type": "object"}, "NoRoomOut": {"properties": {"detail": {"title": "Detail", "type": "string"}, "nodes": {"items": {"additionalProperties": true, "type": "object"}, "title": "Nodes", "type": "array"}}, "required": ["detail", "nodes"], "title": "NoRoomOut", "type": "object"}, "DatasetOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "kind": {"title": "Kind", "type": "string"}, "kind_label": {"title": "Kind Label", "type": "string"}, "title": {"title": "Title", "type": "string"}, "description": {"title": "Description", "type": "string"}, "species_scientific_name": {"default": "", "title": "Species Scientific Name", "type": "string"}, "files": {"items": {"$ref": "#/components/schemas/FileOut"}, "title": "Files", "type": "array"}, "total_bytes": {"title": "Total Bytes", "type": "integer"}, "instrument_platform": {"title": "Instrument Platform", "type": "string"}, "instrument_model": {"title": "Instrument Model", "type": "string"}, "library_strategy": {"title": "Library Strategy", "type": "string"}, "library_source": {"title": "Library Source", "type": "string"}, "library_selection": {"title": "Library Selection", "type": "string"}, "library_layout": {"title": "Library Layout", "type": "string"}, "imaging_modality": {"title": "Imaging Modality", "type": "string"}, "collection_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Collection Date"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "locality": {"title": "Locality", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "isolation_source": {"title": "Isolation Source", "type": "string"}, "host_scientific_name": {"title": "Host Scientific Name", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "ena_submission_consent": {"title": "Ena Submission Consent", "type": "boolean"}, "ena_study_accession": {"default": "", "title": "Ena Study Accession", "type": "string"}, "ena_sample_accession": {"default": "", "title": "Ena Sample Accession", "type": "string"}, "ena_experiment_accession": {"default": "", "title": "Ena Experiment Accession", "type": "string"}, "ena_run_accession": {"default": "", "title": "Ena Run Accession", "type": "string"}, "ena_links": {"default": [], "items": {"additionalProperties": true, "type": "object"}, "title": "Ena Links", "type": "array"}, "citable_id": {"title": "Citable Id", "type": "string"}, "status": {"title": "Status", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "steward_name": {"default": "", "title": "Steward Name", "type": "string"}, "steward_orcid": {"default": "", "title": "Steward Orcid", "type": "string"}, "submitted_by": {"default": "", "title": "Submitted By", "type": "string"}, "backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}}, "required": ["id", "kind", "kind_label", "title", "description", "files", "total_bytes", "instrument_platform", "instrument_model", "library_strategy", "library_source", "library_selection", "library_layout", "imaging_modality", "collection_date", "country_of_origin", "locality", "latitude", "longitude", "isolation_source", "host_scientific_name", "collection_permit_ref", "access_tier", "license_tag", "ena_submission_consent", "citable_id", "status", "submitted_at", "rejection_reason", "retraction_status", "retraction_public_notice"], "title": "DatasetOut", "type": "object"}, "SubmitIn": {"properties": {"kind": {"maxLength": 32, "title": "Kind", "type": "string"}, "title": {"maxLength": 300, "title": "Title", "type": "string"}, "description": {"default": "", "maxLength": 4000, "title": "Description", "type": "string"}, "scientific_name": {"default": "", "maxLength": 255, "title": "Scientific Name", "type": "string"}, "upload_ids": {"items": {"type": "integer"}, "title": "Upload Ids", "type": "array"}, "file_roles": {"additionalProperties": {"type": "string"}, "default": {}, "title": "File Roles", "type": "object"}, "instrument_platform": {"default": "", "maxLength": 100, "title": "Instrument Platform", "type": "string"}, "instrument_model": {"default": "", "maxLength": 200, "title": "Instrument Model", "type": "string"}, "library_strategy": {"default": "", "maxLength": 100, "title": "Library Strategy", "type": "string"}, "library_source": {"default": "", "maxLength": 100, "title": "Library Source", "type": "string"}, "library_selection": {"default": "", "maxLength": 100, "title": "Library Selection", "type": "string"}, "library_layout": {"default": "", "maxLength": 16, "title": "Library Layout", "type": "string"}, "imaging_modality": {"default": "", "maxLength": 200, "title": "Imaging Modality", "type": "string"}, "collection_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Collection Date"}, "country_of_origin": {"default": "", "maxLength": 2, "title": "Country Of Origin", "type": "string"}, "locality": {"default": "", "maxLength": 255, "title": "Locality", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "isolation_source": {"default": "", "maxLength": 255, "title": "Isolation Source", "type": "string"}, "host_scientific_name": {"default": "", "maxLength": 255, "title": "Host Scientific Name", "type": "string"}, "collection_permit_ref": {"default": "", "maxLength": 255, "title": "Collection Permit Ref", "type": "string"}, "access_tier": {"default": "public", "maxLength": 32, "title": "Access Tier", "type": "string"}, "license_tag": {"default": "cc_by", "maxLength": 32, "title": "License Tag", "type": "string"}, "ena_submission_consent": {"default": false, "title": "Ena Submission Consent", "type": "boolean"}, "backup_steward": {"default": "", "maxLength": 150, "title": "Backup Steward", "type": "string"}, "no_human_data": {"default": false, "title": "No Human Data", "type": "boolean"}}, "required": ["kind", "title", "upload_ids"], "title": "SubmitIn", "type": "object"}, "PagedDatasetOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/DatasetOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedDatasetOut", "type": "object"}, "SequenceSubmissionOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "submitted_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Submitted By"}, "backup_steward": {"default": "", "title": "Backup Steward", "type": "string"}, "no_human_data_confirmed": {"title": "No Human Data Confirmed", "type": "boolean"}, "scientific_name": {"title": "Scientific Name", "type": "string"}, "ncbi_taxon_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Ncbi Taxon Id"}, "taxonomy_checked": {"title": "Taxonomy Checked", "type": "boolean"}, "sequence_type": {"title": "Sequence Type", "type": "string"}, "assembly_name": {"title": "Assembly Name", "type": "string"}, "file_name": {"title": "File Name", "type": "string"}, "size_bytes": {"title": "Size Bytes", "type": "integer"}, "sha256_checksum": {"title": "Sha256 Checksum", "type": "string"}, "md5_checksum": {"title": "Md5 Checksum", "type": "string"}, "gzipped": {"title": "Gzipped", "type": "boolean"}, "sequence_count": {"title": "Sequence Count", "type": "integer"}, "total_length": {"title": "Total Length", "type": "integer"}, "sequencing_platform": {"title": "Sequencing Platform", "type": "string"}, "assembler_tool": {"title": "Assembler Tool", "type": "string"}, "coverage_depth": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Coverage Depth"}, "collection_date": {"format": "date", "title": "Collection Date", "type": "string"}, "country_of_origin": {"title": "Country Of Origin", "type": "string"}, "locality": {"title": "Locality", "type": "string"}, "latitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Latitude"}, "longitude": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Longitude"}, "collected_by": {"title": "Collected By", "type": "string"}, "isolation_source": {"title": "Isolation Source", "type": "string"}, "host_scientific_name": {"title": "Host Scientific Name", "type": "string"}, "collection_permit_ref": {"title": "Collection Permit Ref", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "license_tag": {"title": "License Tag", "type": "string"}, "ena_submission_consent": {"title": "Ena Submission Consent", "type": "boolean"}, "status": {"title": "Status", "type": "string"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}, "rejection_reason": {"title": "Rejection Reason", "type": "string"}, "created_sequence_record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Created Sequence Record Id"}}, "required": ["id", "no_human_data_confirmed", "scientific_name", "ncbi_taxon_id", "taxonomy_checked", "sequence_type", "assembly_name", "file_name", "size_bytes", "sha256_checksum", "md5_checksum", "gzipped", "sequence_count", "total_length", "sequencing_platform", "assembler_tool", "coverage_depth", "collection_date", "country_of_origin", "locality", "latitude", "longitude", "collected_by", "isolation_source", "host_scientific_name", "collection_permit_ref", "access_tier", "license_tag", "ena_submission_consent", "status", "submitted_at", "decided_at", "rejection_reason", "created_sequence_record_id"], "title": "SequenceSubmissionOut", "type": "object"}, "StewardedRecordOut": {"properties": {"entity_type": {"title": "Entity Type", "type": "string"}, "label": {"title": "Label", "type": "string"}, "record_id": {"title": "Record Id", "type": "integer"}, "citable_id": {"title": "Citable Id", "type": "string"}, "title": {"title": "Title", "type": "string"}, "page": {"title": "Page", "type": "string"}, "access_tier": {"title": "Access Tier", "type": "string"}, "embargo_level": {"title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}, "backup_steward": {"title": "Backup Steward", "type": "string"}, "steward_since": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Steward Since"}, "hidden_by_admin": {"title": "Hidden By Admin", "type": "boolean"}, "hidden_reason": {"title": "Hidden Reason", "type": "string"}, "retraction_status": {"title": "Retraction Status", "type": "string"}, "retraction_public_notice": {"title": "Retraction Public Notice", "type": "string"}, "requestable": {"title": "Requestable", "type": "boolean"}, "pending_requests": {"title": "Pending Requests", "type": "integer"}, "held_at": {"default": "", "title": "Held At", "type": "string"}, "ena_submission_consent": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Ena Submission Consent"}, "ena_status": {"default": "", "title": "Ena Status", "type": "string"}, "ena_accession": {"default": "", "title": "Ena Accession", "type": "string"}}, "required": ["entity_type", "label", "record_id", "citable_id", "title", "page", "access_tier", "embargo_level", "embargo_release_date", "backup_steward", "steward_since", "hidden_by_admin", "hidden_reason", "retraction_status", "retraction_public_notice", "requestable", "pending_requests"], "title": "StewardedRecordOut", "type": "object"}, "StewardRequestOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "entity_type": {"title": "Entity Type", "type": "string"}, "record_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Record Id"}, "citable_id": {"title": "Citable Id", "type": "string"}, "requester": {"title": "Requester", "type": "string"}, "purpose": {"title": "Purpose", "type": "string"}, "institution": {"title": "Institution", "type": "string"}, "country": {"title": "Country", "type": "string"}, "consent_basis": {"title": "Consent Basis", "type": "string"}, "decision": {"title": "Decision", "type": "string"}, "verification_status": {"title": "Verification Status", "type": "string"}, "requested_at": {"format": "date-time", "title": "Requested At", "type": "string"}, "decided_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Decided At"}}, "required": ["id", "entity_type", "record_id", "citable_id", "requester", "purpose", "institution", "country", "consent_basis", "decision", "verification_status", "requested_at", "decided_at"], "title": "StewardRequestOut", "type": "object"}, "TierIn": {"properties": {"access_tier": {"title": "Access Tier", "type": "string"}, "embargo_level": {"default": "", "title": "Embargo Level", "type": "string"}, "embargo_release_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Embargo Release Date"}}, "required": ["access_tier"], "title": "TierIn", "type": "object"}, "BackupIn": {"properties": {"backup_steward": {"maxLength": 150, "title": "Backup Steward", "type": "string"}}, "required": ["backup_steward"], "title": "BackupIn", "type": "object"}, "RetractIn": {"properties": {"reason": {"maxLength": 4000, "title": "Reason", "type": "string"}, "public_notice": {"maxLength": 2000, "title": "Public Notice", "type": "string"}}, "required": ["reason", "public_notice"], "title": "RetractIn", "type": "object"}, "ConsentIn": {"properties": {"consent": {"title": "Consent", "type": "boolean"}}, "required": ["consent"], "title": "ConsentIn", "type": "object"}, "HideIn": {"properties": {"hidden": {"title": "Hidden", "type": "boolean"}, "reason": {"default": "", "maxLength": 2000, "title": "Reason", "type": "string"}}, "required": ["hidden"], "title": "HideIn", "type": "object"}, "MoveOut": {"properties": {"id": {"title": "Id", "type": "integer"}, "entity_type": {"title": "Entity Type", "type": "string"}, "record_id": {"title": "Record Id", "type": "integer"}, "citable_id": {"title": "Citable Id", "type": "string"}, "steward": {"title": "Steward", "type": "string"}, "source": {"title": "Source", "type": "string"}, "destination": {"title": "Destination", "type": "string"}, "status": {"title": "Status", "type": "string"}, "status_label": {"title": "Status Label", "type": "string"}, "detail": {"title": "Detail", "type": "string"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}, "completed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Completed At"}, "source_released": {"title": "Source Released", "type": "boolean"}}, "required": ["id", "entity_type", "record_id", "citable_id", "steward", "source", "destination", "status", "status_label", "detail", "created_at", "source_released"], "title": "MoveOut", "type": "object"}, "MoveDecisionIn": {"properties": {"approve": {"title": "Approve", "type": "boolean"}, "reason": {"default": "", "maxLength": 1000, "title": "Reason", "type": "string"}}, "required": ["approve"], "title": "MoveDecisionIn", "type": "object"}, "DeliveredIn": {"properties": {"origin_entity_id": {"maxLength": 64, "title": "Origin Entity Id", "type": "string"}}, "required": ["origin_entity_id"], "title": "DeliveredIn", "type": "object"}, "DestinationOut": {"properties": {"node_id": {"title": "Node Id", "type": "string"}, "tier": {"title": "Tier", "type": "string"}, "label": {"title": "Label", "type": "string"}}, "required": ["node_id", "tier", "label"], "title": "DestinationOut", "type": "object"}, "MoveIn": {"properties": {"destination": {"default": "", "maxLength": 128, "title": "Destination", "type": "string"}}, "title": "MoveIn", "type": "object"}}, "securitySchemes": {"JWTAuth": {"type": "http", "scheme": "bearer"}, "ReleaseAccessTokenAuth": {"type": "http", "scheme": "bearer"}, "InstallCodeAuth": {"type": "http", "scheme": "bearer"}}}, "servers": []}