diff --git a/Specification/BrAPI-Phenotyping/Observations/Observations_Table_GET.yaml b/Specification/BrAPI-Phenotyping/Observations/Observations_Table_GET.yaml index 2969b2e7..57dcbea7 100644 --- a/Specification/BrAPI-Phenotyping/Observations/Observations_Table_GET.yaml +++ b/Specification/BrAPI-Phenotyping/Observations/Observations_Table_GET.yaml @@ -79,12 +79,6 @@ paths: schema: type: string deprecated: true - - description: Permanent unique identifier which references the search results - in: query - name: searchResultsDbId - required: false - schema: - type: string - description: Timestamp range start in: query name: observationTimeStampRangeStart diff --git a/Specification/BrAPI-Schema/BrAPI-Common/GeoJSONGeometry.json b/Specification/BrAPI-Schema/BrAPI-Common/GeoJSONGeometry.json index 28beb3e3..14c95c26 100644 --- a/Specification/BrAPI-Schema/BrAPI-Common/GeoJSONGeometry.json +++ b/Specification/BrAPI-Schema/BrAPI-Common/GeoJSONGeometry.json @@ -1,7 +1,9 @@ { "$defs": { "GeoJSONGeometry": { - "nullable": true, + "brapi-metadata": { + "discriminatorPropertyName": "type" + }, "oneOf": [ { "description": "Copied from RFC 7946 Section 3.1.1\n\nA position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or\neasting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element.", diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Program.json b/Specification/BrAPI-Schema/BrAPI-Core/Program.json index f7990981..0f8f6f15 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Program.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Program.json @@ -179,7 +179,10 @@ "description": "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. A Program can contain multiple Trials. A Trial can contain multiple Studies.", "type": "object", "brapi-metadata": { - "primaryModel": true + "primaryModel": true, + "controlledVocabularyProperties": [ + "commonCropName" + ] } } }, diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Study.json b/Specification/BrAPI-Schema/BrAPI-Core/Study.json index e7b716d2..dec28497 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Study.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Study.json @@ -347,6 +347,7 @@ "brapi-metadata": { "primaryModel": true, "controlledVocabularyProperties": [ + "observationLevels", "studyType" ] } diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json index cc9889ea..f35ae40d 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json @@ -161,6 +161,10 @@ "null", "array" ] + }, + "extract": { + "description": "Will perform a search for `Calls` which match the search criteria in `variantSetsExtractRequest`. The results of the search will be used to create a new `VariantSet` on the server. The new `VariantSet` will be returned.", + "$ref": "VariantSet.json#/$defs/VariantSet" } }, "required": [ @@ -170,7 +174,10 @@ "description": "A VariantSet is a collection of variants and variant calls intended to be analyzed together.", "type": "object", "brapi-metadata": { - "primaryModel": true + "primaryModel": true, + "actionProperties": [ + "extract" + ] } }, "Analysis": { diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json index c124d11d..c159070d 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json @@ -85,7 +85,7 @@ "description": "The record of an event where material was moved in or out of a particular SeedLot", "type": "object", "brapi-metadata": { - "primaryModel": false + "primaryModel": true } } }, diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json index 868f5a33..dbd5f4a4 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json @@ -41,6 +41,11 @@ "title": "ExternalReferences", "type": "array" }, + "imageContent": { + "description": "The unique identifier of an image", + "type": "string", + "format": "binary" + }, "imageDbId": { "description": "The unique identifier of an image", "type": "string" @@ -128,8 +133,8 @@ "$ref": "Observation.json#/$defs/Observation" }, "referencedAttribute": "images", - "relationshipType": "many-to-many", - "type": "array" + "relationshipType": "one-to-many", + "type": ["null", "array"] } }, "required": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json index f877913a..71eabc18 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json @@ -154,6 +154,300 @@ "brapi-metadata": { "primaryModel": true } + }, + "ObservationTable": { + "type": "object", + "properties": { + "data": { + "description": "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows.", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "example": [ + [ + "2019-09-10T18:13:27.223Z", + "f3a8a3db", + "Plant Alpha", + "0fe3e48b", + "2017 Plant Study", + "06307ec0", + "A0043001", + "76.50106681", + "42.44409301", + "2017", + "Field_1", + "Plot_11", + "SubPlot_111", + "Plant_1111", + "Pot_1111", + "Block_11", + "Entry_11", + "Rep_11", + "25.3", + "", + "", + "" + ], + [ + "2019-09-10T18:14:27.223Z", + "f3a8a3db", + "Plant Alpha", + "0fe3e48b", + "2017 Plant Study", + "06307ec0", + "A0043001", + "76.50106681", + "42.44409301", + "2017", + "Field_1", + "Plot_11", + "SubPlot_111", + "Plant_1111", + "Pot_1111", + "Block_11", + "Entry_11", + "Rep_11", + "", + "3", + "", + "" + ], + [ + "2019-09-10T18:15:54.868Z", + "05d1b011", + "Plant Beta", + "0fe3e48b", + "2017 Plant Study", + "59d435cd", + "A0043002", + "76.50106683", + "42.44409301", + "2017", + "Field_1", + "Plot_11", + "SubPlot_112", + "Plant_1122", + "Pot_1122", + "Block_11", + "Entry_11", + "Rep_12", + "27.9", + "", + "", + "" + ], + [ + "2019-09-10T18:16:54.868Z", + "05d1b011", + "Plant Beta", + "0fe3e48b", + "2017 Plant Study", + "59d435cd", + "A0043002", + "76.50106683", + "42.44409301", + "2017", + "Field_1", + "Plot_11", + "SubPlot_112", + "Plant_1122", + "Pot_1122", + "Block_11", + "Entry_11", + "Rep_12", + "", + "1", + "", + "" + ], + [ + "2019-09-10T18:17:34.433Z", + "67e2d87c", + "Plant Gamma", + "0fe3e48b", + "2017 Plant Study", + "06307ec0", + "A0043001", + "76.50106681", + "42.44409356", + "2017", + "Field_1", + "Plot_12", + "SubPlot_123", + "Plant_1233", + "Pot_1233", + "Block_12", + "Entry_12", + "Rep_11", + "", + "3", + "", + "" + ], + [ + "2019-09-10T18:18:34.433Z", + "67e2d87c", + "Plant Gamma", + "0fe3e48b", + "2017 Plant Study", + "06307ec0", + "A0043001", + "76.50106681", + "42.44409356", + "2017", + "Field_1", + "Plot_12", + "SubPlot_123", + "Plant_1233", + "Pot_1233", + "Block_12", + "Entry_12", + "Rep_11", + "25.5", + "", + "", + "" + ], + [ + "2019-09-10T18:19:15.629Z", + "d98d0d4c", + "Plant Epsilon", + "0fe3e48b", + "2017 Plant Study", + "59d435cd", + "A0043002", + "76.50106683", + "42.44409356", + "2017", + "Field_1", + "Plot_12", + "SubPlot_124", + "Plant_1244", + "Pot_1244", + "Block_12", + "Entry_12", + "Rep_12", + "28.9", + "", + "", + "" + ], + [ + "2019-09-10T18:20:15.629Z", + "d98d0d4c", + "Plant Epsilon", + "0fe3e48b", + "2017 Plant Study", + "59d435cd", + "A0043002", + "76.50106683", + "42.44409356", + "2017", + "Field_1", + "Plot_12", + "SubPlot_124", + "Plant_1244", + "Pot_1244", + "Block_12", + "Entry_12", + "Rep_12", + "", + "0", + "", + "" + ] + ] + }, + "headerRow": { + "description": "

The table is REQUIRED to have the following columns

\n\n

The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer

\n\n

The table also may have any number of Observation Unit Hierarchy Level columns. For example:

\n\n

The JSON representation provides a pair of extra arrays for defining the headers of the table. \nThe first array \"headerRow\" will always contain \"observationUnitDbId\" and any or all of the OPTIONAL column header names. \nThe second array \"observationVariables\" contains the names and DbIds for the Observation Variables represented in the table. \nBy appending the two arrays, you can construct the complete header row of the table.

", + "items": { + "description": "valid header fields", + "enum": [ + "observationTimeStamp", + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ], + "type": "string" + }, + "type": "array", + "example": [ + "observationTimeStamp", + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ] + }, + "observationVariables": { + "description": "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table.", + "type": "array", + "items": { + "type": "object", + "properties": { + "observationVariableDbId": { + "description": "Variable unique identifier", + "type": "string", + "example": "367aa1a9" + }, + "observationVariableName": { + "description": "Variable name (usually a short name)", + "type": "string", + "example": "Plant height" + } + } + }, + "example": [ + { + "observationVariableDbId": "367aa1a9", + "observationVariableName": "Plant height" + }, + { + "observationVariableDbId": "2acb934c", + "observationVariableName": "Carotenoid" + }, + { + "observationVariableDbId": "85a21ce1", + "observationVariableName": "Root color" + }, + { + "observationVariableDbId": "46f590e5", + "observationVariableName": "Virus severity" + } + ] + } + } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json index 9905e5c6..8a3392e4 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json @@ -235,17 +235,7 @@ }, "geoCoordinates": { "description": "One geometry as defined by GeoJSON (RFC 7946). All coordinates are decimal values on the WGS84 geographic coordinate reference system.\n\nCopied from RFC 7946 Section 3.1.1\n\nA position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or\neasting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element.", - "relationshipType": "one-to-many", - "referencedAttribute": "observationUnit", - "items": { - "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON", - "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed." - }, - "title": "GeoJSON", - "type": [ - "null", - "array" - ] + "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON" }, "observationLevel": { "$ref": "../BrAPI-Phenotyping/ObservationUnitLevel.json#/$defs/ObservationUnitLevel", @@ -366,6 +356,194 @@ "null", "string" ] + }, + "ObservationUnitTable": { + "type": "object", + "properties": { + "data": { + "description": "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows.", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "example": [ + [ + "f3a8a3db", + "Plant Alpha", + "0fe3e48b", + "2017 Plant Study", + "06307ec0", + "A0043001", + "76.50106681", + "42.44409301", + "2017", + "Field_1", + "Plot_11", + "SubPlot_111", + "Plant_1111", + "Pot_1111", + "Block_11", + "Entry_11", + "Rep_11", + "25.3", + "3", + "50.75" + ], + [ + "05d1b011", + "Plant Beta", + "0fe3e48b", + "2017 Plant Study", + "59d435cd", + "A0043002", + "76.50106683", + "42.44409301", + "2017", + "Field_1", + "Plot_11", + "SubPlot_112", + "Plant_1122", + "Pot_1122", + "Block_11", + "Entry_11", + "Rep_12", + "27.9", + "1", + "45.345" + ], + [ + "67e2d87c", + "Plant Gamma", + "0fe3e48b", + "2017 Plant Study", + "06307ec0", + "A0043001", + "76.50106681", + "42.44409356", + "2017", + "Field_1", + "Plot_12", + "SubPlot_123", + "Plant_1233", + "Pot_1233", + "Block_12", + "Entry_12", + "Rep_11", + "25.5", + "3", + "50.76" + ], + [ + "d98d0d4c", + "Plant Epsilon", + "0fe3e48b", + "2017 Plant Study", + "59d435cd", + "A0043002", + "76.50106683", + "42.44409356", + "2017", + "Field_1", + "Plot_12", + "SubPlot_124", + "Plant_1244", + "Pot_1244", + "Block_12", + "Entry_12", + "Rep_12", + "28.9", + "0", + "46.5" + ] + ] + }, + "headerRow": { + "description": "

The table is REQUIRED to have the following columns

\n\n

The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer

\n\n

The table also may have any number of Observation Unit Hierarchy Level columns. For example:

\n\n

The JSON representation provides a pair of extra arrays for defining the headers of the table. \nThe first array \"headerRow\" will always contain \"observationUnitDbId\" and any or all of the OPTIONAL column header names. \nThe second array \"observationVariables\" contains the names and DbIds for the Observation Variables represented in the table. \nBy appending the two arrays, you can construct the complete header row of the table.

", + "type": "array", + "items": { + "description": "valid header fields", + "type": "string", + "enum": [ + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ] + }, + "example": [ + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ] + }, + "observationVariables": { + "description": "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table.", + "type": "array", + "items": { + "type": "object", + "properties": { + "observationVariableDbId": { + "description": "Variable unique identifier", + "type": "string", + "example": "367aa1a9" + }, + "observationVariableName": { + "description": "Variable name (usually a short name)", + "type": "string", + "example": "Plant height" + } + } + }, + "example": [ + { + "observationVariableDbId": "367aa1a9", + "observationVariableName": "Plant height" + }, + { + "observationVariableDbId": "2acb934c", + "observationVariableName": "Carotenoid" + }, + { + "observationVariableDbId": "85a21ce1", + "observationVariableName": "Root color" + }, + { + "observationVariableDbId": "46f590e5", + "observationVariableName": "Virus severity" + } + ] + } + } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json", diff --git a/Specification/BrAPI-Schema/Requests/AlleleMatrixRequest.json b/Specification/BrAPI-Schema/Requests/AlleleMatrixRequest.json index d0080959..cb9fb84a 100644 --- a/Specification/BrAPI-Schema/Requests/AlleleMatrixRequest.json +++ b/Specification/BrAPI-Schema/Requests/AlleleMatrixRequest.json @@ -67,17 +67,25 @@ "type": ["null", "integer"] }, "dataMatrixNames": { - "description": "`dataMatrixNames` is a comma separated list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", - "type": ["null", "string"], + "description": "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", + "type": ["null", "array"], + "items": { + "type": "string" + }, "example": [ - "Genotype,Read Depth" + "Genotype", + "Read Depth" ] }, "dataMatrixAbbreviations": { - "description": "`dataMatrixAbbreviations` is a comma separated list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", - "type": ["null", "string"], + "description": "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", + "type": ["null", "array"], + "items": { + "type": "string" + }, "example": [ - "GT,RD" + "GT", + "RD" ] }, "positionRanges": { @@ -190,7 +198,8 @@ } }, "brapi-metadata": { - "request": true + "request": true, + "noSingularizeProperties": ["dataMatrixNames", "dataMatrixAbbreviations"] } } }, diff --git a/Specification/BrAPI-Schema/Requests/ObservationUnitHierarchyLevelRequest.json b/Specification/BrAPI-Schema/Requests/ObservationUnitHierarchyLevelRequest.json new file mode 100644 index 00000000..60fa61ba --- /dev/null +++ b/Specification/BrAPI-Schema/Requests/ObservationUnitHierarchyLevelRequest.json @@ -0,0 +1,22 @@ +{ + "$defs": { + "ObservationUnitHierarchyLevelRequest": { + "allOf": [ + { + "$ref": "Parameters/StudyParameters.json#/$defs/StudyParameters" + }, + { + "$ref": "Parameters/ProgramParameters.json#/$defs/ProgramParameters" + }, + { + "$ref": "Parameters/TrialParameters.json#/$defs/TrialParameters" + } + ], + "brapi-metadata": { + "request": true + } + } + }, + "$id": "https://brapi.org/Specification/BrAPI-Schema/Requests/ObservationUnitHierarchyLevelRequest.json", + "$schema": "http://json-schema.org/draft/2020-12/schema" +} \ No newline at end of file diff --git a/Specification/BrAPI-Schema/Requests/SeedLotTransactionRequest.json b/Specification/BrAPI-Schema/Requests/SeedLotTransactionRequest.json index aa7d660b..b9304327 100644 --- a/Specification/BrAPI-Schema/Requests/SeedLotTransactionRequest.json +++ b/Specification/BrAPI-Schema/Requests/SeedLotTransactionRequest.json @@ -1,28 +1,62 @@ { "$defs": { "SeedLotTransactionRequest": { - "type": "object", - "properties": { - "transactionDbIs": { - "description": "Unique id for a Transaction that has occurred", - "type": "array", - "items": { - "type": "string" - } + "allOf": [ + { + "$ref": "Parameters/CommonCropNamesParameters.json#/$defs/CommonCropNamesParameters" + }, + { + "$ref": "Parameters/GermplasmParameters.json#/$defs/GermplasmParameters" }, - "transactionDirection": { - "description": "Filter results to only include transactions directed to the specific Seed Lot (TO), away from the specific Seed Lot (FROM), or both (BOTH). The default value for this parameter is BOTH", - "enum": [ - "TO", - "FROM", - "BOTH" - ], - "type": [ - "null", - "string" - ] + { + "$ref": "Parameters/ProgramParameters.json#/$defs/ProgramParameters" + }, + { + "type": "object", + "properties": { + "seedLotDbIds": { + "description": "Unique id for a seed lot on this server", + "type": "array", + "items": { + "type": "string" + } + }, + "crossDbIds": { + "description": "Search for Cross with this unique id", + "type": "array", + "items": { + "type": "string" + } + }, + "crossNames": { + "description": "Search for Cross with this human readable name", + "type": "array", + "items": { + "type": "string" + } + }, + "transactionDbIds": { + "description": "Unique id for a Transaction that has occurred", + "type": "array", + "items": { + "type": "string" + } + }, + "transactionDirection": { + "description": "Filter results to only include transactions directed to the specific Seed Lot (TO), away from the specific Seed Lot (FROM), or both (BOTH). The default value for this parameter is BOTH", + "enum": [ + "TO", + "FROM", + "BOTH" + ], + "type": [ + "null", + "string" + ] + } + } } - }, + ], "brapi-metadata": { "request": true, "subQueryProperties" : [ diff --git a/Specification/BrAPI-Schema/Requests/VariantSetsExtractRequest.json b/Specification/BrAPI-Schema/Requests/VariantSetsExtractRequest.json new file mode 100644 index 00000000..9f190ef4 --- /dev/null +++ b/Specification/BrAPI-Schema/Requests/VariantSetsExtractRequest.json @@ -0,0 +1,90 @@ +{ + "$defs": { + "VariantSetsExtractRequest": { + "description": "Request object for extracting data subsets as new Variant Sets", + "type": "object", + "properties": { + "callSetDbIds": { + "description": "The CallSet to search.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "9569cfc4", + "da1e888c" + ] + }, + "expandHomozygotes": { + "description": "Should homozygotes be expanded (true) or collapsed into a single occurrence (false)", + "type": "boolean", + "example": true + }, + "sepPhased": { + "description": "The string used as a separator for phased allele calls.", + "type": "string", + "example": "~" + }, + "sepUnphased": { + "description": "The string used as a separator for unphased allele calls.", + "type": "string", + "example": "|" + }, + "studyDbIds": { + "description": "List of study identifiers to search for", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "cf6c4bd4", + "691e69d6" + ] + }, + "studyNames": { + "description": "List of study names to filter search results", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "The First Bob Study 2017", + "Wheat Yield Trial 246" + ] + }, + "unknownString": { + "description": "The string used as a representation for missing data.", + "type": "string", + "example": "-" + }, + "variantDbIds": { + "description": "The Variant to search.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "c80f068b", + "eb7c5f50" + ] + }, + "variantSetDbIds": { + "description": "The VariantSet to search.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "b2903842", + "dcbb8558" + ] + } + }, + "brapi-metadata": { + "request": true + } + } + }, + "$id": "https://brapi.org/Specification/BrAPI-Schema/Requests/VariantSetsExtractRequest.json", + "$schema": "http://json-schema.org/draft/2020-12/schema" +} diff --git a/Specification/Generated/BrAPI-Core.yaml b/Specification/Generated/BrAPI-Core.yaml index 375a628b..6879ac7b 100644 --- a/Specification/Generated/BrAPI-Core.yaml +++ b/Specification/Generated/BrAPI-Core.yaml @@ -2,74 +2,7 @@ openapi: 3.0.0 info: title: BrAPI-Core version: "2.1" -servers: -- url: / paths: - /serverinfo: - get: - tags: - - Server Info - summary: Get the list of implemented Calls - description: "Implementation Notes\n\nHaving a consistent structure for the\ - \ path string of each call is very \nimportant for teams to be able to connect\ - \ and find errors. Read more on Github.\n\nHere are the rules for the path\ - \ of each call that should be returned\n\nEvery word in the call path should\ - \ match the documentation exactly, both in \nspelling and capitalization.\ - \ Note that path strings are all lower case, but \npath parameters are camel\ - \ case.\n\nEach path should start relative to \\\"/\\\" and therefore should\ - \ not include \\\"/\\\"\n\nNo leading or trailing slashes (\\\"/\\\") \n\n\ - Path parameters are wrapped in curly braces (\\\"{}\\\"). The name of the\ - \ path parameter \nshould be spelled exactly as it is specified in the documentation.\n\ - \nExamples \n\nGOOD \"call\": \"germplasm/{germplasmDbId}/pedigree\" \n\n\ - BAD \"call\": \"germplasm/{id}/pedigree\"\n\nBAD \"call\": \"germplasm/{germplasmDBid}/pedigree\"\ - \ \n\nBAD \"call\": \"brapi/v2/germplasm/{germplasmDbId}/pedigree\" \n\n\ - BAD \"call\": \"/germplasm/{germplasmDbId}/pedigree/\" \n\nBAD \"call\"\ - : \"germplasm//pedigree\"" - parameters: - - name: contentType - in: query - description: Filter the list of endpoints based on the response content type. - required: false - style: form - explode: true - schema: - $ref: "#/components/schemas/ContentTypes" - - name: dataType - in: query - description: |- - **Deprecated in v2.1** Please use `contentType`. Github issue number #443 -
The data format supported by the call. - required: false - deprecated: true - style: form - explode: true - schema: - $ref: "#/components/schemas/ContentTypes" - - $ref: "#/components/parameters/authorizationHeader" - responses: - "200": - description: OK - content: - application/json: - schema: - title: ServerInfoResponse - required: - - metadata - - result - type: object - properties: - '@context': - $ref: "#/components/schemas/Context" - metadata: - $ref: "#/components/schemas/metadata" - result: - $ref: "#/components/schemas/ServerInfo" - "400": - $ref: "#/components/responses/400BadRequest" - "401": - $ref: "#/components/responses/401Unauthorized" - "403": - $ref: "#/components/responses/403Forbidden" /lists: get: tags: @@ -855,6 +788,66 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + /commoncropnames: + get: + tags: + - Programs + summary: Get the commonCropNames of Program + description: List all available Program commonCropNames + parameters: + - $ref: "#/components/parameters/page" + - $ref: "#/components/parameters/pageSize" + - $ref: "#/components/parameters/authorizationHeader" + responses: + "200": + $ref: "#/components/responses/ProgramCommonCropNameListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + /observationlevels: + get: + tags: + - Studies + summary: Get the observationLevelses of Study + description: List all available Study observationLevelses + parameters: + - name: studyDbId + in: query + description: List of study identifiers to search for + required: false + schema: + type: string + - name: programDbId + in: query + description: "A BrAPI Program represents the high level organization or group\ + \ who is responsible for conducting trials and studies. Things like Breeding\ + \ Programs and Funded Projects are considered BrAPI Programs. \n\nUse this\ + \ parameter to only return results associated with the given programs. \n\ + \nUse `GET /programs` to find the list of available programs on a server." + required: false + schema: + type: string + - name: trialDbId + in: query + description: The ID which uniquely identifies a trial to search for + required: false + schema: + type: string + - $ref: "#/components/parameters/page" + - $ref: "#/components/parameters/pageSize" + - $ref: "#/components/parameters/authorizationHeader" + responses: + "200": + $ref: "#/components/responses/StudyObservationLevelsListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" /studytypes: get: tags: @@ -1510,14 +1503,14 @@ paths: $ref: "#/components/responses/ListListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/locations/{searchResultsDbId}: get: tags: @@ -1552,14 +1545,14 @@ paths: $ref: "#/components/responses/LocationListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/people/{searchResultsDbId}: get: tags: @@ -1594,14 +1587,14 @@ paths: $ref: "#/components/responses/PersonListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/programs/{searchResultsDbId}: get: tags: @@ -1636,14 +1629,14 @@ paths: $ref: "#/components/responses/ProgramListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/studies/{searchResultsDbId}: get: tags: @@ -1678,14 +1671,14 @@ paths: $ref: "#/components/responses/StudyListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/trials/{searchResultsDbId}: get: tags: @@ -1720,8 +1713,73 @@ paths: $ref: "#/components/responses/TrialListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" "404": $ref: "#/components/responses/404NotFound" + /serverinfo: + get: + tags: + - Server Info + summary: Get the list of implemented Calls + description: "Implementation Notes\n\nHaving a consistent structure for the\ + \ path string of each call is very \nimportant for teams to be able to connect\ + \ and find errors. Read more on Github.\n\nHere are the rules for the path\ + \ of each call that should be returned\n\nEvery word in the call path should\ + \ match the documentation exactly, both in \nspelling and capitalization.\ + \ Note that path strings are all lower case, but \npath parameters are camel\ + \ case.\n\nEach path should start relative to \\\"/\\\" and therefore should\ + \ not include \\\"/\\\"\n\nNo leading or trailing slashes (\\\"/\\\") \n\n\ + Path parameters are wrapped in curly braces (\\\"{}\\\"). The name of the\ + \ path parameter \nshould be spelled exactly as it is specified in the documentation.\n\ + \nExamples \n\nGOOD \"call\": \"germplasm/{germplasmDbId}/pedigree\" \n\n\ + BAD \"call\": \"germplasm/{id}/pedigree\"\n\nBAD \"call\": \"germplasm/{germplasmDBid}/pedigree\"\ + \ \n\nBAD \"call\": \"brapi/v2/germplasm/{germplasmDbId}/pedigree\" \n\n\ + BAD \"call\": \"/germplasm/{germplasmDbId}/pedigree/\" \n\nBAD \"call\"\ + : \"germplasm//pedigree\"" + parameters: + - name: contentType + in: query + description: Filter the list of endpoints based on the response content type. + required: false + style: form + explode: true + schema: + $ref: "#/components/schemas/ContentTypes" + - name: dataType + in: query + description: |- + **Deprecated in v2.1** Please use `contentType`. Github issue number #443 +
The data format supported by the call. + required: false + deprecated: true + style: form + explode: true + schema: + $ref: "#/components/schemas/ContentTypes" + - $ref: "#/components/parameters/authorizationHeader" + responses: + "200": + description: OK + content: + application/json: + schema: + title: ServerInfoResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + $ref: "#/components/schemas/ServerInfo" "400": $ref: "#/components/responses/400BadRequest" "401": @@ -1730,101 +1788,6 @@ paths: $ref: "#/components/responses/403Forbidden" components: schemas: - Service: - required: - - methods - - service - - versions - type: object - properties: - service: - type: string - description: The name of the available call as recorded in the documentation - example: "germplasm/{germplasmDbId}/pedigree" - contentTypes: - type: array - description: The possible content types returned by the service endpoint - example: - - application/json - items: - $ref: "#/components/schemas/ContentTypes" - dataTypes: - type: array - description: "**Deprecated in v2.1** Please use `contentTypes`. Github issue\ - \ number #443 \n
The possible data formats returned by the available\ - \ call " - example: - - application/json - deprecated: true - items: - $ref: "#/components/schemas/ContentTypes" - methods: - type: array - description: The possible HTTP Methods to be used with the available call - example: - - GET - - POST - items: - type: string - enum: - - GET - - POST - - PUT - - DELETE - versions: - type: array - description: The supported versions of a particular call - example: - - "2.0" - - "2.1" - items: - type: string - enum: - - "2.0" - - "2.1" - - "2.2" - ServerInfo: - required: - - calls - type: object - properties: - contactEmail: - type: string - description: A contact email address for this server management - example: contact@institute.org - documentationURL: - type: string - description: A URL to the human readable documentation of an object - example: institute.org/server - organizationURL: - type: string - description: The URL of the organization that manages this server and data - example: institute.org/home - organizationName: - type: string - description: The name of the organization that manages this server and data - example: The Institute - serverName: - type: string - description: The name of this server - example: The BrAPI Test Server - serverDescription: - type: string - description: A description of this server - example: |- - The BrAPI Test Server - Web Server - Apache Tomcat 7.0.32 - Database - Postgres 10 - Supported BrAPI Version - V2.0 - location: - type: string - description: "Physical location of this server (ie. City, Country)" - example: USA - calls: - type: array - description: Array of available calls on this server - items: - $ref: "#/components/schemas/Service" AdditionalInfo: type: string additionalProperties: @@ -1865,19 +1828,21 @@ components: items: type: string dataMatrixAbbreviations: - type: string - description: "`dataMatrixAbbreviations` is a comma separated list of abbreviations\ - \ (ie 'GT', 'RD' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT',\ + \ 'RD' etc). This list controls which data matrices are returned in the\ + \ response." nullable: true - example: "GT,RD" + items: + type: string dataMatrixNames: - type: string - description: "`dataMatrixNames` is a comma separated list of names (ie 'Genotype',\ - \ 'Read Depth' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read\ + \ Depth' etc). This list controls which data matrices are returned in\ + \ the response." nullable: true - example: "Genotype,Read Depth" + items: + type: string dimensionCallSetPage: type: integer description: The requested page number for the CallSet dimension of the @@ -2081,9 +2046,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -2763,7 +2728,8 @@ components: nullable: true GeoJSONGeometry: type: object - nullable: true + discriminator: + propertyName: type oneOf: - required: - coordinates @@ -3604,7 +3570,9 @@ components: items: type: string listType: - $ref: "#/components/schemas/ListType" + nullable: true + allOf: + - $ref: "#/components/schemas/ListType" programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -3717,7 +3685,9 @@ components: items: type: string listType: - $ref: "#/components/schemas/ListType" + nullable: true + allOf: + - $ref: "#/components/schemas/ListType" page: type: integer description: Which result page is requested. The page indexing starts at @@ -4475,6 +4445,47 @@ components: \ associated observed variable (see observed variables). \nAlternatively,\ \ it is possible to use samples for more detailed tracing of sub-plant units,\ \ attaching the observations to them instead.\" " + ObservationUnitHierarchyLevelRequest: + type: object + properties: + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + trialDbIds: + type: array + description: The ID which uniquely identifies a trial to search for + items: + type: string + trialNames: + type: array + description: The human readable name of a trial to search for + items: + type: string ObservationUnitRequest: type: object properties: @@ -6305,7 +6316,64 @@ components: SeedLotTransactionRequest: type: object properties: - transactionDbIs: + commonCropNames: + type: array + description: "The BrAPI Common Crop Name is the simple, generalized, widely\ + \ accepted name of the organism being researched. It is most often used\ + \ in multi-crop systems where digital resources need to be divided at\ + \ a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples\ + \ of common crop names.\n\nUse this parameter to only return results associated\ + \ with the given crops. \n\nUse `GET /commoncropnames` to find the list\ + \ of available crops on a server." + items: + type: string + crossDbIds: + type: array + description: Search for Cross with this unique id + items: + type: string + crossNames: + type: array + description: Search for Cross with this human readable name + items: + type: string + germplasmDbIds: + type: array + description: List of IDs which uniquely identify germplasm to search for + nullable: true + items: + type: string + germplasmNames: + type: array + description: List of human readable names to identify germplasm to search + for + nullable: true + items: + type: string + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + seedLotDbIds: + type: array + description: Unique id for a seed lot on this server + items: + type: string + transactionDbIds: type: array description: Unique id for a Transaction that has occurred items: @@ -7375,9 +7443,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -7754,6 +7822,52 @@ components: description: The unique identifier representing a VariantSet items: type: string + VariantSetsExtractRequest: + type: object + properties: + callSetDbIds: + type: array + description: The CallSet to search. + items: + type: string + expandHomozygotes: + type: boolean + description: Should homozygotes be expanded (true) or collapsed into a single + occurrence (false) + example: true + sepPhased: + type: string + description: The string used as a separator for phased allele calls. + example: "~" + sepUnphased: + type: string + description: The string used as a separator for unphased allele calls. + example: '|' + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + unknownString: + type: string + description: The string used as a representation for missing data. + example: "-" + variantDbIds: + type: array + description: The Variant to search. + items: + type: string + variantSetDbIds: + type: array + description: The VariantSet to search. + items: + type: string + description: Request object for extracting data subsets as new Variant Sets basePagination: required: - currentPage @@ -7918,6 +8032,101 @@ components: pageSize: 1000 totalCount: 10 totalPages: 1 + Service: + required: + - methods + - service + - versions + type: object + properties: + service: + type: string + description: The name of the available call as recorded in the documentation + example: "germplasm/{germplasmDbId}/pedigree" + contentTypes: + type: array + description: The possible content types returned by the service endpoint + example: + - application/json + items: + $ref: "#/components/schemas/ContentTypes" + dataTypes: + type: array + description: "**Deprecated in v2.1** Please use `contentTypes`. Github issue\ + \ number #443 \n
The possible data formats returned by the available\ + \ call " + example: + - application/json + deprecated: true + items: + $ref: "#/components/schemas/ContentTypes" + methods: + type: array + description: The possible HTTP Methods to be used with the available call + example: + - GET + - POST + items: + type: string + enum: + - GET + - POST + - PUT + - DELETE + versions: + type: array + description: The supported versions of a particular call + example: + - "2.0" + - "2.1" + items: + type: string + enum: + - "2.0" + - "2.1" + - "2.2" + ServerInfo: + required: + - calls + type: object + properties: + contactEmail: + type: string + description: A contact email address for this server management + example: contact@institute.org + documentationURL: + type: string + description: A URL to the human readable documentation of an object + example: institute.org/server + organizationURL: + type: string + description: The URL of the organization that manages this server and data + example: institute.org/home + organizationName: + type: string + description: The name of the organization that manages this server and data + example: The Institute + serverName: + type: string + description: The name of this server + example: The BrAPI Test Server + serverDescription: + type: string + description: A description of this server + example: |- + The BrAPI Test Server + Web Server - Apache Tomcat 7.0.32 + Database - Postgres 10 + Supported BrAPI Version - V2.0 + location: + type: string + description: "Physical location of this server (ie. City, Country)" + example: USA + calls: + type: array + description: Array of available calls on this server + items: + $ref: "#/components/schemas/Service" responses: "401Unauthorized": description: Unauthorized @@ -7927,6 +8136,30 @@ components: type: string example: ERROR - 2018-10-08T18:15:11Z - Missing or expired authorization token + ProgramCommonCropNameListResponse: + description: OK + content: + application/json: + schema: + title: ProgramCommonCropNameListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: string "202AcceptedSearchResponse": description: Accepted content: @@ -8066,6 +8299,32 @@ components: type: string example: ERROR - 2018-10-08T18:15:11Z - User does not have permission to perform this action + StudyObservationLevelsListResponse: + description: OK + content: + application/json: + schema: + title: StudyObservationLevelsListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: array + items: + $ref: "#/components/schemas/ObservationUnitHierarchyLevel" ProgramListResponse: description: OK content: diff --git a/Specification/Generated/BrAPI-Genotyping.yaml b/Specification/Generated/BrAPI-Genotyping.yaml index 5be65abe..fd1ae90e 100644 --- a/Specification/Generated/BrAPI-Genotyping.yaml +++ b/Specification/Generated/BrAPI-Genotyping.yaml @@ -51,17 +51,16 @@ paths: format: int32 - name: dataMatrixNames in: query - description: "`dataMatrixNames` is a comma separated list of names (ie 'Genotype',\ - \ 'Read Depth' etc). This list controls which data matrices are returned\ - \ in the response." + description: "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read Depth'\ + \ etc). This list controls which data matrices are returned in the response." required: false schema: type: string - name: dataMatrixAbbreviations in: query - description: "`dataMatrixAbbreviations` is a comma separated list of abbreviations\ - \ (ie 'GT', 'RD' etc). This list controls which data matrices are returned\ - \ in the response." + description: "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT',\ + \ 'RD' etc). This list controls which data matrices are returned in the\ + \ response." required: false schema: type: string @@ -148,8 +147,6 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" - "404": - $ref: "#/components/responses/404NotFound" /calls: get: tags: @@ -225,6 +222,29 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + put: + tags: + - Calls + summary: Update the details for an existing Call + description: Update the details for an existing Call + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Call" + responses: + "200": + $ref: "#/components/responses/CallListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" /callsets: get: tags: @@ -509,6 +529,37 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + put: + tags: + - Plates + summary: Update the details for an existing Plate + description: Update the details for an existing Plate + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/PlateNewRequest" + example: "{_1={additionalInfo={}, externalReferences=[{}],\ + \ plateBarcode=4eacf0b7, plateDbId=71ea8b72, plateFormat={}, plateName=72778960,\ + \ program={}, sampleType={}, study={}, trial={}, samples=[{}]}, _2={additionalInfo={},\ + \ externalReferences=[{}], plateBarcode=4eacf0b8, plateDbId=71ea8b73,\ + \ plateFormat={}, plateName=72778961, program={}, sampleType={}, study={},\ + \ trial={}, samples=[{}]}}" + responses: + "200": + $ref: "#/components/responses/PlateListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" post: tags: - Plates @@ -857,6 +908,8 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" post: tags: - Samples @@ -1090,14 +1143,14 @@ paths: responses: "200": $ref: "#/components/responses/CallListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /maps/{mapDbId}: get: tags: @@ -1142,14 +1195,14 @@ paths: responses: "200": $ref: "#/components/responses/LinkageGroupListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /plates/{plateDbId}: get: tags: @@ -1375,14 +1428,14 @@ paths: responses: "200": $ref: "#/components/responses/CallListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /variantsets/{variantSetDbId}: get: tags: @@ -1453,14 +1506,14 @@ paths: responses: "200": $ref: "#/components/responses/CallListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /variantsets/{variantSetDbId}/callsets: get: tags: @@ -1493,14 +1546,14 @@ paths: responses: "200": $ref: "#/components/responses/CallSetListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /variantsets/{variantSetDbId}/variants: get: tags: @@ -1527,14 +1580,14 @@ paths: responses: "200": $ref: "#/components/responses/VariantListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/allelematrix: post: tags: @@ -1872,14 +1925,14 @@ paths: $ref: "#/components/responses/AlleleMatrixSingleResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/calls/{searchResultsDbId}: get: tags: @@ -1915,14 +1968,14 @@ paths: $ref: "#/components/responses/CallListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/callsets/{searchResultsDbId}: get: tags: @@ -1957,14 +2010,14 @@ paths: $ref: "#/components/responses/CallSetListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/markerpositions/{searchResultsDbId}: get: tags: @@ -2000,14 +2053,14 @@ paths: $ref: "#/components/responses/MarkerPositionListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/plates/{searchResultsDbId}: get: tags: @@ -2042,14 +2095,14 @@ paths: $ref: "#/components/responses/PlateListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/references/{searchResultsDbId}: get: tags: @@ -2084,14 +2137,14 @@ paths: $ref: "#/components/responses/ReferenceListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/referencesets/{searchResultsDbId}: get: tags: @@ -2126,14 +2179,14 @@ paths: $ref: "#/components/responses/ReferenceSetListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/samples/{searchResultsDbId}: get: tags: @@ -2168,14 +2221,14 @@ paths: $ref: "#/components/responses/SampleListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/variants/{searchResultsDbId}: get: tags: @@ -2211,14 +2264,14 @@ paths: $ref: "#/components/responses/VariantListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/variantsets/{searchResultsDbId}: get: tags: @@ -2253,14 +2306,38 @@ paths: $ref: "#/components/responses/VariantSetListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" "404": $ref: "#/components/responses/404NotFound" + /variantsets/extract: + post: + tags: + - VariantSets + summary: Perform `extract` on `VariantSet` + description: Perform the `extract` action on `VariantSet`. + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/VariantSetsExtractRequest" + responses: + "200": + $ref: "#/components/responses/VariantSetSingleResponse" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" components: schemas: AdditionalInfo: @@ -2371,19 +2448,21 @@ components: items: type: string dataMatrixAbbreviations: - type: string - description: "`dataMatrixAbbreviations` is a comma separated list of abbreviations\ - \ (ie 'GT', 'RD' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT',\ + \ 'RD' etc). This list controls which data matrices are returned in the\ + \ response." nullable: true - example: "GT,RD" + items: + type: string dataMatrixNames: - type: string - description: "`dataMatrixNames` is a comma separated list of names (ie 'Genotype',\ - \ 'Read Depth' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read\ + \ Depth' etc). This list controls which data matrices are returned in\ + \ the response." nullable: true - example: "Genotype,Read Depth" + items: + type: string dimensionCallSetPage: type: integer description: The requested page number for the CallSet dimension of the @@ -2521,19 +2600,21 @@ components: items: type: string dataMatrixAbbreviations: - type: string - description: "`dataMatrixAbbreviations` is a comma separated list of abbreviations\ - \ (ie 'GT', 'RD' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT',\ + \ 'RD' etc). This list controls which data matrices are returned in the\ + \ response." nullable: true - example: "GT,RD" + items: + type: string dataMatrixNames: - type: string - description: "`dataMatrixNames` is a comma separated list of names (ie 'Genotype',\ - \ 'Read Depth' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read\ + \ Depth' etc). This list controls which data matrices are returned in\ + \ the response." nullable: true - example: "Genotype,Read Depth" + items: + type: string expandHomozygotes: type: boolean description: Should homozygotes be expanded (true) or collapsed into a single @@ -2758,9 +2839,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -3765,7 +3846,8 @@ components: nullable: true GeoJSONGeometry: type: object - nullable: true + discriminator: + propertyName: type oneOf: - required: - coordinates @@ -4529,7 +4611,9 @@ components: items: type: string listType: - $ref: "#/components/schemas/ListType" + nullable: true + allOf: + - $ref: "#/components/schemas/ListType" programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -5119,6 +5203,47 @@ components: \ associated observed variable (see observed variables). \nAlternatively,\ \ it is possible to use samples for more detailed tracing of sub-plant units,\ \ attaching the observations to them instead.\" " + ObservationUnitHierarchyLevelRequest: + type: object + properties: + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + trialDbIds: + type: array + description: The ID which uniquely identifies a trial to search for + items: + type: string + trialNames: + type: array + description: The human readable name of a trial to search for + items: + type: string ObservationUnitRequest: type: object properties: @@ -7543,7 +7668,64 @@ components: SeedLotTransactionRequest: type: object properties: - transactionDbIs: + commonCropNames: + type: array + description: "The BrAPI Common Crop Name is the simple, generalized, widely\ + \ accepted name of the organism being researched. It is most often used\ + \ in multi-crop systems where digital resources need to be divided at\ + \ a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples\ + \ of common crop names.\n\nUse this parameter to only return results associated\ + \ with the given crops. \n\nUse `GET /commoncropnames` to find the list\ + \ of available crops on a server." + items: + type: string + crossDbIds: + type: array + description: Search for Cross with this unique id + items: + type: string + crossNames: + type: array + description: Search for Cross with this human readable name + items: + type: string + germplasmDbIds: + type: array + description: List of IDs which uniquely identify germplasm to search for + nullable: true + items: + type: string + germplasmNames: + type: array + description: List of human readable names to identify germplasm to search + for + nullable: true + items: + type: string + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + seedLotDbIds: + type: array + description: Unique id for a seed lot on this server + items: + type: string + transactionDbIds: type: array description: Unique id for a Transaction that has occurred items: @@ -8050,9 +8232,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -8903,6 +9085,52 @@ components: type: string description: A VariantSet is a collection of variants and variant calls intended to be analyzed together. + VariantSetsExtractRequest: + type: object + properties: + callSetDbIds: + type: array + description: The CallSet to search. + items: + type: string + expandHomozygotes: + type: boolean + description: Should homozygotes be expanded (true) or collapsed into a single + occurrence (false) + example: true + sepPhased: + type: string + description: The string used as a separator for phased allele calls. + example: "~" + sepUnphased: + type: string + description: The string used as a separator for unphased allele calls. + example: '|' + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + unknownString: + type: string + description: The string used as a representation for missing data. + example: "-" + variantDbIds: + type: array + description: The Variant to search. + items: + type: string + variantSetDbIds: + type: array + description: The VariantSet to search. + items: + type: string + description: Request object for extracting data subsets as new Variant Sets basePagination: required: - currentPage @@ -9265,6 +9493,32 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/Sample" + StudyObservationLevelsListResponse: + description: OK + content: + application/json: + schema: + title: StudyObservationLevelsListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: array + items: + $ref: "#/components/schemas/ObservationUnitHierarchyLevel" ReferenceSetListResponse: description: OK content: @@ -9647,6 +9901,30 @@ components: type: array items: $ref: "#/components/schemas/Reference" + ProgramCommonCropNameListResponse: + description: OK + content: + application/json: + schema: + title: ProgramCommonCropNameListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: string AlleleMatrixListResponse: description: OK content: diff --git a/Specification/Generated/BrAPI-Germplasm.yaml b/Specification/Generated/BrAPI-Germplasm.yaml index 7c3850c6..cc0926e5 100644 --- a/Specification/Generated/BrAPI-Germplasm.yaml +++ b/Specification/Generated/BrAPI-Germplasm.yaml @@ -800,6 +800,40 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" + put: + tags: + - PedigreeNodes + summary: Update the details for an existing PedigreeNode + description: Update the details for an existing PedigreeNode + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/PedigreeNode" + example: "{_1={additionalInfo={}, breedingMethod={}, crossingProject={},\ + \ crossingYear=10, defaultDisplayName=5761c815, externalReferences=[{}],\ + \ familyCode=42f142b0, germplasm={}, parents=[{}], pedigreeString=5e286b4b,\ + \ progeny=[{}], siblings=[{}]}, _2={additionalInfo={}, breedingMethod={},\ + \ crossingProject={}, crossingYear=20, defaultDisplayName=5761c816,\ + \ externalReferences=[{}], familyCode=42f142b1, germplasm={}, parents=[{}],\ + \ pedigreeString=5e286b4c, progeny=[{}], siblings=[{}]}}" + responses: + "200": + $ref: "#/components/responses/PedigreeNodeListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" post: tags: - PedigreeNodes @@ -823,6 +857,8 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /plannedcrosses: get: tags: @@ -1053,6 +1089,110 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + /seedlots/transactions: + get: + tags: + - Seed Lots + summary: Get a filtered list of SeedLotTransaction + description: Get a list of SeedLotTransaction + parameters: + - name: commonCropName + in: query + description: "The BrAPI Common Crop Name is the simple, generalized, widely\ + \ accepted name of the organism being researched. It is most often used\ + \ in multi-crop systems where digital resources need to be divided at a\ + \ high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common\ + \ crop names.\n\nUse this parameter to only return results associated with\ + \ the given crops. \n\nUse `GET /commoncropnames` to find the list of available\ + \ crops on a server." + required: false + schema: + type: string + - name: germplasmDbId + in: query + description: List of IDs which uniquely identify germplasm to search for + required: false + schema: + type: string + - name: germplasmName + in: query + description: List of human readable names to identify germplasm to search + for + required: false + schema: + type: string + - name: programDbId + in: query + description: "A BrAPI Program represents the high level organization or group\ + \ who is responsible for conducting trials and studies. Things like Breeding\ + \ Programs and Funded Projects are considered BrAPI Programs. \n\nUse this\ + \ parameter to only return results associated with the given programs. \n\ + \nUse `GET /programs` to find the list of available programs on a server." + required: false + schema: + type: string + - name: seedLotDbId + in: query + description: Unique id for a seed lot on this server + required: false + schema: + type: string + - name: crossDbId + in: query + description: Search for Cross with this unique id + required: false + schema: + type: string + - name: crossName + in: query + description: Search for Cross with this human readable name + required: false + schema: + type: string + - name: transactionDbId + in: query + description: Unique id for a Transaction that has occurred + required: false + schema: + type: string + - $ref: "#/components/parameters/externalReferenceId" + - $ref: "#/components/parameters/externalReferenceID" + - $ref: "#/components/parameters/externalReferenceSource" + - $ref: "#/components/parameters/page" + - $ref: "#/components/parameters/pageSize" + - $ref: "#/components/parameters/authorizationHeader" + responses: + "200": + $ref: "#/components/responses/SeedLotTransactionListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + post: + tags: + - Seed Lots + summary: Create new SeedLotTransaction + description: Add new SeedLotTransaction to database + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/SeedLotTransactionNewRequest" + responses: + "200": + $ref: "#/components/responses/SeedLotTransactionListResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" /attributes/categories: get: tags: @@ -1424,6 +1564,12 @@ paths: required: true schema: type: string + - name: transactionDbId + in: query + description: Unique id for a Transaction that has occurred + required: false + schema: + type: string - name: transactionDirection in: query description: "Filter results to only include transactions directed to the\ @@ -1445,14 +1591,14 @@ paths: responses: "200": $ref: "#/components/responses/SeedLotTransactionListResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/germplasm: post: tags: @@ -1611,14 +1757,14 @@ paths: $ref: "#/components/responses/GermplasmListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/attributes/{searchResultsDbId}: get: tags: @@ -1654,14 +1800,14 @@ paths: $ref: "#/components/responses/GermplasmAttributeListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/attributevalues/{searchResultsDbId}: get: tags: @@ -1698,14 +1844,14 @@ paths: $ref: "#/components/responses/GermplasmAttributeValueListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/pedigree/{searchResultsDbId}: get: tags: @@ -1740,14 +1886,14 @@ paths: $ref: "#/components/responses/PedigreeNodeListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" components: schemas: AcquisitionSourceCode: @@ -1826,19 +1972,21 @@ components: items: type: string dataMatrixAbbreviations: - type: string - description: "`dataMatrixAbbreviations` is a comma separated list of abbreviations\ - \ (ie 'GT', 'RD' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT',\ + \ 'RD' etc). This list controls which data matrices are returned in the\ + \ response." nullable: true - example: "GT,RD" + items: + type: string dataMatrixNames: - type: string - description: "`dataMatrixNames` is a comma separated list of names (ie 'Genotype',\ - \ 'Read Depth' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read\ + \ Depth' etc). This list controls which data matrices are returned in\ + \ the response." nullable: true - example: "Genotype,Read Depth" + items: + type: string dimensionCallSetPage: type: integer description: The requested page number for the CallSet dimension of the @@ -2042,9 +2190,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -3000,7 +3148,8 @@ components: nullable: true GeoJSONGeometry: type: object - nullable: true + discriminator: + propertyName: type oneOf: - required: - coordinates @@ -3206,9 +3355,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -5190,7 +5339,9 @@ components: items: type: string listType: - $ref: "#/components/schemas/ListType" + nullable: true + allOf: + - $ref: "#/components/schemas/ListType" programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -5667,6 +5818,47 @@ components: \ associated observed variable (see observed variables). \nAlternatively,\ \ it is possible to use samples for more detailed tracing of sub-plant units,\ \ attaching the observations to them instead.\" " + ObservationUnitHierarchyLevelRequest: + type: object + properties: + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + trialDbIds: + type: array + description: The ID which uniquely identifies a trial to search for + items: + type: string + trialNames: + type: array + description: The human readable name of a trial to search for + items: + type: string ObservationUnitRequest: type: object properties: @@ -7576,8 +7768,18 @@ components: items: type: string SeedLotTransaction: - required: - - transactionDbId + allOf: + - $ref: "#/components/schemas/SeedLotTransactionNewRequest" + - required: + - transactionDbId + type: object + properties: + transactionDbId: + type: string + description: Unique DbId for the Seed Lot Transaction + description: The record of an event where material was moved in or out of + a particular SeedLot + SeedLotTransactionNewRequest: type: object properties: additionalInfo: @@ -7601,9 +7803,6 @@ components: toSeedLotDbId: type: string nullable: true - transactionDbId: - type: string - description: Unique DbId for the Seed Lot Transaction transactionDescription: type: string description: A general description of this Seed Lot Transaction @@ -7623,7 +7822,64 @@ components: SeedLotTransactionRequest: type: object properties: - transactionDbIs: + commonCropNames: + type: array + description: "The BrAPI Common Crop Name is the simple, generalized, widely\ + \ accepted name of the organism being researched. It is most often used\ + \ in multi-crop systems where digital resources need to be divided at\ + \ a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples\ + \ of common crop names.\n\nUse this parameter to only return results associated\ + \ with the given crops. \n\nUse `GET /commoncropnames` to find the list\ + \ of available crops on a server." + items: + type: string + crossDbIds: + type: array + description: Search for Cross with this unique id + items: + type: string + crossNames: + type: array + description: Search for Cross with this human readable name + items: + type: string + germplasmDbIds: + type: array + description: List of IDs which uniquely identify germplasm to search for + nullable: true + items: + type: string + germplasmNames: + type: array + description: List of human readable names to identify germplasm to search + for + nullable: true + items: + type: string + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + seedLotDbIds: + type: array + description: Unique id for a seed lot on this server + items: + type: string + transactionDbIds: type: array description: Unique id for a Transaction that has occurred items: @@ -8183,9 +8439,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -8562,6 +8818,52 @@ components: description: The unique identifier representing a VariantSet items: type: string + VariantSetsExtractRequest: + type: object + properties: + callSetDbIds: + type: array + description: The CallSet to search. + items: + type: string + expandHomozygotes: + type: boolean + description: Should homozygotes be expanded (true) or collapsed into a single + occurrence (false) + example: true + sepPhased: + type: string + description: The string used as a separator for phased allele calls. + example: "~" + sepUnphased: + type: string + description: The string used as a separator for unphased allele calls. + example: '|' + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + unknownString: + type: string + description: The string used as a representation for missing data. + example: "-" + variantDbIds: + type: array + description: The Variant to search. + items: + type: string + variantSetDbIds: + type: array + description: The VariantSet to search. + items: + type: string + description: Request object for extracting data subsets as new Variant Sets basePagination: required: - currentPage @@ -9498,6 +9800,32 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/GermplasmMCPD" + StudyObservationLevelsListResponse: + description: OK + content: + application/json: + schema: + title: StudyObservationLevelsListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: array + items: + $ref: "#/components/schemas/ObservationUnitHierarchyLevel" ReferenceSetListResponse: description: OK content: @@ -9750,6 +10078,30 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/Person" + ProgramCommonCropNameListResponse: + description: OK + content: + application/json: + schema: + title: ProgramCommonCropNameListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: string VariantListResponse: description: OK content: diff --git a/Specification/Generated/BrAPI-Phenotyping.yaml b/Specification/Generated/BrAPI-Phenotyping.yaml index 9b87a58a..aaa14ec5 100644 --- a/Specification/Generated/BrAPI-Phenotyping.yaml +++ b/Specification/Generated/BrAPI-Phenotyping.yaml @@ -465,6 +465,8 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" post: tags: - Observations @@ -488,6 +490,8 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /observationunits: get: tags: @@ -718,180 +722,6 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" - /variables: - get: - tags: - - ObservationVariables - summary: Get a filtered list of ObservationVariable - description: Get a list of ObservationVariable - parameters: - - name: observationVariableDbId - in: query - description: The DbIds of Variables to search for - required: false - schema: - type: string - - name: observationVariableName - in: query - description: The names of Variables to search for - required: false - schema: - type: string - - name: observationVariablePUI - in: query - description: "The Permanent Unique Identifier of an Observation Variable,\ - \ usually in the form of a URI" - required: false - schema: - type: string - - name: commonCropName - in: query - description: "The BrAPI Common Crop Name is the simple, generalized, widely\ - \ accepted name of the organism being researched. It is most often used\ - \ in multi-crop systems where digital resources need to be divided at a\ - \ high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common\ - \ crop names.\n\nUse this parameter to only return results associated with\ - \ the given crops. \n\nUse `GET /commoncropnames` to find the list of available\ - \ crops on a server." - required: false - schema: - type: string - - name: programDbId - in: query - description: "A BrAPI Program represents the high level organization or group\ - \ who is responsible for conducting trials and studies. Things like Breeding\ - \ Programs and Funded Projects are considered BrAPI Programs. \n\nUse this\ - \ parameter to only return results associated with the given programs. \n\ - \nUse `GET /programs` to find the list of available programs on a server." - required: false - schema: - type: string - - name: trialDbId - in: query - description: The ID which uniquely identifies a trial to search for - required: false - schema: - type: string - - name: studyDbId - in: query - description: "**Deprecated in v2.1** Please use `studyDbIds`. Github issue\ - \ number #483 \n
The unique ID of a studies to filter on" - required: false - schema: - type: string - - name: ontologyDbId - in: query - description: List of ontology IDs to search for - required: false - schema: - type: string - - name: methodDbId - in: query - description: List of methods to filter search results - required: false - schema: - type: string - - name: methodName - in: query - description: |- - Human readable name for the method -
MIAPPE V1.1 (DM-88) Method Name of the method of observation - required: false - schema: - type: string - - name: methodPUI - in: query - description: "The Permanent Unique Identifier of a Method, usually in the\ - \ form of a URI" - required: false - schema: - type: string - - name: scaleDbId - in: query - description: The unique identifier for a Scale - required: false - schema: - type: string - - name: scaleName - in: query - description: |- - Name of the scale -
MIAPPE V1.1 (DM-92) Scale Name of the scale associated with the variable - required: false - schema: - type: string - - name: scalePUI - in: query - description: "The Permanent Unique Identifier of a Scale, usually in the form\ - \ of a URI" - required: false - schema: - type: string - - name: traitClass - in: query - description: List of trait classes to filter search results - required: false - schema: - type: string - - name: traitDbId - in: query - description: The unique identifier for a Trait - required: false - schema: - type: string - - name: traitName - in: query - description: |- - The human readable name of a trait -
MIAPPE V1.1 (DM-86) Trait - Name of the (plant or environmental) trait under observation - required: false - schema: - type: string - - name: traitPUI - in: query - description: "The Permanent Unique Identifier of a Trait, usually in the form\ - \ of a URI" - required: false - schema: - type: string - - $ref: "#/components/parameters/externalReferenceId" - - $ref: "#/components/parameters/externalReferenceID" - - $ref: "#/components/parameters/externalReferenceSource" - - $ref: "#/components/parameters/page" - - $ref: "#/components/parameters/pageSize" - - $ref: "#/components/parameters/authorizationHeader" - responses: - "200": - $ref: "#/components/responses/ObservationVariableListResponse" - "400": - $ref: "#/components/responses/400BadRequest" - "401": - $ref: "#/components/responses/401Unauthorized" - "403": - $ref: "#/components/responses/403Forbidden" - post: - tags: - - ObservationVariables - summary: Create new ObservationVariable - description: Add new ObservationVariable to database - parameters: - - $ref: "#/components/parameters/authorizationHeader" - requestBody: - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/ObservationVariableNewRequest" - responses: - "200": - $ref: "#/components/responses/ObservationVariableListResponse" - "400": - $ref: "#/components/responses/400BadRequest" - "401": - $ref: "#/components/responses/401Unauthorized" - "403": - $ref: "#/components/responses/403Forbidden" /ontologies: get: tags: @@ -1176,6 +1006,37 @@ paths: $ref: "#/components/responses/403Forbidden" "404": $ref: "#/components/responses/404NotFound" + /images/{imageDbId}/imagecontent: + put: + tags: + - Images + summary: Update the details for an existing string + description: Update the details for an existing string + parameters: + - $ref: "#/components/parameters/authorizationHeader" + - name: imageDbId + in: path + description: The unique identifier of an image + required: true + schema: + type: string + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "200": + $ref: "#/components/responses/ImageSingleResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /methods/{methodDbId}: get: tags: @@ -1255,26 +1116,27 @@ paths: $ref: "#/components/responses/403Forbidden" "404": $ref: "#/components/responses/404NotFound" - /observationunits/{observationUnitDbId}: - get: + put: tags: - - ObservationUnits - summary: Get the details of a specific ObservationUnit - description: Get details for a ObservationUnit + - Observations + summary: Update the details for an existing Observation + description: Update the details for an existing Observation parameters: - $ref: "#/components/parameters/authorizationHeader" - - name: observationUnitDbId + - name: observationDbId in: path - description: "The ID which uniquely identifies an observation unit\n\nMIAPPE\ - \ V1.1 (DM-70) Observation unit ID - Identifier used to identify the observation\ - \ unit in data files containing the values observed or measured on that\ - \ unit. Must be locally unique. " + description: The ID which uniquely identifies an observation required: true schema: type: string + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ObservationNewRequest" responses: "200": - $ref: "#/components/responses/ObservationUnitSingleResponse" + $ref: "#/components/responses/ObservationSingleResponse" "400": $ref: "#/components/responses/400BadRequest" "401": @@ -1283,26 +1145,26 @@ paths: $ref: "#/components/responses/403Forbidden" "404": $ref: "#/components/responses/404NotFound" - /variables/{observationVariableDbId}: + /observationunits/{observationUnitDbId}: get: tags: - - ObservationVariables - summary: Get the details of a specific ObservationVariable - description: Get details for a ObservationVariable + - ObservationUnits + summary: Get the details of a specific ObservationUnit + description: Get details for a ObservationUnit parameters: - $ref: "#/components/parameters/authorizationHeader" - - name: observationVariableDbId + - name: observationUnitDbId in: path - description: |- - Variable unique identifier - - MIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation. + description: "The ID which uniquely identifies an observation unit\n\nMIAPPE\ + \ V1.1 (DM-70) Observation unit ID - Identifier used to identify the observation\ + \ unit in data files containing the values observed or measured on that\ + \ unit. Must be locally unique. " required: true schema: type: string responses: "200": - $ref: "#/components/responses/ObservationVariableSingleResponse" + $ref: "#/components/responses/ObservationUnitSingleResponse" "400": $ref: "#/components/responses/400BadRequest" "401": @@ -1313,17 +1175,17 @@ paths: $ref: "#/components/responses/404NotFound" put: tags: - - ObservationVariables - summary: Update the details for an existing ObservationVariable - description: Update the details for an existing ObservationVariable + - ObservationUnits + summary: Update the details for an existing ObservationUnit + description: Update the details for an existing ObservationUnit parameters: - $ref: "#/components/parameters/authorizationHeader" - - name: observationVariableDbId + - name: observationUnitDbId in: path - description: |- - Variable unique identifier - - MIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation. + description: "The ID which uniquely identifies an observation unit\n\nMIAPPE\ + \ V1.1 (DM-70) Observation unit ID - Identifier used to identify the observation\ + \ unit in data files containing the values observed or measured on that\ + \ unit. Must be locally unique. " required: true schema: type: string @@ -1331,10 +1193,10 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ObservationVariableNewRequest" + $ref: "#/components/schemas/ObservationUnitNewRequest" responses: "200": - $ref: "#/components/responses/ObservationVariableSingleResponse" + $ref: "#/components/responses/ObservationUnitSingleResponse" "400": $ref: "#/components/responses/400BadRequest" "401": @@ -1507,18 +1369,12 @@ paths: $ref: "#/components/responses/403Forbidden" "404": $ref: "#/components/responses/404NotFound" - /search/images: + /delete/images: post: tags: - Images - summary: Submit a search request for `Image` - description: "Submit a search request for `Image`
\nSearch requests allow\ - \ a client to send a complex query for data. However, the server may not respond\ - \ with the search results immediately. \nIf a server needs more time to process\ - \ the request, it might respond with a `searchResultsDbId`. \nUse the corresponding\ - \ `GET /search/image/{searchResultsDbId}` to retrieve the results of the search.\ - \
\nReview the Search Services documentation for additional implementation details." + summary: Submit a delete request for `Images` + description: Submit a delete request for `Images` parameters: - $ref: "#/components/parameters/authorizationHeader" requestBody: @@ -1528,28 +1384,19 @@ paths: $ref: "#/components/schemas/ImageSearchRequest" responses: "200": - $ref: "#/components/responses/ImageListResponse" - "202": - $ref: "#/components/responses/202AcceptedSearchResponse" + $ref: "#/components/responses/ImageDeleteResponse" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" - /search/observations: + /delete/observations: post: tags: - Observations - summary: Submit a search request for `Observation` - description: "Submit a search request for `Observation`
\nSearch requests\ - \ allow a client to send a complex query for data. However, the server may\ - \ not respond with the search results immediately. \nIf a server needs more\ - \ time to process the request, it might respond with a `searchResultsDbId`.\ - \ \nUse the corresponding `GET /search/observation/{searchResultsDbId}` to\ - \ retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details." + summary: Submit a delete request for `Observations` + description: Submit a delete request for `Observations` parameters: - $ref: "#/components/parameters/authorizationHeader" requestBody: @@ -1559,38 +1406,393 @@ paths: $ref: "#/components/schemas/ObservationSearchRequest" responses: "200": - $ref: "#/components/responses/ObservationListResponse" - "202": - $ref: "#/components/responses/202AcceptedSearchResponse" + $ref: "#/components/responses/ObservationDeleteResponse" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" - /search/observationunits: - post: + /observations/table: + get: tags: - - ObservationUnits - summary: Submit a search request for `ObservationUnit` - description: "Submit a search request for `ObservationUnit`
\nSearch requests\ - \ allow a client to send a complex query for data. However, the server may\ - \ not respond with the search results immediately. \nIf a server needs more\ - \ time to process the request, it might respond with a `searchResultsDbId`.\ - \ \nUse the corresponding `GET /search/observationUnit/{searchResultsDbId}`\ - \ to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details." + - Observations + summary: Get a table of `Observation` records as a CSV file. + description: Get a table of `Observation` records returned directly as CSV text. parameters: - - $ref: "#/components/parameters/authorizationHeader" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ObservationUnitSearchRequest" - responses: - "200": - $ref: "#/components/responses/ObservationUnitListResponse" + - name: germplasmDbId + in: query + description: List of IDs which uniquely identify germplasm to search for + required: false + schema: + type: string + - name: locationDbId + in: query + description: The location ids to search for + required: false + schema: + type: string + - name: observationVariableDbId + in: query + description: The DbIds of Variables to search for + required: false + schema: + type: string + - name: programDbId + in: query + description: "A BrAPI Program represents the high level organization or group\ + \ who is responsible for conducting trials and studies. Things like Breeding\ + \ Programs and Funded Projects are considered BrAPI Programs. \n\nUse this\ + \ parameter to only return results associated with the given programs. \n\ + \nUse `GET /programs` to find the list of available programs on a server." + required: false + schema: + type: string + - name: studyDbId + in: query + description: List of study identifiers to search for + required: false + schema: + type: string + - name: trialDbId + in: query + description: The ID which uniquely identifies a trial to search for + required: false + schema: + type: string + - name: observationUnitDbId + in: query + description: The unique id of an Observation Unit + required: false + schema: + type: string + - name: observationLevel + in: query + description: Searches for values in ObservationUnit->observationUnitPosition->observationLevel + required: false + schema: + type: string + - name: observationUnitLevelName + in: query + description: "The Observation Unit Level. Returns only the observation unit\ + \ of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName\ + \ \n
**Standard Level Names: study, field, entry, rep, block, sub-block,\ + \ plot, sub-plot, plant, pot, sample** \n
For more information on Observation\ + \ Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelOrder + in: query + description: "The Observation Unit Level Order Number. Returns only the observation\ + \ unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelCode + in: query + description: "The Observation Unit Level Code. This parameter should be used\ + \ together with `observationUnitLevelName` \nor `observationUnitLevelOrder`.\ + \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipName + in: query + description: "The Observation Unit Level Relationship is a connection that\ + \ this observation unit has to another level of the hierarchy. \n
For\ + \ example, if you have several observation units at a 'plot' level, they\ + \ might all share a relationship to the same 'field' level. \n
Use\ + \ this parameter to identify groups of observation units that share a relationship\ + \ level. \n
**Standard Level Names: study, field, entry, rep, block,\ + \ sub-block, plot, sub-plot, plant, pot, sample** \n
For more information\ + \ on Observation Levels, please review the Observation Levels\ + \ documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipOrder + in: query + description: "The Observation Unit Level Order Number. \n
Returns only\ + \ the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipCode + in: query + description: "The Observation Unit Level Code. \n
This parameter should\ + \ be used together with `observationUnitLevelName` or `observationUnitLevelOrder`.\ + \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipDbId + in: query + description: "The observationUnitDbId associated with a particular level and\ + \ code.\n
This parameter should be used together with `observationUnitLevelName`\ + \ or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationTimeStampRangeEnd + in: query + description: Timestamp range end + required: false + schema: + type: string + format: date-time + - name: observationTimeStampRangeStart + in: query + description: Timestamp range start + required: false + schema: + type: string + format: date-time + - name: seasonDbId + in: query + description: "The year or Phenotyping campaign of a multi-annual study (trees,\ + \ grape, ...)" + required: false + schema: + type: string + - $ref: "#/components/parameters/acceptHeader" + - $ref: "#/components/parameters/authorizationHeader" + responses: + "200": + $ref: "#/components/responses/ObservationTableResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + /observationunits/table: + get: + tags: + - ObservationUnits + summary: Get a table of `ObservationUnit` records as a CSV file. + description: Get a table of `ObservationUnit` records returned directly as CSV + text. + parameters: + - name: germplasmDbId + in: query + description: List of IDs which uniquely identify germplasm to search for + required: false + schema: + type: string + - name: locationDbId + in: query + description: The location ids to search for + required: false + schema: + type: string + - name: studyDbId + in: query + description: List of study identifiers to search for + required: false + schema: + type: string + - name: observationVariableDbId + in: query + description: The DbIds of Variables to search for + required: false + schema: + type: string + - name: programDbId + in: query + description: "A BrAPI Program represents the high level organization or group\ + \ who is responsible for conducting trials and studies. Things like Breeding\ + \ Programs and Funded Projects are considered BrAPI Programs. \n\nUse this\ + \ parameter to only return results associated with the given programs. \n\ + \nUse `GET /programs` to find the list of available programs on a server." + required: false + schema: + type: string + - name: trialDbId + in: query + description: The ID which uniquely identifies a trial to search for + required: false + schema: + type: string + - name: observationUnitDbId + in: query + description: The unique id of an observation unit + required: false + schema: + type: string + - name: observationLevel + in: query + description: Searches for values in ObservationUnit->observationUnitPosition->observationLevel + required: false + schema: + type: string + - name: observationUnitLevelName + in: query + description: "The Observation Unit Level. Returns only the observation unit\ + \ of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName\ + \ \n
**Standard Level Names: study, field, entry, rep, block, sub-block,\ + \ plot, sub-plot, plant, pot, sample** \n
For more information on Observation\ + \ Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelOrder + in: query + description: "The Observation Unit Level Order Number. Returns only the observation\ + \ unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelCode + in: query + description: "The Observation Unit Level Code. This parameter should be used\ + \ together with `observationUnitLevelName` \nor `observationUnitLevelOrder`.\ + \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipName + in: query + description: "The Observation Unit Level Relationship is a connection that\ + \ this observation unit has to another level of the hierarchy. \n
For\ + \ example, if you have several observation units at a 'plot' level, they\ + \ might all share a relationship to the same 'field' level. \n
Use\ + \ this parameter to identify groups of observation units that share a relationship\ + \ level. \n
**Standard Level Names: study, field, entry, rep, block,\ + \ sub-block, plot, sub-plot, plant, pot, sample** \n
For more information\ + \ on Observation Levels, please review the Observation Levels\ + \ documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipOrder + in: query + description: "The Observation Unit Level Order Number. \n
Returns only\ + \ the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipCode + in: query + description: "The Observation Unit Level Code. \n
This parameter should\ + \ be used together with `observationUnitLevelName` or `observationUnitLevelOrder`.\ + \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: observationUnitLevelRelationshipDbId + in: query + description: "The observationUnitDbId associated with a particular level and\ + \ code.\n
This parameter should be used together with `observationUnitLevelName`\ + \ or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId\ + \ \n
For more information on Observation Levels, please review the Observation Levels documentation. " + required: false + schema: + type: string + - name: seasonDbId + in: query + description: "The year or Phenotyping campaign of a multi-annual study (trees,\ + \ grape, ...)" + required: false + schema: + type: string + - $ref: "#/components/parameters/acceptHeader" + - $ref: "#/components/parameters/authorizationHeader" + responses: + "200": + $ref: "#/components/responses/ObservationUnitTableResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + /search/images: + post: + tags: + - Images + summary: Submit a search request for `Image` + description: "Submit a search request for `Image`
\nSearch requests allow\ + \ a client to send a complex query for data. However, the server may not respond\ + \ with the search results immediately. \nIf a server needs more time to process\ + \ the request, it might respond with a `searchResultsDbId`. \nUse the corresponding\ + \ `GET /search/image/{searchResultsDbId}` to retrieve the results of the search.\ + \
\nReview the Search Services documentation for additional implementation details." + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ImageSearchRequest" + responses: + "200": + $ref: "#/components/responses/ImageListResponse" + "202": + $ref: "#/components/responses/202AcceptedSearchResponse" + "400": + $ref: "#/components/responses/400BadRequest" + "401": + $ref: "#/components/responses/401Unauthorized" + "403": + $ref: "#/components/responses/403Forbidden" + /search/observations: + post: + tags: + - Observations + summary: Submit a search request for `Observation` + description: "Submit a search request for `Observation`
\nSearch requests\ + \ allow a client to send a complex query for data. However, the server may\ + \ not respond with the search results immediately. \nIf a server needs more\ + \ time to process the request, it might respond with a `searchResultsDbId`.\ + \ \nUse the corresponding `GET /search/observation/{searchResultsDbId}` to\ + \ retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details." + parameters: + - $ref: "#/components/parameters/authorizationHeader" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ObservationSearchRequest" + responses: + "200": + $ref: "#/components/responses/ObservationListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" "400": @@ -1599,16 +1801,16 @@ paths: $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" - /search/variables: + /search/observationunits: post: tags: - - ObservationVariables - summary: Submit a search request for `ObservationVariable` - description: "Submit a search request for `ObservationVariable`
\nSearch\ - \ requests allow a client to send a complex query for data. However, the server\ - \ may not respond with the search results immediately. \nIf a server needs\ - \ more time to process the request, it might respond with a `searchResultsDbId`.\ - \ \nUse the corresponding `GET /search/observationVariable/{searchResultsDbId}`\ + - ObservationUnits + summary: Submit a search request for `ObservationUnit` + description: "Submit a search request for `ObservationUnit`
\nSearch requests\ + \ allow a client to send a complex query for data. However, the server may\ + \ not respond with the search results immediately. \nIf a server needs more\ + \ time to process the request, it might respond with a `searchResultsDbId`.\ + \ \nUse the corresponding `GET /search/observationUnit/{searchResultsDbId}`\ \ to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details." @@ -1618,10 +1820,10 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ObservationVariableSearchRequest" + $ref: "#/components/schemas/ObservationUnitSearchRequest" responses: "200": - $ref: "#/components/responses/ObservationVariableListResponse" + $ref: "#/components/responses/ObservationUnitListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" "400": @@ -1664,14 +1866,14 @@ paths: $ref: "#/components/responses/ImageListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/observations/{searchResultsDbId}: get: tags: @@ -1706,14 +1908,14 @@ paths: $ref: "#/components/responses/ObservationListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" + "404": + $ref: "#/components/responses/404NotFound" /search/observationunits/{searchResultsDbId}: get: tags: @@ -1749,57 +1951,14 @@ paths: $ref: "#/components/responses/ObservationUnitListResponse" "202": $ref: "#/components/responses/202AcceptedSearchResponse" - "404": - $ref: "#/components/responses/404NotFound" "400": $ref: "#/components/responses/400BadRequest" "401": $ref: "#/components/responses/401Unauthorized" "403": $ref: "#/components/responses/403Forbidden" - /search/variables/{searchResultsDbId}: - get: - tags: - - ObservationVariables - summary: "Submit a search request for `ObservationVariable`
\nSearch requests\ - \ allow a client to send a complex query for data. However, the server may\ - \ not respond with the search results immediately. \nIf a server needs more\ - \ time to process the request, it might respond with a `searchResultsDbId`.\ - \ \nUse the corresponding `GET /search/observationVariable/{searchResultsDbId}`\ - \ to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details." - description: "Get the results of a `ObservationVariable` search request
\n\ - Clients should submit a search request using the corresponding `POST /search/observationVariable`\ - \ endpoint.\nSearch requests allow a client to send a complex query for data.\ - \ However, the server may not respond with the search results immediately.\ - \ \nIf a server needs more time to process the request, it might respond with\ - \ a `searchResultsDbId`. \nUse this endpoint to retrieve the results of the\ - \ search.
\nReview the Search Services documentation for additional implementation details." - parameters: - - name: searchResultsDbId - in: path - description: searchResultsDbId - required: true - schema: - type: string - - $ref: "#/components/parameters/page" - - $ref: "#/components/parameters/pageSize" - - $ref: "#/components/parameters/authorizationHeader" - responses: - "200": - $ref: "#/components/responses/ObservationVariableListResponse" - "202": - $ref: "#/components/responses/202AcceptedSearchResponse" "404": $ref: "#/components/responses/404NotFound" - "400": - $ref: "#/components/responses/400BadRequest" - "401": - $ref: "#/components/responses/401Unauthorized" - "403": - $ref: "#/components/responses/403Forbidden" components: schemas: AdditionalInfo: @@ -1842,19 +2001,21 @@ components: items: type: string dataMatrixAbbreviations: - type: string - description: "`dataMatrixAbbreviations` is a comma separated list of abbreviations\ - \ (ie 'GT', 'RD' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT',\ + \ 'RD' etc). This list controls which data matrices are returned in the\ + \ response." nullable: true - example: "GT,RD" + items: + type: string dataMatrixNames: - type: string - description: "`dataMatrixNames` is a comma separated list of names (ie 'Genotype',\ - \ 'Read Depth' etc). This list controls which data matrices are returned\ - \ in the response." + type: array + description: "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read\ + \ Depth' etc). This list controls which data matrices are returned in\ + \ the response." nullable: true - example: "Genotype,Read Depth" + items: + type: string dimensionCallSetPage: type: integer description: The requested page number for the CallSet dimension of the @@ -2058,9 +2219,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -2750,7 +2911,8 @@ components: nullable: true GeoJSONGeometry: type: object - nullable: true + discriminator: + propertyName: type oneOf: - required: - coordinates @@ -3304,6 +3466,28 @@ components: description: The human readable name of a trial to search for items: type: string + HeaderRow: + type: string + description: valid header fields + enum: + - observationTimeStamp + - observationUnitDbId + - observationUnitName + - studyDbId + - studyName + - germplasmDbId + - germplasmName + - positionCoordinateX + - positionCoordinateY + - year + - field + - plot + - sub-plot + - plant + - pot + - block + - entry + - rep Image: allOf: - $ref: "#/components/schemas/ImageNewRequest" @@ -3383,10 +3567,18 @@ components: format: int32 nullable: true mimeType: + pattern: image/.* type: string description: "The file type of the image. Examples 'image/jpeg', 'image/png',\ \ 'image/svg', etc" nullable: true + observationDbIds: + type: array + description: "A list of observation Ids this image is associated with, if\ + \ applicable." + nullable: true + items: + type: string observationUnitDbId: type: string nullable: true @@ -3719,7 +3911,9 @@ components: items: type: string listType: - $ref: "#/components/schemas/ListType" + nullable: true + allOf: + - $ref: "#/components/schemas/ListType" programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -4066,16 +4260,14 @@ components: observationUnitName: type: string nullable: true - observationVariableDbId: - type: string - nullable: true - observationVariableName: - type: string + observationVariable: nullable: true + allOf: + - $ref: "#/components/schemas/ObservationVariable" season: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/Season" - - type: "null" studyDbId: type: string nullable: true @@ -4460,6 +4652,77 @@ components: type: string description: A value assigned for a specific ObservationVariable when observing a specific ObservationUnit. + ObservationTable: + type: object + properties: + data: + type: array + description: "The 2D matrix of observation data. ObservationVariables and\ + \ other metadata are the columns, ObservationUnits are the rows." + items: + type: array + items: + type: string + headerRow: + type: array + description: "

The table is REQUIRED to have the following columns

\n\ +
    \n
  • observationUnitDbId - Each row is related to one Observation\ + \ Unit
  • \n
  • observationTimeStamp - Each row is has a time stamp\ + \ for when the observation was taken
  • \n
  • At least one column with\ + \ an observationVariableDbId
  • \n
\n

The table may have any or\ + \ all of the following OPTIONAL columns. Included columns are decided\ + \ by the server developer

\n
    \n
  • observationUnitName
  • \n\ + \
  • studyDbId
  • \n
  • studyName
  • \n
  • germplasmDbId
  • \n\ + \
  • germplasmName
  • \n
  • positionCoordinateX
  • \n
  • positionCoordinateY
  • \n\ + \
  • year
  • \n
\n

The table also may have any number of Observation\ + \ Unit Hierarchy Level columns. For example:

\n
    \n
  • field
  • \n\ + \
  • plot
  • \n
  • sub-plot
  • \n
  • plant
  • \n
  • pot
  • \n\ + \
  • block
  • \n
  • entry
  • \n
  • rep
  • \n
\n

The JSON\ + \ representation provides a pair of extra arrays for defining the headers\ + \ of the table. \nThe first array \"headerRow\" will always contain \"\ + observationUnitDbId\" and any or all of the OPTIONAL column header names.\ + \ \nThe second array \"observationVariables\" contains the names and DbIds\ + \ for the Observation Variables represented in the table. \nBy appending\ + \ the two arrays, you can construct the complete header row of the table.\ + \

" + items: + type: string + description: valid header fields + enum: + - observationTimeStamp + - observationUnitDbId + - observationUnitName + - studyDbId + - studyName + - germplasmDbId + - germplasmName + - positionCoordinateX + - positionCoordinateY + - year + - field + - plot + - sub-plot + - plant + - pot + - block + - entry + - rep + observationVariables: + type: array + description: The list of observation variables which have values recorded + for them in the data matrix. Append to the 'headerRow' for complete header + row of the table. + items: + type: object + properties: + observationVariableDbId: + type: string + description: Variable unique identifier + example: 367aa1a9 + observationVariableName: + type: string + description: Variable name (usually a short name) + example: Plant height ObservationTreatment: type: object properties: @@ -4532,6 +4795,47 @@ components: \ associated observed variable (see observed variables). \nAlternatively,\ \ it is possible to use samples for more detailed tracing of sub-plant units,\ \ attaching the observations to them instead.\" " + ObservationUnitHierarchyLevelRequest: + type: object + properties: + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + trialDbIds: + type: array + description: The ID which uniquely identifies a trial to search for + items: + type: string + trialNames: + type: array + description: The human readable name of a trial to search for + items: + type: string ObservationUnitLevel: type: object properties: @@ -4713,259 +5017,47 @@ components: - TEST - FILLER geoCoordinates: - type: array - description: |- - One geometry as defined by GeoJSON (RFC 7946). All coordinates are decimal values on the WGS84 geographic coordinate reference system. - - Copied from RFC 7946 Section 3.1.1 - - A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or - easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. - nullable: true - items: - $ref: "#/components/schemas/GeoJSON" + $ref: "#/components/schemas/GeoJSON" observationLevel: $ref: "#/components/schemas/ObservationUnitLevel" observationLevelRelationships: type: array - description: "Observation levels indicate the granularity level at which\ - \ the measurements are taken. `levelName` \ndefines the level, `levelOrder`\ - \ defines where that level exists in the hierarchy of levels. \n`levelOrder`s\ - \ lower numbers are at the top of the hierarchy (ie field > 0) and higher\ - \ numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode`\ - \ is an ID code for this level tag. Identify \nthis observation unit by\ - \ each level of the hierarchy where it exists. \n\nFor more information\ - \ on Observation Levels, please review the Observation Levels\ - \ documentation. \n\n**Standard Level Names: study, field, entry,\ - \ rep, block, sub-block, plot, sub-plot, plant, pot, sample** " - nullable: true - items: - $ref: "#/components/schemas/ObservationUnitLevelRelationship" - positionCoordinateX: - type: string - description: The X position coordinate for an observation unit. Different - systems may use different coordinate systems. - nullable: true - positionCoordinateXType: - anyOf: - - $ref: "#/components/schemas/PositionCoordinateType" - - type: "null" - positionCoordinateY: - type: string - description: The Y position coordinate for an observation unit. Different - systems may use different coordinate systems. - nullable: true - positionCoordinateYType: - anyOf: - - $ref: "#/components/schemas/PositionCoordinateType" - - type: "null" - description: All positional and layout information related to this Observation - Unit - nullable: true - ObservationUnitRequest: - type: object - properties: - commonCropNames: - type: array - description: "The BrAPI Common Crop Name is the simple, generalized, widely\ - \ accepted name of the organism being researched. It is most often used\ - \ in multi-crop systems where digital resources need to be divided at\ - \ a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples\ - \ of common crop names.\n\nUse this parameter to only return results associated\ - \ with the given crops. \n\nUse `GET /commoncropnames` to find the list\ - \ of available crops on a server." - items: - type: string - germplasmDbIds: - type: array - description: List of IDs which uniquely identify germplasm to search for - nullable: true - items: - type: string - germplasmNames: - type: array - description: List of human readable names to identify germplasm to search - for - nullable: true - items: - type: string - includeObservations: - type: boolean - description: "Use this parameter to include a list of observations embedded\ - \ in each ObservationUnit object. \n\nCAUTION - Use this parameter at\ - \ your own risk. It may return large, unpaginated lists of observation\ - \ data. Only set this value to True if you are sure you need to." - nullable: true - example: false - locationDbIds: - type: array - description: The location ids to search for - items: - type: string - locationNames: - type: array - description: A human readable names to search for - items: - type: string - observationLevelRelationships: - type: array - description: Searches for values in ObservationUnit->observationUnitPosition->observationLevelRelationships - nullable: true - items: - $ref: "#/components/schemas/ObservationUnitLevelRelationship" - observationLevels: - type: array - description: Searches for values in ObservationUnit->observationUnitPosition->observationLevel - nullable: true - items: - $ref: "#/components/schemas/ObservationUnitLevel" - observationUnitDbIds: - type: array - description: The unique id of an observation unit - nullable: true - items: - type: string - observationUnitLevelCodes: - type: array - description: "The Observation Unit Level Code. This parameter should be\ - \ used together with `observationUnitLevelName` \nor `observationUnitLevelOrder`.\ - \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ - \ \n
For more information on Observation Levels, please review the\ - \ Observation Levels documentation. " - items: - type: string - observationUnitLevelNames: - type: array - description: "The Observation Unit Level. Returns only the observation unit\ - \ of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName\ - \ \n
**Standard Level Names: study, field, entry, rep, block, sub-block,\ - \ plot, sub-plot, plant, pot, sample** \n
For more information on\ - \ Observation Levels, please review the Observation Levels documentation. " - items: - type: string - observationUnitLevelOrders: - type: array - description: "The Observation Unit Level Order Number. Returns only the\ - \ observation unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ - \ \n
For more information on Observation Levels, please review the\ - \ Observation Levels documentation. " - items: - type: string - observationUnitLevelRelationshipCodes: - type: array - description: "The Observation Unit Level Code. \n
This parameter should\ - \ be used together with `observationUnitLevelName` or `observationUnitLevelOrder`.\ - \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ - \ \n
For more information on Observation Levels, please review the\ - \ Observation Levels documentation. " - items: - type: string - observationUnitLevelRelationshipDbIds: - type: array - description: "The observationUnitDbId associated with a particular level\ - \ and code.\n
This parameter should be used together with `observationUnitLevelName`\ - \ or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId\ - \ \n
For more information on Observation Levels, please review the\ - \ Observation Levels documentation. " - items: - type: string - observationUnitLevelRelationshipNames: - type: array - description: "The Observation Unit Level Relationship is a connection that\ - \ this observation unit has to another level of the hierarchy. \n
For\ - \ example, if you have several observation units at a 'plot' level, they\ - \ might all share a relationship to the same 'field' level. \n
Use\ - \ this parameter to identify groups of observation units that share a\ - \ relationship level. \n
**Standard Level Names: study, field, entry,\ - \ rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For\ - \ more information on Observation Levels, please review the Observation Levels documentation. " - items: - type: string - observationUnitLevelRelationshipOrders: - type: array - description: "The Observation Unit Level Order Number. \n
Returns only\ - \ the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ - \ \n
For more information on Observation Levels, please review the\ - \ Observation Levels documentation. " - items: - type: string - observationUnitNames: - type: array - description: The human readable identifier for an Observation Unit - nullable: true - items: - type: string - observationVariableDbIds: - type: array - description: The DbIds of Variables to search for - items: - type: string - observationVariableNames: - type: array - description: The names of Variables to search for - items: - type: string - observationVariablePUIs: - type: array - description: "The Permanent Unique Identifier of an Observation Variable,\ - \ usually in the form of a URI" - items: - type: string - programDbIds: - type: array - description: "A BrAPI Program represents the high level organization or\ - \ group who is responsible for conducting trials and studies. Things like\ - \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ - \ \n\nUse this parameter to only return results associated with the given\ - \ programs. \n\nUse `GET /programs` to find the list of available programs\ - \ on a server." - items: - type: string - programNames: - type: array - description: |- - Use this parameter to only return results associated with the given program names. Program names are not required to be unique. - - Use `GET /programs` to find the list of available programs on a server. - items: - type: string - seasonDbIds: - type: array - description: "The year or Phenotyping campaign of a multi-annual study (trees,\ - \ grape, ...)" - nullable: true - items: - type: string - studyDbIds: - type: array - description: List of study identifiers to search for - items: - type: string - studyNames: - type: array - description: List of study names to filter search results - items: - type: string - trialDbIds: - type: array - description: The ID which uniquely identifies a trial to search for - items: - type: string - trialNames: - type: array - description: The human readable name of a trial to search for + description: "Observation levels indicate the granularity level at which\ + \ the measurements are taken. `levelName` \ndefines the level, `levelOrder`\ + \ defines where that level exists in the hierarchy of levels. \n`levelOrder`s\ + \ lower numbers are at the top of the hierarchy (ie field > 0) and higher\ + \ numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode`\ + \ is an ID code for this level tag. Identify \nthis observation unit by\ + \ each level of the hierarchy where it exists. \n\nFor more information\ + \ on Observation Levels, please review the Observation Levels\ + \ documentation. \n\n**Standard Level Names: study, field, entry,\ + \ rep, block, sub-block, plot, sub-plot, plant, pot, sample** " + nullable: true items: - type: string - ObservationUnitSearchRequest: + $ref: "#/components/schemas/ObservationUnitLevelRelationship" + positionCoordinateX: + type: string + description: The X position coordinate for an observation unit. Different + systems may use different coordinate systems. + nullable: true + positionCoordinateXType: + nullable: true + allOf: + - $ref: "#/components/schemas/PositionCoordinateType" + positionCoordinateY: + type: string + description: The Y position coordinate for an observation unit. Different + systems may use different coordinate systems. + nullable: true + positionCoordinateYType: + nullable: true + allOf: + - $ref: "#/components/schemas/PositionCoordinateType" + description: All positional and layout information related to this Observation + Unit + nullable: true + ObservationUnitRequest: type: object properties: commonCropNames: @@ -4979,27 +5071,6 @@ components: \ of available crops on a server." items: type: string - externalReferenceIDs: - type: array - description: "**Deprecated in v2.1** Please use `externalReferenceIds`.\ - \ Github issue number #460 \n
List of external reference IDs. Could\ - \ be a simple strings or a URIs. (use with `externalReferenceSources`\ - \ parameter)" - deprecated: true - items: - type: string - externalReferenceIds: - type: array - description: List of external reference IDs. Could be a simple strings or - a URIs. (use with `externalReferenceSources` parameter) - items: - type: string - externalReferenceSources: - type: array - description: List of identifiers for the source system or database of an - external reference (use with `externalReferenceIDs` parameter) - items: - type: string germplasmDbIds: type: array description: List of IDs which uniquely identify germplasm to search for @@ -5049,6 +5120,78 @@ components: nullable: true items: type: string + observationUnitLevelCodes: + type: array + description: "The Observation Unit Level Code. This parameter should be\ + \ used together with `observationUnitLevelName` \nor `observationUnitLevelOrder`.\ + \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ + \ \n
For more information on Observation Levels, please review the\ + \ Observation Levels documentation. " + items: + type: string + observationUnitLevelNames: + type: array + description: "The Observation Unit Level. Returns only the observation unit\ + \ of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName\ + \ \n
**Standard Level Names: study, field, entry, rep, block, sub-block,\ + \ plot, sub-plot, plant, pot, sample** \n
For more information on\ + \ Observation Levels, please review the Observation Levels documentation. " + items: + type: string + observationUnitLevelOrders: + type: array + description: "The Observation Unit Level Order Number. Returns only the\ + \ observation unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ + \ \n
For more information on Observation Levels, please review the\ + \ Observation Levels documentation. " + items: + type: string + observationUnitLevelRelationshipCodes: + type: array + description: "The Observation Unit Level Code. \n
This parameter should\ + \ be used together with `observationUnitLevelName` or `observationUnitLevelOrder`.\ + \ References ObservationUnit->observationUnitPosition->observationLevel->levelCode\ + \ \n
For more information on Observation Levels, please review the\ + \ Observation Levels documentation. " + items: + type: string + observationUnitLevelRelationshipDbIds: + type: array + description: "The observationUnitDbId associated with a particular level\ + \ and code.\n
This parameter should be used together with `observationUnitLevelName`\ + \ or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId\ + \ \n
For more information on Observation Levels, please review the\ + \ Observation Levels documentation. " + items: + type: string + observationUnitLevelRelationshipNames: + type: array + description: "The Observation Unit Level Relationship is a connection that\ + \ this observation unit has to another level of the hierarchy. \n
For\ + \ example, if you have several observation units at a 'plot' level, they\ + \ might all share a relationship to the same 'field' level. \n
Use\ + \ this parameter to identify groups of observation units that share a\ + \ relationship level. \n
**Standard Level Names: study, field, entry,\ + \ rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For\ + \ more information on Observation Levels, please review the Observation Levels documentation. " + items: + type: string + observationUnitLevelRelationshipOrders: + type: array + description: "The Observation Unit Level Order Number. \n
Returns only\ + \ the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder\ + \ \n
For more information on Observation Levels, please review the\ + \ Observation Levels documentation. " + items: + type: string observationUnitNames: type: array description: The human readable identifier for an Observation Unit @@ -5071,17 +5214,6 @@ components: \ usually in the form of a URI" items: type: string - page: - type: integer - description: Which result page is requested. The page indexing starts at - 0 (the first page is 'page'= 0). Default is `0`. - format: int32 - example: 0 - pageSize: - type: integer - description: The size of the pages to be returned. Default is `1000`. - format: int32 - example: 1000 programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -5107,155 +5239,27 @@ components: nullable: true items: type: string - studyDbIds: - type: array - description: List of study identifiers to search for - items: - type: string - studyNames: - type: array - description: List of study names to filter search results - items: - type: string - trialDbIds: - type: array - description: The ID which uniquely identifies a trial to search for - items: - type: string - trialNames: - type: array - description: The human readable name of a trial to search for - items: - type: string - description: "A representation of the physical entity being observed during\ - \ a phenotype data collection process. Typically, this is a Plot or a Plant,\ - \ but it could include things like Fields, Blocks, or Samples." - ObservationVariable: - allOf: - - $ref: "#/components/schemas/ObservationVariableNewRequest" - - required: - - observationVariableDbId - type: object - properties: - observationVariableDbId: - type: string - description: |- - Variable unique identifier - - MIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation. - ObservationVariableNewRequest: - required: - - method - - observationVariableName - - scale - - trait - type: object - properties: - additionalInfo: - $ref: "#/components/schemas/AdditionalInfo" - commonCropName: - type: string - description: "Crop name (examples: \"Maize\", \"Wheat\")" - nullable: true - contextOfUse: - type: array - description: "Indication of how trait is routinely used. (examples: [\"\ - Trial evaluation\", \"Nursery evaluation\"])" - nullable: true - items: - type: string - defaultValue: - type: string - description: "Variable default value. (examples: \"red\", \"2.3\", etc.)" - nullable: true - documentationURL: - type: string - description: A URL to the human readable documentation of an object - format: uri - nullable: true - externalReferences: - type: array - description: An array of external reference ids. These are references to - this piece of data in an external system. Could be a simple string or - a URI. - nullable: true - items: - $ref: "#/components/schemas/ExternalReference" - growthStage: - type: string - description: "Growth stage at which measurement is made (examples: \"flowering\"\ - )" - nullable: true - institution: - type: string - description: Name of institution submitting the variable - nullable: true - language: - type: string - description: 2 letter ISO 639-1 code for the language of submission of the - variable. - nullable: true - method: - $ref: "#/components/schemas/Method" - observationVariableName: - type: string - description: |- - Variable name (usually a short name) - - MIAPPE V1.1 (DM-84) Variable name - Name of the variable. - observationVariablePUI: - type: string - description: "The Permanent Unique Identifier of a Observation Variable,\ - \ usually in the form of a URI" - nullable: true - ontologyReference: - anyOf: - - $ref: "#/components/schemas/OntologyReference" - - type: "null" - scale: - $ref: "#/components/schemas/Scale" - scientist: - type: string - description: Name of scientist submitting the variable. - nullable: true - status: - type: string - description: "Variable status. (examples: \"recommended\", \"obsolete\"\ - , \"legacy\", etc.)" - nullable: true - submissionTimestamp: - type: string - description: Timestamp when the Variable was added (ISO 8601) - format: date-time - nullable: true - synonyms: - type: array - description: Other variable names - nullable: true - items: - type: string - trait: - $ref: "#/components/schemas/Trait" - ObservationVariableParameters: - type: object - properties: - observationVariableDbIds: + studyDbIds: type: array - description: The DbIds of Variables to search for + description: List of study identifiers to search for items: type: string - observationVariableNames: + studyNames: type: array - description: The names of Variables to search for + description: List of study names to filter search results items: type: string - observationVariablePUIs: + trialDbIds: type: array - description: "The Permanent Unique Identifier of an Observation Variable,\ - \ usually in the form of a URI" + description: The ID which uniquely identifies a trial to search for items: type: string - ObservationVariableRequest: + trialNames: + type: array + description: The human readable name of a trial to search for + items: + type: string + ObservationUnitSearchRequest: type: object properties: commonCropNames: @@ -5269,27 +5273,80 @@ components: \ of available crops on a server." items: type: string - dataTypes: + externalReferenceIDs: type: array - description: List of scale data types to filter search results + description: "**Deprecated in v2.1** Please use `externalReferenceIds`.\ + \ Github issue number #460 \n
List of external reference IDs. Could\ + \ be a simple strings or a URIs. (use with `externalReferenceSources`\ + \ parameter)" + deprecated: true items: - $ref: "#/components/schemas/TraitDataType" - methodDbIds: + type: string + externalReferenceIds: type: array - description: List of methods to filter search results + description: List of external reference IDs. Could be a simple strings or + a URIs. (use with `externalReferenceSources` parameter) items: type: string - methodNames: + externalReferenceSources: type: array - description: |- - Human readable name for the method -
MIAPPE V1.1 (DM-88) Method Name of the method of observation + description: List of identifiers for the source system or database of an + external reference (use with `externalReferenceIDs` parameter) items: type: string - methodPUIs: + germplasmDbIds: type: array - description: "The Permanent Unique Identifier of a Method, usually in the\ - \ form of a URI" + description: List of IDs which uniquely identify germplasm to search for + nullable: true + items: + type: string + germplasmNames: + type: array + description: List of human readable names to identify germplasm to search + for + nullable: true + items: + type: string + includeObservations: + type: boolean + description: "Use this parameter to include a list of observations embedded\ + \ in each ObservationUnit object. \n\nCAUTION - Use this parameter at\ + \ your own risk. It may return large, unpaginated lists of observation\ + \ data. Only set this value to True if you are sure you need to." + nullable: true + example: false + locationDbIds: + type: array + description: The location ids to search for + items: + type: string + locationNames: + type: array + description: A human readable names to search for + items: + type: string + observationLevelRelationships: + type: array + description: Searches for values in ObservationUnit->observationUnitPosition->observationLevelRelationships + nullable: true + items: + $ref: "#/components/schemas/ObservationUnitLevelRelationship" + observationLevels: + type: array + description: Searches for values in ObservationUnit->observationUnitPosition->observationLevel + nullable: true + items: + $ref: "#/components/schemas/ObservationUnitLevel" + observationUnitDbIds: + type: array + description: The unique id of an observation unit + nullable: true + items: + type: string + observationUnitNames: + type: array + description: The human readable identifier for an Observation Unit + nullable: true items: type: string observationVariableDbIds: @@ -5308,11 +5365,17 @@ components: \ usually in the form of a URI" items: type: string - ontologyDbIds: - type: array - description: List of ontology IDs to search for - items: - type: string + page: + type: integer + description: Which result page is requested. The page indexing starts at + 0 (the first page is 'page'= 0). Default is `0`. + format: int32 + example: 0 + pageSize: + type: integer + description: The size of the pages to be returned. Default is `1000`. + format: int32 + example: 1000 programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -5331,29 +5394,11 @@ components: Use `GET /programs` to find the list of available programs on a server. items: type: string - scaleDbIds: - type: array - description: The unique identifier for a Scale - items: - type: string - scaleNames: - type: array - description: |- - Name of the scale -
MIAPPE V1.1 (DM-92) Scale Name of the scale associated with the variable - items: - type: string - scalePUIs: - type: array - description: "The Permanent Unique Identifier of a Scale, usually in the\ - \ form of a URI" - items: - type: string - studyDbId: + seasonDbIds: type: array - description: "**Deprecated in v2.1** Please use `studyDbIds`. Github issue\ - \ number #483 \n
The unique ID of a studies to filter on" - deprecated: true + description: "The year or Phenotyping campaign of a multi-annual study (trees,\ + \ grape, ...)" + nullable: true items: type: string studyDbIds: @@ -5366,69 +5411,118 @@ components: description: List of study names to filter search results items: type: string - traitAttributePUIs: - type: array - description: |- - The Permanent Unique Identifier of a Trait Attribute, usually in the form of a URI -
A trait can be decomposed as "Trait" = "Entity" + "Attribute", the attribute is the observed feature (or characteristic) of the entity e.g., for "grain colour", attribute = "colour" - items: - type: string - traitAttributes: - type: array - description: "A trait can be decomposed as \"Trait\" = \"Entity\" + \"Attribute\"\ - , the attribute is the observed feature (or characteristic) of the entity\ - \ e.g., for \"grain colour\", attribute = \"colour\"" - items: - type: string - traitClasses: - type: array - description: List of trait classes to filter search results - items: - type: string - traitDbIds: + trialDbIds: type: array - description: The unique identifier for a Trait + description: The ID which uniquely identifies a trial to search for items: type: string - traitEntities: + trialNames: type: array - description: "A trait can be decomposed as \"Trait\" = \"Entity\" + \"Attribute\"\ - , the entity is the part of the plant that the trait refers to e.g., for\ - \ \"grain colour\", entity = \"grain\"" + description: The human readable name of a trial to search for items: type: string - traitEntityPUIs: + description: "A representation of the physical entity being observed during\ + \ a phenotype data collection process. Typically, this is a Plot or a Plant,\ + \ but it could include things like Fields, Blocks, or Samples." + ObservationUnitTable: + type: object + properties: + data: type: array - description: "The Permanent Unique Identifier of a Trait Entity, usually\ - \ in the form of a URI\n
A trait can be decomposed as \"Trait\" =\ - \ \"Entity\" + \"Attribute\", the entity is the part of the plant that\ - \ the trait refers to e.g., for \"grain colour\", entity = \"grain\" " + description: "The 2D matrix of observation data. ObservationVariables and\ + \ other metadata are the columns, ObservationUnits are the rows." items: - type: string - traitNames: - type: array - description: |- - The human readable name of a trait -
MIAPPE V1.1 (DM-86) Trait - Name of the (plant or environmental) trait under observation + type: array + items: + type: string + headerRow: + type: array + description: "

The table is REQUIRED to have the following columns

\n\ +
    \n
  • observationUnitDbId - Each row is related to one Observation\ + \ Unit
  • \n
  • At least one column with an observationVariableDbId
  • \n\ +
\n

The table may have any or all of the following OPTIONAL columns.\ + \ Included columns are decided by the server developer

\n
    \n
  • observationUnitName
  • \n\ + \
  • studyDbId
  • \n
  • studyName
  • \n
  • germplasmDbId
  • \n\ + \
  • germplasmName
  • \n
  • positionCoordinateX
  • \n
  • positionCoordinateY
  • \n\ + \
  • year
  • \n
\n

The table also may have any number of Observation\ + \ Unit Hierarchy Level columns. For example:

\n
    \n
  • field
  • \n\ + \
  • plot
  • \n
  • sub-plot
  • \n
  • plant
  • \n
  • pot
  • \n\ + \
  • block
  • \n
  • entry
  • \n
  • rep
  • \n
\n

The JSON\ + \ representation provides a pair of extra arrays for defining the headers\ + \ of the table. \nThe first array \"headerRow\" will always contain \"\ + observationUnitDbId\" and any or all of the OPTIONAL column header names.\ + \ \nThe second array \"observationVariables\" contains the names and DbIds\ + \ for the Observation Variables represented in the table. \nBy appending\ + \ the two arrays, you can construct the complete header row of the table.\ + \

" + items: + type: string + description: valid header fields + enum: + - observationUnitDbId + - observationUnitName + - studyDbId + - studyName + - germplasmDbId + - germplasmName + - positionCoordinateX + - positionCoordinateY + - year + - field + - plot + - sub-plot + - plant + - pot + - block + - entry + - rep + observationVariables: + type: array + description: The list of observation variables which have values recorded + for them in the data matrix. Append to the 'headerRow' for complete header + row of the table. items: - type: string - traitPUIs: + type: object + properties: + observationVariableDbId: + type: string + description: Variable unique identifier + example: 367aa1a9 + observationVariableName: + type: string + description: Variable name (usually a short name) + example: Plant height + ObservationVariable: + type: object + properties: + observationVariableDbId: + type: string + description: Variable unique identifier + example: 367aa1a9 + observationVariableName: + type: string + description: Variable name (usually a short name) + example: Plant height + ObservationVariableParameters: + type: object + properties: + observationVariableDbIds: type: array - description: "The Permanent Unique Identifier of a Trait, usually in the\ - \ form of a URI" + description: The DbIds of Variables to search for items: type: string - trialDbIds: + observationVariableNames: type: array - description: The ID which uniquely identifies a trial to search for + description: The names of Variables to search for items: type: string - trialNames: + observationVariablePUIs: type: array - description: The human readable name of a trial to search for + description: "The Permanent Unique Identifier of an Observation Variable,\ + \ usually in the form of a URI" items: type: string - ObservationVariableSearchRequest: + ObservationVariableRequest: type: object properties: commonCropNames: @@ -5447,27 +5541,6 @@ components: description: List of scale data types to filter search results items: $ref: "#/components/schemas/TraitDataType" - externalReferenceIDs: - type: array - description: "**Deprecated in v2.1** Please use `externalReferenceIds`.\ - \ Github issue number #460 \n
List of external reference IDs. Could\ - \ be a simple strings or a URIs. (use with `externalReferenceSources`\ - \ parameter)" - deprecated: true - items: - type: string - externalReferenceIds: - type: array - description: List of external reference IDs. Could be a simple strings or - a URIs. (use with `externalReferenceSources` parameter) - items: - type: string - externalReferenceSources: - type: array - description: List of identifiers for the source system or database of an - external reference (use with `externalReferenceIDs` parameter) - items: - type: string methodDbIds: type: array description: List of methods to filter search results @@ -5507,17 +5580,6 @@ components: description: List of ontology IDs to search for items: type: string - page: - type: integer - description: Which result page is requested. The page indexing starts at - 0 (the first page is 'page'= 0). Default is `0`. - format: int32 - example: 0 - pageSize: - type: integer - description: The size of the pages to be returned. Default is `1000`. - format: int32 - example: 1000 programDbIds: type: array description: "A BrAPI Program represents the high level organization or\ @@ -6707,9 +6769,9 @@ components: \ other dataTypes when applicable." nullable: true validValues: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/ValidValues" - - type: "null" description: "A Scale describes the units and acceptable values for an ObservationVariable.\ \ \n
For example, an ObservationVariable might be defined with a Trait\ \ of \"plant height\", a Scale of \"meters\", and a Method of \"tape measure\"\ @@ -6854,7 +6916,64 @@ components: SeedLotTransactionRequest: type: object properties: - transactionDbIs: + commonCropNames: + type: array + description: "The BrAPI Common Crop Name is the simple, generalized, widely\ + \ accepted name of the organism being researched. It is most often used\ + \ in multi-crop systems where digital resources need to be divided at\ + \ a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples\ + \ of common crop names.\n\nUse this parameter to only return results associated\ + \ with the given crops. \n\nUse `GET /commoncropnames` to find the list\ + \ of available crops on a server." + items: + type: string + crossDbIds: + type: array + description: Search for Cross with this unique id + items: + type: string + crossNames: + type: array + description: Search for Cross with this human readable name + items: + type: string + germplasmDbIds: + type: array + description: List of IDs which uniquely identify germplasm to search for + nullable: true + items: + type: string + germplasmNames: + type: array + description: List of human readable names to identify germplasm to search + for + nullable: true + items: + type: string + programDbIds: + type: array + description: "A BrAPI Program represents the high level organization or\ + \ group who is responsible for conducting trials and studies. Things like\ + \ Breeding Programs and Funded Projects are considered BrAPI Programs.\ + \ \n\nUse this parameter to only return results associated with the given\ + \ programs. \n\nUse `GET /programs` to find the list of available programs\ + \ on a server." + items: + type: string + programNames: + type: array + description: |- + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + items: + type: string + seedLotDbIds: + type: array + description: Unique id for a seed lot on this server + items: + type: string + transactionDbIds: type: array description: Unique id for a Transaction that has occurred items: @@ -7478,9 +7597,9 @@ components: method: $ref: "#/components/schemas/Method" ontologyReference: - anyOf: + nullable: true + allOf: - $ref: "#/components/schemas/OntologyReference" - - type: "null" scale: $ref: "#/components/schemas/Scale" scientist: @@ -7857,6 +7976,52 @@ components: description: The unique identifier representing a VariantSet items: type: string + VariantSetsExtractRequest: + type: object + properties: + callSetDbIds: + type: array + description: The CallSet to search. + items: + type: string + expandHomozygotes: + type: boolean + description: Should homozygotes be expanded (true) or collapsed into a single + occurrence (false) + example: true + sepPhased: + type: string + description: The string used as a separator for phased allele calls. + example: "~" + sepUnphased: + type: string + description: The string used as a separator for unphased allele calls. + example: '|' + studyDbIds: + type: array + description: List of study identifiers to search for + items: + type: string + studyNames: + type: array + description: List of study names to filter search results + items: + type: string + unknownString: + type: string + description: The string used as a representation for missing data. + example: "-" + variantDbIds: + type: array + description: The Variant to search. + items: + type: string + variantSetDbIds: + type: array + description: The VariantSet to search. + items: + type: string + description: Request object for extracting data subsets as new Variant Sets basePagination: required: - currentPage @@ -8022,23 +8187,6 @@ components: totalCount: 10 totalPages: 1 responses: - ObservationVariableSingleResponse: - description: OK - content: - application/json: - schema: - title: ObservationVariableSingleResponse - required: - - metadata - - result - type: object - properties: - '@context': - $ref: "#/components/schemas/Context" - metadata: - $ref: "#/components/schemas/metadata" - result: - $ref: "#/components/schemas/ObservationVariable" VariantSingleResponse: description: OK content: @@ -8132,6 +8280,32 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/Study" + ObservationDeleteResponse: + description: OK + content: + application/json: + schema: + title: ObservationDeleteResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - observationDbIds + type: object + properties: + observationDbIds: + type: array + description: The unique ids of the Observation records which have + been successfully deleted + items: + type: string MarkerPositionListResponse: description: OK content: @@ -8361,30 +8535,6 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/ReferenceSet" - ObservationVariableListResponse: - description: OK - content: - application/json: - schema: - title: ObservationVariableListResponse - required: - - metadata - - result - type: object - properties: - '@context': - $ref: "#/components/schemas/Context" - metadata: - $ref: "#/components/schemas/metadata" - result: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: "#/components/schemas/ObservationVariable" CrossListResponse: description: OK content: @@ -9063,6 +9213,32 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/GermplasmMCPD" + StudyObservationLevelsListResponse: + description: OK + content: + application/json: + schema: + title: StudyObservationLevelsListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: array + items: + $ref: "#/components/schemas/ObservationUnitHierarchyLevel" ReferenceSetListResponse: description: OK content: @@ -9179,6 +9355,32 @@ components: type: array items: $ref: "#/components/schemas/Ontology" + ImageDeleteResponse: + description: OK + content: + application/json: + schema: + title: ImageDeleteResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - imageDbIds + type: object + properties: + imageDbIds: + type: array + description: The unique ids of the Image records which have been + successfully deleted + items: + type: string "404NotFound": description: Not Found content: @@ -9356,6 +9558,30 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/Person" + ProgramCommonCropNameListResponse: + description: OK + content: + application/json: + schema: + title: ProgramCommonCropNameListResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + required: + - data + type: object + properties: + data: + type: array + items: + type: string ImageListResponse: description: OK content: @@ -9445,6 +9671,29 @@ components: type: array items: $ref: "#/components/schemas/GermplasmAttributeValue" + ObservationTableResponse: + description: OK + content: + application/json: + schema: + title: ObservationTableResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + $ref: "#/components/schemas/Observation" + text/csv: + schema: + type: string + text/tsv: + schema: + type: string BreedingMethodListResponse: description: OK content: @@ -9510,6 +9759,29 @@ components: $ref: "#/components/schemas/metadata" result: $ref: "#/components/schemas/GermplasmAttributeValue" + ObservationUnitTableResponse: + description: OK + content: + application/json: + schema: + title: ObservationUnitTableResponse + required: + - metadata + - result + type: object + properties: + '@context': + $ref: "#/components/schemas/Context" + metadata: + $ref: "#/components/schemas/metadata" + result: + $ref: "#/components/schemas/ObservationUnit" + text/csv: + schema: + type: string + text/tsv: + schema: + type: string GenomeMapListResponse: description: OK content: diff --git a/Specification/Generated/brapi_generated.graphqls b/Specification/Generated/brapi_generated.graphqls index 5feaa080..71cdb6b4 100644 --- a/Specification/Generated/brapi_generated.graphqls +++ b/Specification/Generated/brapi_generated.graphqls @@ -1416,6 +1416,8 @@ type Image { "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI." externalReferences: [ExternalReference] "The unique identifier of an image" + imageContent: String + "The unique identifier of an image" imageDbId: String "The name of the image file. Might be the same as 'imageName', but could be different." imageFileName: String @@ -1442,10 +1444,10 @@ type Image { imageWidth: Int "The file type of the image. Examples 'image/jpeg', 'image/png', 'image/svg', etc" mimeType: String + "A list of observation Ids this image is associated with, if applicable." + observationDbId: [ID] "The related observation unit identifier, if relevant." observationUnitDbIds: ID - "A list of observation Ids this image is associated with, if applicable." - observations(observationsInput: ObservationsInput, paging: PageInput): ObservationListResponse } type ImageListResponse { @@ -1755,8 +1757,6 @@ type Mutation { createObservation(observationInput: ObservationInput): Observation "Create a new ObservationUnit" createObservationUnit(observationUnitInput: ObservationUnitInput): ObservationUnit - "Create a new ObservationVariable" - createObservationVariable(commonCropName: String, observationVariableInput: ObservationVariableInput): ObservationVariable "Create a new Ontology" createOntology(ontologyInput: OntologyInput): Ontology "Create a new Person" @@ -1777,6 +1777,8 @@ type Mutation { createSeason(seasonInput: SeasonInput): Season "Create a new SeedLot" createSeedLot(seedLotInput: SeedLotInput): SeedLot + "Create a new SeedLotTransaction" + createSeedLotTransaction(seedLotTransactionInput: SeedLotTransactionInput): SeedLotTransaction "Create a new Study" createStudy(commonCropName: String, studyInput: StudyInput): Study "Create a new Trait" @@ -1807,8 +1809,6 @@ type Mutation { updateObservation(observationInput: ObservationInput): Observation "Update the details for an existing ObservationUnit" updateObservationUnit(observationUnitInput: ObservationUnitInput): ObservationUnit - "Update the details for an existing ObservationVariable" - updateObservationVariable(commonCropName: String, observationVariableInput: ObservationVariableInput): ObservationVariable "Update the details for an existing Ontology" updateOntology(ontologyInput: OntologyInput): Ontology "Update the details for an existing Person" @@ -1829,6 +1829,8 @@ type Mutation { updateSeason(seasonInput: SeasonInput): Season "Update the details for an existing SeedLot" updateSeedLot(seedLotInput: SeedLotInput): SeedLot + "Update the details for an existing SeedLotTransaction" + updateSeedLotTransaction(seedLotTransactionInput: SeedLotTransactionInput): SeedLotTransaction "Update the details for an existing Study" updateStudy(commonCropName: String, studyInput: StudyInput): Study "Update the details for an existing Trait" @@ -1870,7 +1872,7 @@ type Observation { "The ID which uniquely identifies an observation unit" observationUnitDbIds: ID "The ID which uniquely identifies an observation variable" - observationVariableDbIds: ID + observationVariable: ObservationVariable "The season for this Observation" seasonDbIds: ID "The ID which uniquely identifies a study within the given database server" @@ -1886,6 +1888,48 @@ type ObservationListResponse { page: PageInfo } +type ObservationTable { + "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows." + data: [[String]] + """ +

The table is REQUIRED to have the following columns

+
    +
  • observationUnitDbId - Each row is related to one Observation Unit
  • +
  • observationTimeStamp - Each row is has a time stamp for when the observation was taken
  • +
  • At least one column with an observationVariableDbId
  • +
+

The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer

+
    +
  • observationUnitName
  • +
  • studyDbId
  • +
  • studyName
  • +
  • germplasmDbId
  • +
  • germplasmName
  • +
  • positionCoordinateX
  • +
  • positionCoordinateY
  • +
  • year
  • +
+

The table also may have any number of Observation Unit Hierarchy Level columns. For example:

+
    +
  • field
  • +
  • plot
  • +
  • sub-plot
  • +
  • plant
  • +
  • pot
  • +
  • block
  • +
  • entry
  • +
  • rep
  • +
+

The JSON representation provides a pair of extra arrays for defining the headers of the table. + The first array "headerRow" will always contain "observationUnitDbId" and any or all of the OPTIONAL column header names. + The second array "observationVariables" contains the names and DbIds for the Observation Variables represented in the table. + By appending the two arrays, you can construct the complete header row of the table.

+ """ + headerRow: [HeaderRow] + "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table." + observationVariables: [ObservationVariable] +} + "A Treatment applied an Observation Unit at a given Modality/Level for a specific Factor." type ObservationTreatment { """ @@ -2045,7 +2089,7 @@ type ObservationUnitPosition { A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. """ - geoCoordinates: [GeoJSON] + geoCoordinates: GeoJSON """ The exact level and level code of an observation unit. @@ -2080,79 +2124,57 @@ type ObservationUnitPosition { positionCoordinateYType: PositionCoordinateType } +type ObservationUnitTable { + "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows." + data: [[String]] + """ +

The table is REQUIRED to have the following columns

+
    +
  • observationUnitDbId - Each row is related to one Observation Unit
  • +
  • At least one column with an observationVariableDbId
  • +
+

The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer

+
    +
  • observationUnitName
  • +
  • studyDbId
  • +
  • studyName
  • +
  • germplasmDbId
  • +
  • germplasmName
  • +
  • positionCoordinateX
  • +
  • positionCoordinateY
  • +
  • year
  • +
+

The table also may have any number of Observation Unit Hierarchy Level columns. For example:

+
    +
  • field
  • +
  • plot
  • +
  • sub-plot
  • +
  • plant
  • +
  • pot
  • +
  • block
  • +
  • entry
  • +
  • rep
  • +
+

The JSON representation provides a pair of extra arrays for defining the headers of the table. + The first array "headerRow" will always contain "observationUnitDbId" and any or all of the OPTIONAL column header names. + The second array "observationVariables" contains the names and DbIds for the Observation Variables represented in the table. + By appending the two arrays, you can construct the complete header row of the table.

+ """ + headerRow: [HeaderRow] + "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table." + observationVariables: [ObservationVariable] +} + type ObservationUnitsSearchResponse { data: [ObservationUnit] searchResultsDbId: String } -type ObservationVariable implements Variable { - "A free space containing any additional information related to a particular object. A data source may provide any JSON object, unrestricted by the BrAPI specification." - additionalInfo: AdditionalInfo - "Crop name (examples: \"Maize\", \"Wheat\")" - commonCropName: String - "Indication of how trait is routinely used. (examples: [\"Trial evaluation\", \"Nursery evaluation\"])" - contextOfUse: [String] - "Variable default value. (examples: \"red\", \"2.3\", etc.)" - defaultValue: String - "A URL to the human readable documentation of an object" - documentationURL: String - "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI." - externalReferences: [ExternalReference] - "Growth stage at which measurement is made (examples: \"flowering\")" - growthStage: String - "Name of institution submitting the variable" - institution: String - "2 letter ISO 639-1 code for the language of submission of the variable." - language: String - """ - A description of the way an Observation should be collected. -
For example, an ObservationVariable might be defined with a Trait of "plant height", a Scale of "meters", and a Method of "tape measure". This variable would be distinct from a variable with the Method "estimation" or "drone image processing". - """ - methodDbIds: ID - """ - Variable unique identifier - - MIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation. - """ +type ObservationVariable { + "Variable unique identifier" observationVariableDbId: String - """ - Variable name (usually a short name) - - MIAPPE V1.1 (DM-84) Variable name - Name of the variable. - """ + "Variable name (usually a short name)" observationVariableName: String - "The Permanent Unique Identifier of a Observation Variable, usually in the form of a URI" - observationVariablePUI: String - """ - MIAPPE V1.1 - - (DM-85) Variable accession number - Accession number of the variable in the Crop Ontology - - (DM-87) Trait accession number - Accession number of the trait in a suitable controlled vocabulary (Crop Ontology, Trait Ontology). - - (DM-89) Method accession number - Accession number of the method in a suitable controlled vocabulary (Crop Ontology, Trait Ontology). - - (DM-93) Scale accession number - Accession number of the scale in a suitable controlled vocabulary (Crop Ontology). - """ - ontologyReference: OntologyReference - """ - A Scale describes the units and acceptable values for an ObservationVariable. -
For example, an ObservationVariable might be defined with a Trait of "plant height", a Scale of "meters", and a Method of "tape measure". This variable would be distinct from a variable with the Scale "inches" or "pixels". - """ - scaleDbIds: ID - "Name of scientist submitting the variable." - scientist: String - "Variable status. (examples: \"recommended\", \"obsolete\", \"legacy\", etc.)" - status: String - "Timestamp when the Variable was added (ISO 8601)" - submissionTimestamp: String - "Other variable names" - synonyms: [String] - """ - A Trait describes what property is being observed. -
For example, an ObservationVariable might be defined with a Trait of "plant height", a Scale of "meters", and a Method of "tape measure". This variable would be distinct from a variable with the Trait "Leaf length" or "Flower height". - """ - traitDbIds: ID } type ObservationVariableListResponse { @@ -2160,11 +2182,6 @@ type ObservationVariableListResponse { page: PageInfo } -type ObservationVariablesSearchResponse { - data: [ObservationVariable] - searchResultsDbId: String -} - type ObservationsSearchResponse { data: [Observation] searchResultsDbId: String @@ -2546,12 +2563,6 @@ type Query { observationUnits(observationUnitsInput: ObservationUnitsInput, paging: PageInput): ObservationUnitListResponse "Returns ObservationUnit objects" observationUnitsSearch(observationUnitInput: ObservationUnitsInput): ObservationUnitsSearchResponse - "Returns a ObservationVariable object by id" - observationVariable(commonCropName: String, observationVariableDbId: ID): ObservationVariable - "Returns ObservationVariable objects" - observationVariables(observationVariablesInput: ObservationVariablesInput, paging: PageInput): ObservationVariableListResponse - "Returns ObservationVariable objects" - observationVariablesSearch(observationVariableInput: ObservationVariablesInput): ObservationVariablesSearchResponse "Returns Observation objects" observations(observationsInput: ObservationsInput, paging: PageInput): ObservationListResponse "Returns Observation objects" @@ -2618,6 +2629,12 @@ type Query { seasonsSearch(seasonInput: SeasonsInput): SeasonsSearchResponse "Returns a SeedLot object by id" seedLot(commonCropName: String, seedLotDbId: ID): SeedLot + "Returns a SeedLotTransaction object by id" + seedLotTransaction(commonCropName: String, seedLotTransactionDbId: ID): SeedLotTransaction + "Returns SeedLotTransaction objects" + seedLotTransactions(paging: PageInput, seedLotTransactionsInput: SeedLotTransactionsInput): SeedLotTransactionListResponse + "Returns SeedLotTransaction objects" + seedLotTransactionsSearch(seedLotTransactionInput: SeedLotTransactionsInput): SeedLotTransactionsSearchResponse "Returns SeedLot objects" seedLots(paging: PageInput, seedLotsInput: SeedLotsInput): SeedLotListResponse "Returns SeedLot objects" @@ -2949,7 +2966,7 @@ type SeedLot { "Description the storage location" storageLocation: String "The complete history of transactions for this seed lot. This includes seed increases, seed usage (planting), and trading with other breeding programs." - transactions: [SeedLotTransaction] + transactionDbId: [ID] "A description of the things being counted in a SeedLot (seeds, bulbs, kg, tree, etc)" units: String } @@ -2981,6 +2998,16 @@ type SeedLotTransaction { units: String } +type SeedLotTransactionListResponse { + data: [SeedLotTransaction] + page: PageInfo +} + +type SeedLotTransactionsSearchResponse { + data: [SeedLotTransaction] + searchResultsDbId: String +} + type SeedLotsSearchResponse { data: [SeedLot] searchResultsDbId: String @@ -3095,7 +3122,7 @@ type Study { This list is intended to be the wishlist of variables to collect in this study. It may or may not match the set of variables used in the collected observation records. """ - observationVariables(observationVariablesInput: ObservationVariablesInput, paging: PageInput): ObservationVariableListResponse + observationVariables(commonCropName: String, observationVariablesInput: ObservationVariablesInput, paging: PageInput): ObservationVariableListResponse "List of seasons over which this study was performed." seasons: [String] """ @@ -3403,6 +3430,8 @@ type VariantSet { calls(callsInput: CallsInput, paging: PageInput): CallListResponse "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI." externalReferences: [ExternalReference] + "Will perform a search for `Calls` which match the search criteria in `variantSetsExtractRequest`. The results of the search will be used to create a new `VariantSet` on the server. The new `VariantSet` will be returned." + extractDbIds: ID """ The 'metadataField' indicates which types of genotyping data and metadata are available in the VariantSet.
When possible, these field names and abbreviations should follow the VCF standard @@ -3600,6 +3629,28 @@ enum FileFormat { text_tsv } +"valid header fields" +enum HeaderRow { + block + entry + field + germplasmDbId + germplasmName + observationTimeStamp + observationUnitDbId + observationUnitName + plant + plot + positionCoordinateX + positionCoordinateY + pot + rep + studyDbId + studyName + sub_plot + year +} + "The type of objects that are referenced in a List" enum ListType { germplasm @@ -5265,6 +5316,8 @@ input ImageInput { "Filter by External References" externalReferences: [ExternalReferenceInput] "The unique identifier of an image" + imageContent: String + "The unique identifier of an image" imageDbId: String "The name of the image file. Might be the same as 'imageName', but could be different." imageFileName: String @@ -5969,7 +6022,7 @@ input ObservationUnitPositionInput { A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. """ - geoCoordinates: [GeoJSONInput] + geoCoordinates: GeoJSONInput """ The exact level and level code of an observation unit. @@ -6113,76 +6166,10 @@ input ObservationUnitsInput { } input ObservationVariableInput { - "A free space containing any additional information related to a particular object. A data source may provide any JSON object, unrestricted by the BrAPI specification." - additionalInfo: AdditionalInfoInput - "Crop name (examples: \"Maize\", \"Wheat\")" - commonCropName: String - "Indication of how trait is routinely used. (examples: [\"Trial evaluation\", \"Nursery evaluation\"])" - contextOfUse: [String] - "Variable default value. (examples: \"red\", \"2.3\", etc.)" - defaultValue: String - "A URL to the human readable documentation of an object" - documentationURL: String - "Filter by External References" - externalReferences: [ExternalReferenceInput] - "Growth stage at which measurement is made (examples: \"flowering\")" - growthStage: String - "Name of institution submitting the variable" - institution: String - "2 letter ISO 639-1 code for the language of submission of the variable." - language: String - """ - A description of the way an Observation should be collected. -
For example, an ObservationVariable might be defined with a Trait of "plant height", a Scale of "meters", and a Method of "tape measure". This variable would be distinct from a variable with the Method "estimation" or "drone image processing". - """ - method: MethodInput - """ - Variable unique identifier - - MIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation. - """ + "Variable unique identifier" observationVariableDbId: String - """ - Variable name (usually a short name) - - MIAPPE V1.1 (DM-84) Variable name - Name of the variable. - """ + "Variable name (usually a short name)" observationVariableName: String - "The Permanent Unique Identifier of a Observation Variable, usually in the form of a URI" - observationVariablePUI: String - "observations" - observations: [ObservationInput] - """ - MIAPPE V1.1 - - (DM-85) Variable accession number - Accession number of the variable in the Crop Ontology - - (DM-87) Trait accession number - Accession number of the trait in a suitable controlled vocabulary (Crop Ontology, Trait Ontology). - - (DM-89) Method accession number - Accession number of the method in a suitable controlled vocabulary (Crop Ontology, Trait Ontology). - - (DM-93) Scale accession number - Accession number of the scale in a suitable controlled vocabulary (Crop Ontology). - """ - ontologyReference: OntologyReferenceInput - """ - A Scale describes the units and acceptable values for an ObservationVariable. -
For example, an ObservationVariable might be defined with a Trait of "plant height", a Scale of "meters", and a Method of "tape measure". This variable would be distinct from a variable with the Scale "inches" or "pixels". - """ - scale: ScaleInput - "Name of scientist submitting the variable." - scientist: String - "Variable status. (examples: \"recommended\", \"obsolete\", \"legacy\", etc.)" - status: String - studies: [StudyInput] - "Timestamp when the Variable was added (ISO 8601)" - submissionTimestamp: String - "Other variable names" - synonyms: [String] - """ - A Trait describes what property is being observed. -
For example, an ObservationVariable might be defined with a Trait of "plant height", a Scale of "meters", and a Method of "tape measure". This variable would be distinct from a variable with the Trait "Leaf length" or "Flower height". - """ - trait: TraitInput } input ObservationVariablesInput { @@ -7362,6 +7349,45 @@ input SeedLotTransactionInput { units: String } +input SeedLotTransactionsInput { + """ + The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names. + + Use this parameter to only return results associated with the given crops. + + Use `GET /commoncropnames` to find the list of available crops on a server. + """ + commonCropNames: [String] + "Search for Cross with this unique id" + crossDbIds: [String] + "Search for Cross with this human readable name" + crossNames: [String] + "List of IDs which uniquely identify germplasm to search for" + germplasmDbIds: [String] + "List of human readable names to identify germplasm to search for" + germplasmNames: [String] + """ + A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. + + Use this parameter to only return results associated with the given programs. + + Use `GET /programs` to find the list of available programs on a server. + """ + programDbIds: [String] + """ + Use this parameter to only return results associated with the given program names. Program names are not required to be unique. + + Use `GET /programs` to find the list of available programs on a server. + """ + programNames: [String] + "Unique id for a seed lot on this server" + seedLotDbIds: [String] + "Unique id for a Transaction that has occurred" + transactionDbIds: [String] + "Filter results to only include transactions directed to the specific Seed Lot (TO), away from the specific Seed Lot (FROM), or both (BOTH). The default value for this parameter is BOTH" + transactionDirection: TransactionDirection +} + input SeedLotsInput { """ The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names. @@ -7978,6 +8004,8 @@ input VariantSetInput { calls: [CallInput] "Filter by External References" externalReferences: [ExternalReferenceInput] + "Will perform a search for `Calls` which match the search criteria in `variantSetsExtractRequest`. The results of the search will be used to create a new `VariantSet` on the server. The new `VariantSet` will be returned." + extract: VariantSetInput """ The 'metadataField' indicates which types of genotyping data and metadata are available in the VariantSet.
When possible, these field names and abbreviations should follow the VCF standard diff --git a/Specification/Generated/brapi_generated.json b/Specification/Generated/brapi_generated.json index f14992cb..8139235e 100644 --- a/Specification/Generated/brapi_generated.json +++ b/Specification/Generated/brapi_generated.json @@ -1,5 +1,5 @@ { - "openapi" : "3.0.1", + "openapi" : "3.0.0", "info" : { "title" : "BrAPI", "version" : "2.1" @@ -65,7 +65,7 @@ { "name" : "dataMatrixNames", "in" : "query", - "description" : "`dataMatrixNames` is a comma separated list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", + "description" : "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", "required" : false, "schema" : { "type" : "string" @@ -74,7 +74,7 @@ { "name" : "dataMatrixAbbreviations", "in" : "query", - "description" : "`dataMatrixAbbreviations` is a comma separated list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", + "description" : "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", "required" : false, "schema" : { "type" : "string" @@ -195,9 +195,6 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" - }, - "404" : { - "$ref" : "#/components/responses/404NotFound" } } } @@ -343,6 +340,44 @@ "$ref" : "#/components/responses/403Forbidden" } } + }, + "put" : { + "tags" : [ + "Calls" + ], + "summary" : "Update the details for an existing Call", + "description" : "Update the details for an existing Call", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Call" + } + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/CallListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } } }, "/callsets" : { @@ -2385,6 +2420,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } }, @@ -2423,6 +2461,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -2700,45 +2741,126 @@ } } }, - "/variables" : { + "/ontologies" : { "get" : { "tags" : [ - "ObservationVariables" + "Ontologies" ], - "summary" : "Get a filtered list of ObservationVariable", - "description" : "Get a list of ObservationVariable", + "summary" : "Get a filtered list of Ontology", + "description" : "Get a list of Ontology", "parameters" : [ { - "name" : "observationVariableDbId", + "name" : "ontologyDbId", "in" : "query", - "description" : "The DbIds of Variables to search for", + "description" : "The unique identifier for an ontology definition. Use this parameter to filter results based on a specific ontology \n\n Use `GET /ontologies` to find the list of available ontologies on a server.", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "observationVariableName", + "name" : "ontologyName", "in" : "query", - "description" : "The names of Variables to search for", + "description" : "The human readable identifier for an ontology definition.", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "$ref" : "#/components/parameters/page" + }, + { + "$ref" : "#/components/parameters/pageSize" + }, + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "responses" : { + "200" : { + "$ref" : "#/components/responses/OntologyListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + }, + "post" : { + "tags" : [ + "Ontologies" + ], + "summary" : "Create new Ontology", + "description" : "Add new Ontology to database", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/OntologyNewRequest" + } + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/OntologyListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/pedigree" : { + "get" : { + "tags" : [ + "PedigreeNodes" + ], + "summary" : "Get a filtered list of PedigreeNode", + "description" : "Get a list of PedigreeNode", + "parameters" : [ + { + "name" : "commonCropName", + "in" : "query", + "description" : "The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names.\n\nUse this parameter to only return results associated with the given crops. \n\nUse `GET /commoncropnames` to find the list of available crops on a server.", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "observationVariablePUI", + "name" : "germplasmDbId", "in" : "query", - "description" : "The Permanent Unique Identifier of an Observation Variable, usually in the form of a URI", + "description" : "List of IDs which uniquely identify germplasm to search for", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "commonCropName", + "name" : "germplasmName", "in" : "query", - "description" : "The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names.\n\nUse this parameter to only return results associated with the given crops. \n\nUse `GET /commoncropnames` to find the list of available crops on a server.", + "description" : "List of human readable names to identify germplasm to search for", "required" : false, "schema" : { "type" : "string" @@ -2753,6 +2875,15 @@ "type" : "string" } }, + { + "name" : "studyDbId", + "in" : "query", + "description" : "List of study identifiers to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, { "name" : "trialDbId", "in" : "query", @@ -2763,111 +2894,131 @@ } }, { - "name" : "studyDbId", + "name" : "germplasmPUI", "in" : "query", - "description" : "**Deprecated in v2.1** Please use `studyDbIds`. Github issue number #483 \n
The unique ID of a studies to filter on", + "description" : "List of Permanent Unique Identifiers to identify germplasm", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "ontologyDbId", + "name" : "accessionNumber", "in" : "query", - "description" : "List of ontology IDs to search for", + "description" : "A collection of unique identifiers for materials or germplasm within a genebank\n\nMCPD (v2.1) (ACCENUMB) 2. This is the unique identifier for accessions within a genebank, and is assigned when a sample is entered into the genebank collection (e.g. \"PI 113869\").", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "methodDbId", + "name" : "collection", "in" : "query", - "description" : "List of methods to filter search results", + "description" : "A specific panel/collection/population name this germplasm belongs to.", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "methodName", + "name" : "familyCode", "in" : "query", - "description" : "Human readable name for the method\n
MIAPPE V1.1 (DM-88) Method Name of the method of observation", + "description" : "A familyCode representing the family this germplasm belongs to.", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "methodPUI", + "name" : "binomialName", "in" : "query", - "description" : "The Permanent Unique Identifier of a Method, usually in the form of a URI", + "description" : "List of the full binomial name (scientific name) to identify a germplasm", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "scaleDbId", + "name" : "genus", "in" : "query", - "description" : "The unique identifier for a Scale", + "description" : "List of Genus names to identify germplasm", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "scaleName", + "name" : "species", "in" : "query", - "description" : "Name of the scale\n
MIAPPE V1.1 (DM-92) Scale Name of the scale associated with the variable", + "description" : "List of Species names to identify germplasm", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "scalePUI", + "name" : "synonym", "in" : "query", - "description" : "The Permanent Unique Identifier of a Scale, usually in the form of a URI", + "description" : "List of alternative names or IDs used to reference this germplasm", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "traitClass", + "name" : "includeParents", "in" : "query", - "description" : "List of trait classes to filter search results", + "description" : "If this parameter is true, include the array of parents in the response", "required" : false, "schema" : { - "type" : "string" + "type" : "boolean" } }, { - "name" : "traitDbId", + "name" : "includeSiblings", "in" : "query", - "description" : "The unique identifier for a Trait", + "description" : "If this parameter is true, include the array of siblings in the response", "required" : false, "schema" : { - "type" : "string" + "type" : "boolean" } }, { - "name" : "traitName", + "name" : "includeProgeny", "in" : "query", - "description" : "The human readable name of a trait\n
MIAPPE V1.1 (DM-86) Trait - Name of the (plant or environmental) trait under observation", + "description" : "If this parameter is true, include the array of progeny in the response", "required" : false, "schema" : { - "type" : "string" + "type" : "boolean" } }, { - "name" : "traitPUI", + "name" : "includeFullTree", "in" : "query", - "description" : "The Permanent Unique Identifier of a Trait, usually in the form of a URI", + "description" : "If this parameter is true, recursively include ALL of the nodes available in this pedigree tree", "required" : false, "schema" : { - "type" : "string" + "type" : "boolean" + } + }, + { + "name" : "pedigreeDepth", + "in" : "query", + "description" : "Recursively include this number of levels up the tree in the response (parents, grand-parents, great-grand-parents, etc)", + "required" : false, + "schema" : { + "type" : "integer", + "format" : "int32" + } + }, + { + "name" : "progenyDepth", + "in" : "query", + "description" : "Recursively include this number of levels down the tree in the response (children, grand-children, great-grand-children, etc)", + "required" : false, + "schema" : { + "type" : "integer", + "format" : "int32" } }, { @@ -2891,7 +3042,7 @@ ], "responses" : { "200" : { - "$ref" : "#/components/responses/ObservationVariableListResponse" + "$ref" : "#/components/responses/PedigreeNodeListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -2901,15 +3052,18 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } }, - "post" : { + "put" : { "tags" : [ - "ObservationVariables" + "PedigreeNodes" ], - "summary" : "Create new ObservationVariable", - "description" : "Add new ObservationVariable to database", + "summary" : "Update the details for an existing PedigreeNode", + "description" : "Update the details for an existing PedigreeNode", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" @@ -2919,17 +3073,18 @@ "content" : { "application/json" : { "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ObservationVariableNewRequest" - } + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/PedigreeNode" + }, + "example" : "{_1={additionalInfo={}, breedingMethod={}, crossingProject={}, crossingYear=10, defaultDisplayName=5761c815, externalReferences=[{}], familyCode=42f142b0, germplasm={}, parents=[{}], pedigreeString=5e286b4b, progeny=[{}], siblings=[{}]}, _2={additionalInfo={}, breedingMethod={}, crossingProject={}, crossingYear=20, defaultDisplayName=5761c816, externalReferences=[{}], familyCode=42f142b1, germplasm={}, parents=[{}], pedigreeString=5e286b4c, progeny=[{}], siblings=[{}]}}" } } } }, "responses" : { "200" : { - "$ref" : "#/components/responses/ObservationVariableListResponse" + "$ref" : "#/components/responses/PedigreeNodeListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -2939,67 +3094,18 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } - } - }, - "/ontologies" : { - "get" : { + }, + "post" : { "tags" : [ - "Ontologies" + "PedigreeNodes" ], - "summary" : "Get a filtered list of Ontology", - "description" : "Get a list of Ontology", - "parameters" : [ - { - "name" : "ontologyDbId", - "in" : "query", - "description" : "The unique identifier for an ontology definition. Use this parameter to filter results based on a specific ontology \n\n Use `GET /ontologies` to find the list of available ontologies on a server.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "ontologyName", - "in" : "query", - "description" : "The human readable identifier for an ontology definition.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "$ref" : "#/components/parameters/page" - }, - { - "$ref" : "#/components/parameters/pageSize" - }, - { - "$ref" : "#/components/parameters/authorizationHeader" - } - ], - "responses" : { - "200" : { - "$ref" : "#/components/responses/OntologyListResponse" - }, - "400" : { - "$ref" : "#/components/responses/400BadRequest" - }, - "401" : { - "$ref" : "#/components/responses/401Unauthorized" - }, - "403" : { - "$ref" : "#/components/responses/403Forbidden" - } - } - }, - "post" : { - "tags" : [ - "Ontologies" - ], - "summary" : "Create new Ontology", - "description" : "Add new Ontology to database", + "summary" : "Create new PedigreeNode", + "description" : "Add new PedigreeNode to database", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" @@ -3011,7 +3117,7 @@ "schema" : { "type" : "array", "items" : { - "$ref" : "#/components/schemas/OntologyNewRequest" + "$ref" : "#/components/schemas/PedigreeNode" } } } @@ -3019,7 +3125,7 @@ }, "responses" : { "200" : { - "$ref" : "#/components/responses/OntologyListResponse" + "$ref" : "#/components/responses/PedigreeNodeListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -3029,17 +3135,20 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } }, - "/pedigree" : { + "/people" : { "get" : { "tags" : [ - "PedigreeNodes" + "People" ], - "summary" : "Get a filtered list of PedigreeNode", - "description" : "Get a list of PedigreeNode", + "summary" : "Get a filtered list of Person", + "description" : "Get a list of Person", "parameters" : [ { "name" : "commonCropName", @@ -3050,24 +3159,6 @@ "type" : "string" } }, - { - "name" : "germplasmDbId", - "in" : "query", - "description" : "List of IDs which uniquely identify germplasm to search for", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "germplasmName", - "in" : "query", - "description" : "List of human readable names to identify germplasm to search for", - "required" : false, - "schema" : { - "type" : "string" - } - }, { "name" : "programDbId", "in" : "query", @@ -3078,151 +3169,41 @@ } }, { - "name" : "studyDbId", - "in" : "query", - "description" : "List of study identifiers to search for", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "trialDbId", - "in" : "query", - "description" : "The ID which uniquely identifies a trial to search for", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "germplasmPUI", - "in" : "query", - "description" : "List of Permanent Unique Identifiers to identify germplasm", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "accessionNumber", - "in" : "query", - "description" : "A collection of unique identifiers for materials or germplasm within a genebank\n\nMCPD (v2.1) (ACCENUMB) 2. This is the unique identifier for accessions within a genebank, and is assigned when a sample is entered into the genebank collection (e.g. \"PI 113869\").", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "collection", - "in" : "query", - "description" : "A specific panel/collection/population name this germplasm belongs to.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "familyCode", - "in" : "query", - "description" : "A familyCode representing the family this germplasm belongs to.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "binomialName", + "name" : "firstName", "in" : "query", - "description" : "List of the full binomial name (scientific name) to identify a germplasm", + "description" : "Persons first name", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "genus", + "name" : "lastName", "in" : "query", - "description" : "List of Genus names to identify germplasm", + "description" : "Persons last name", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "species", + "name" : "personDbId", "in" : "query", - "description" : "List of Species names to identify germplasm", + "description" : "Unique ID for this person", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "synonym", + "name" : "userID", "in" : "query", - "description" : "List of alternative names or IDs used to reference this germplasm", + "description" : "A systems user ID associated with this person. Different from personDbId because you could have a person who is not a user of the system.", "required" : false, "schema" : { "type" : "string" } }, - { - "name" : "includeParents", - "in" : "query", - "description" : "If this parameter is true, include the array of parents in the response", - "required" : false, - "schema" : { - "type" : "boolean" - } - }, - { - "name" : "includeSiblings", - "in" : "query", - "description" : "If this parameter is true, include the array of siblings in the response", - "required" : false, - "schema" : { - "type" : "boolean" - } - }, - { - "name" : "includeProgeny", - "in" : "query", - "description" : "If this parameter is true, include the array of progeny in the response", - "required" : false, - "schema" : { - "type" : "boolean" - } - }, - { - "name" : "includeFullTree", - "in" : "query", - "description" : "If this parameter is true, recursively include ALL of the nodes available in this pedigree tree", - "required" : false, - "schema" : { - "type" : "boolean" - } - }, - { - "name" : "pedigreeDepth", - "in" : "query", - "description" : "Recursively include this number of levels up the tree in the response (parents, grand-parents, great-grand-parents, etc)", - "required" : false, - "schema" : { - "type" : "integer", - "format" : "int32" - } - }, - { - "name" : "progenyDepth", - "in" : "query", - "description" : "Recursively include this number of levels down the tree in the response (children, grand-children, great-grand-children, etc)", - "required" : false, - "schema" : { - "type" : "integer", - "format" : "int32" - } - }, { "$ref" : "#/components/parameters/externalReferenceId" }, @@ -3244,7 +3225,7 @@ ], "responses" : { "200" : { - "$ref" : "#/components/responses/PedigreeNodeListResponse" + "$ref" : "#/components/responses/PersonListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -3259,10 +3240,10 @@ }, "post" : { "tags" : [ - "PedigreeNodes" + "People" ], - "summary" : "Create new PedigreeNode", - "description" : "Add new PedigreeNode to database", + "summary" : "Create new Person", + "description" : "Add new Person to database", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" @@ -3274,7 +3255,7 @@ "schema" : { "type" : "array", "items" : { - "$ref" : "#/components/schemas/PedigreeNode" + "$ref" : "#/components/schemas/PersonNewRequest" } } } @@ -3282,7 +3263,7 @@ }, "responses" : { "200" : { - "$ref" : "#/components/responses/PedigreeNodeListResponse" + "$ref" : "#/components/responses/PersonListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -3296,13 +3277,13 @@ } } }, - "/people" : { + "/plannedcrosses" : { "get" : { "tags" : [ - "People" + "Crosses" ], - "summary" : "Get a filtered list of Person", - "description" : "Get a list of Person", + "summary" : "Get a filtered list of PlannedCross", + "description" : "Get a list of PlannedCross", "parameters" : [ { "name" : "commonCropName", @@ -3323,171 +3304,36 @@ } }, { - "name" : "firstName", + "name" : "crossingProjectDbId", "in" : "query", - "description" : "Persons first name", + "description" : "Search for Crossing Projects with this unique id", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "lastName", + "name" : "crossingProjectName", "in" : "query", - "description" : "Persons last name", + "description" : "The human readable name for a crossing project", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "personDbId", + "name" : "plannedCrossDbId", "in" : "query", - "description" : "Unique ID for this person", + "description" : "Search for Planned Cross with this unique id", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "userID", + "name" : "plannedCrossName", "in" : "query", - "description" : "A systems user ID associated with this person. Different from personDbId because you could have a person who is not a user of the system.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "$ref" : "#/components/parameters/externalReferenceId" - }, - { - "$ref" : "#/components/parameters/externalReferenceID" - }, - { - "$ref" : "#/components/parameters/externalReferenceSource" - }, - { - "$ref" : "#/components/parameters/page" - }, - { - "$ref" : "#/components/parameters/pageSize" - }, - { - "$ref" : "#/components/parameters/authorizationHeader" - } - ], - "responses" : { - "200" : { - "$ref" : "#/components/responses/PersonListResponse" - }, - "400" : { - "$ref" : "#/components/responses/400BadRequest" - }, - "401" : { - "$ref" : "#/components/responses/401Unauthorized" - }, - "403" : { - "$ref" : "#/components/responses/403Forbidden" - } - } - }, - "post" : { - "tags" : [ - "People" - ], - "summary" : "Create new Person", - "description" : "Add new Person to database", - "parameters" : [ - { - "$ref" : "#/components/parameters/authorizationHeader" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/PersonNewRequest" - } - } - } - } - }, - "responses" : { - "200" : { - "$ref" : "#/components/responses/PersonListResponse" - }, - "400" : { - "$ref" : "#/components/responses/400BadRequest" - }, - "401" : { - "$ref" : "#/components/responses/401Unauthorized" - }, - "403" : { - "$ref" : "#/components/responses/403Forbidden" - } - } - } - }, - "/plannedcrosses" : { - "get" : { - "tags" : [ - "Crosses" - ], - "summary" : "Get a filtered list of PlannedCross", - "description" : "Get a list of PlannedCross", - "parameters" : [ - { - "name" : "commonCropName", - "in" : "query", - "description" : "The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names.\n\nUse this parameter to only return results associated with the given crops. \n\nUse `GET /commoncropnames` to find the list of available crops on a server.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "programDbId", - "in" : "query", - "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "crossingProjectDbId", - "in" : "query", - "description" : "Search for Crossing Projects with this unique id", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "crossingProjectName", - "in" : "query", - "description" : "The human readable name for a crossing project", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "plannedCrossDbId", - "in" : "query", - "description" : "Search for Planned Cross with this unique id", - "required" : false, - "schema" : { - "type" : "string" - } - }, - { - "name" : "plannedCrossName", - "in" : "query", - "description" : "Search for Planned Cross with this human readable name", + "description" : "Search for Planned Cross with this human readable name", "required" : false, "schema" : { "type" : "string" @@ -3760,6 +3606,48 @@ } } }, + "put" : { + "tags" : [ + "Plates" + ], + "summary" : "Update the details for an existing Plate", + "description" : "Update the details for an existing Plate", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/PlateNewRequest" + }, + "example" : "{_1={additionalInfo={}, externalReferences=[{}], plateBarcode=4eacf0b7, plateDbId=71ea8b72, plateFormat={}, plateName=72778960, program={}, sampleType={}, study={}, trial={}, samples=[{}]}, _2={additionalInfo={}, externalReferences=[{}], plateBarcode=4eacf0b8, plateDbId=71ea8b73, plateFormat={}, plateName=72778961, program={}, sampleType={}, study={}, trial={}, samples=[{}]}}" + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/PlateListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" + } + } + }, "post" : { "tags" : [ "Plates" @@ -4367,6 +4255,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } }, @@ -4788,13 +4679,13 @@ } } }, - "/studies" : { + "/seedlots/transactions" : { "get" : { "tags" : [ - "Studies" + "Seed Lots" ], - "summary" : "Get a filtered list of Study", - "description" : "Get a list of Study", + "summary" : "Get a filtered list of SeedLotTransaction", + "description" : "Get a list of SeedLotTransaction", "parameters" : [ { "name" : "commonCropName", @@ -4815,9 +4706,9 @@ } }, { - "name" : "locationDbId", + "name" : "germplasmName", "in" : "query", - "description" : "The location ids to search for", + "description" : "List of human readable names to identify germplasm to search for", "required" : false, "schema" : { "type" : "string" @@ -4833,111 +4724,264 @@ } }, { - "name" : "studyDbId", + "name" : "seedLotDbId", "in" : "query", - "description" : "List of study identifiers to search for", + "description" : "Unique id for a seed lot on this server", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "studyName", + "name" : "crossDbId", "in" : "query", - "description" : "List of study names to filter search results", + "description" : "Search for Cross with this unique id", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "trialDbId", + "name" : "crossName", "in" : "query", - "description" : "The ID which uniquely identifies a trial to search for", + "description" : "Search for Cross with this human readable name", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "observationVariableDbId", + "name" : "transactionDbId", "in" : "query", - "description" : "The DbIds of Variables to search for", + "description" : "Unique id for a Transaction that has occurred", "required" : false, "schema" : { "type" : "string" } }, { - "name" : "active", - "in" : "query", - "description" : "A flag to indicate if a Study is currently active and ongoing", - "required" : false, - "schema" : { - "type" : "boolean" - } - }, - { - "name" : "seasonDbId", - "in" : "query", - "description" : "The ID which uniquely identifies a season", - "required" : false, - "schema" : { - "type" : "string" - } + "$ref" : "#/components/parameters/externalReferenceId" }, { - "name" : "studyType", - "in" : "query", - "description" : "The type of study being performed. ex. \"Yield Trial\", etc", - "required" : false, - "schema" : { - "type" : "string" - } + "$ref" : "#/components/parameters/externalReferenceID" }, { - "name" : "studyCode", - "in" : "query", - "description" : "A short human readable code for a study", - "required" : false, - "schema" : { - "type" : "string" - } + "$ref" : "#/components/parameters/externalReferenceSource" }, { - "name" : "studyPUI", - "in" : "query", - "description" : "Permanent unique identifier associated with study data. For example, a URI or DOI", - "required" : false, - "schema" : { - "type" : "string" - } + "$ref" : "#/components/parameters/page" }, { - "name" : "sortBy", - "in" : "query", - "description" : "Name of the field to sort by.", - "required" : false, - "schema" : { - "type" : "string", - "description" : "Name of the field to sort by.", - "enum" : [ - "studyDbId", - "trialDbId", - "programDbId", - "locationDbId", - "seasonDbId", - "studyType", - "studyName", - "studyLocation", - "programName", - "germplasmDbId", - "observationVariableDbId" - ] - } + "$ref" : "#/components/parameters/pageSize" }, { - "name" : "sortOrder", + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "responses" : { + "200" : { + "$ref" : "#/components/responses/SeedLotTransactionListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + }, + "post" : { + "tags" : [ + "Seed Lots" + ], + "summary" : "Create new SeedLotTransaction", + "description" : "Add new SeedLotTransaction to database", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SeedLotTransactionNewRequest" + } + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/SeedLotTransactionListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/studies" : { + "get" : { + "tags" : [ + "Studies" + ], + "summary" : "Get a filtered list of Study", + "description" : "Get a list of Study", + "parameters" : [ + { + "name" : "commonCropName", + "in" : "query", + "description" : "The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names.\n\nUse this parameter to only return results associated with the given crops. \n\nUse `GET /commoncropnames` to find the list of available crops on a server.", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "germplasmDbId", + "in" : "query", + "description" : "List of IDs which uniquely identify germplasm to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "locationDbId", + "in" : "query", + "description" : "The location ids to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "programDbId", + "in" : "query", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyDbId", + "in" : "query", + "description" : "List of study identifiers to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyName", + "in" : "query", + "description" : "List of study names to filter search results", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "trialDbId", + "in" : "query", + "description" : "The ID which uniquely identifies a trial to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationVariableDbId", + "in" : "query", + "description" : "The DbIds of Variables to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "active", + "in" : "query", + "description" : "A flag to indicate if a Study is currently active and ongoing", + "required" : false, + "schema" : { + "type" : "boolean" + } + }, + { + "name" : "seasonDbId", + "in" : "query", + "description" : "The ID which uniquely identifies a season", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyType", + "in" : "query", + "description" : "The type of study being performed. ex. \"Yield Trial\", etc", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyCode", + "in" : "query", + "description" : "A short human readable code for a study", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyPUI", + "in" : "query", + "description" : "Permanent unique identifier associated with study data. For example, a URI or DOI", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "sortBy", + "in" : "query", + "description" : "Name of the field to sort by.", + "required" : false, + "schema" : { + "type" : "string", + "description" : "Name of the field to sort by.", + "enum" : [ + "studyDbId", + "trialDbId", + "programDbId", + "locationDbId", + "seasonDbId", + "studyType", + "studyName", + "studyLocation", + "programName", + "germplasmDbId", + "observationVariableDbId" + ] + } + }, + { + "name" : "sortOrder", "in" : "query", "description" : "Sort order direction. Ascending/Descending.", "required" : false, @@ -5608,13 +5652,13 @@ } } }, - "/studytypes" : { + "/commoncropnames" : { "get" : { "tags" : [ - "Studies" + "Programs" ], - "summary" : "Get the studyTypes of Study", - "description" : "List all available Study studyTypes", + "summary" : "Get the commonCropNames of Program", + "description" : "List all available Program commonCropNames", "parameters" : [ { "$ref" : "#/components/parameters/page" @@ -5628,7 +5672,7 @@ ], "responses" : { "200" : { - "$ref" : "#/components/responses/StudyStudyTypeListResponse" + "$ref" : "#/components/responses/ProgramCommonCropNameListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -5642,30 +5686,54 @@ } } }, - "/breedingmethods/{breedingMethodDbId}" : { + "/observationlevels" : { "get" : { "tags" : [ - "Germplasm" + "Studies" ], - "summary" : "Get the details of a specific BreedingMethod", - "description" : "Get details for a BreedingMethod", + "summary" : "Get the observationLevelses of Study", + "description" : "List all available Study observationLevelses", "parameters" : [ { - "$ref" : "#/components/parameters/authorizationHeader" + "name" : "studyDbId", + "in" : "query", + "description" : "List of study identifiers to search for", + "required" : false, + "schema" : { + "type" : "string" + } }, { - "name" : "breedingMethodDbId", - "in" : "path", - "description" : "the unique identifier for this breeding method", - "required" : true, + "name" : "programDbId", + "in" : "query", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "trialDbId", + "in" : "query", + "description" : "The ID which uniquely identifies a trial to search for", + "required" : false, "schema" : { "type" : "string" } + }, + { + "$ref" : "#/components/parameters/page" + }, + { + "$ref" : "#/components/parameters/pageSize" + }, + { + "$ref" : "#/components/parameters/authorizationHeader" } ], "responses" : { "200" : { - "$ref" : "#/components/responses/BreedingMethodSingleResponse" + "$ref" : "#/components/responses/StudyObservationLevelsListResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -5675,17 +5743,88 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" - }, - "404" : { - "$ref" : "#/components/responses/404NotFound" } } } }, - "/callsets/{callSetDbId}" : { + "/studytypes" : { "get" : { "tags" : [ - "CallSets" + "Studies" + ], + "summary" : "Get the studyTypes of Study", + "description" : "List all available Study studyTypes", + "parameters" : [ + { + "$ref" : "#/components/parameters/page" + }, + { + "$ref" : "#/components/parameters/pageSize" + }, + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "responses" : { + "200" : { + "$ref" : "#/components/responses/StudyStudyTypeListResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/breedingmethods/{breedingMethodDbId}" : { + "get" : { + "tags" : [ + "Germplasm" + ], + "summary" : "Get the details of a specific BreedingMethod", + "description" : "Get details for a BreedingMethod", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + }, + { + "name" : "breedingMethodDbId", + "in" : "path", + "description" : "the unique identifier for this breeding method", + "required" : true, + "schema" : { + "type" : "string" + } + } + ], + "responses" : { + "200" : { + "$ref" : "#/components/responses/BreedingMethodSingleResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" + } + } + } + }, + "/callsets/{callSetDbId}" : { + "get" : { + "tags" : [ + "CallSets" ], "summary" : "Get the details of a specific CallSet", "description" : "Get details for a CallSet", @@ -5792,9 +5931,6 @@ "200" : { "$ref" : "#/components/responses/CallListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -5803,6 +5939,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -5965,9 +6104,6 @@ "200" : { "$ref" : "#/components/responses/LinkageGroupListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -5976,6 +6112,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -6368,6 +6507,56 @@ } } }, + "/images/{imageDbId}/imagecontent" : { + "put" : { + "tags" : [ + "Images" + ], + "summary" : "Update the details for an existing string", + "description" : "Update the details for an existing string", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + }, + { + "name" : "imageDbId", + "in" : "path", + "description" : "The unique identifier of an image", + "required" : true, + "schema" : { + "type" : "string" + } + } + ], + "requestBody" : { + "content" : { + "image/*" : { + "schema" : { + "type" : "string", + "format" : "binary" + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/ImageSingleResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" + } + } + } + }, "/lists/{listDbId}" : { "get" : { "tags" : [ @@ -6716,32 +6905,39 @@ "$ref" : "#/components/responses/404NotFound" } } - } - }, - "/observationunits/{observationUnitDbId}" : { - "get" : { + }, + "put" : { "tags" : [ - "ObservationUnits" + "Observations" ], - "summary" : "Get the details of a specific ObservationUnit", - "description" : "Get details for a ObservationUnit", + "summary" : "Update the details for an existing Observation", + "description" : "Update the details for an existing Observation", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" }, { - "name" : "observationUnitDbId", + "name" : "observationDbId", "in" : "path", - "description" : "The ID which uniquely identifies an observation unit\n\nMIAPPE V1.1 (DM-70) Observation unit ID - Identifier used to identify the observation unit in data files containing the values observed or measured on that unit. Must be locally unique. ", + "description" : "The ID which uniquely identifies an observation", "required" : true, "schema" : { "type" : "string" } } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ObservationNewRequest" + } + } + } + }, "responses" : { "200" : { - "$ref" : "#/components/responses/ObservationUnitSingleResponse" + "$ref" : "#/components/responses/ObservationSingleResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -6758,21 +6954,21 @@ } } }, - "/variables/{observationVariableDbId}" : { + "/observationunits/{observationUnitDbId}" : { "get" : { "tags" : [ - "ObservationVariables" + "ObservationUnits" ], - "summary" : "Get the details of a specific ObservationVariable", - "description" : "Get details for a ObservationVariable", + "summary" : "Get the details of a specific ObservationUnit", + "description" : "Get details for a ObservationUnit", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" }, { - "name" : "observationVariableDbId", + "name" : "observationUnitDbId", "in" : "path", - "description" : "Variable unique identifier\n\nMIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation.", + "description" : "The ID which uniquely identifies an observation unit\n\nMIAPPE V1.1 (DM-70) Observation unit ID - Identifier used to identify the observation unit in data files containing the values observed or measured on that unit. Must be locally unique. ", "required" : true, "schema" : { "type" : "string" @@ -6781,7 +6977,7 @@ ], "responses" : { "200" : { - "$ref" : "#/components/responses/ObservationVariableSingleResponse" + "$ref" : "#/components/responses/ObservationUnitSingleResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -6799,18 +6995,18 @@ }, "put" : { "tags" : [ - "ObservationVariables" + "ObservationUnits" ], - "summary" : "Update the details for an existing ObservationVariable", - "description" : "Update the details for an existing ObservationVariable", + "summary" : "Update the details for an existing ObservationUnit", + "description" : "Update the details for an existing ObservationUnit", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" }, { - "name" : "observationVariableDbId", + "name" : "observationUnitDbId", "in" : "path", - "description" : "Variable unique identifier\n\nMIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation.", + "description" : "The ID which uniquely identifies an observation unit\n\nMIAPPE V1.1 (DM-70) Observation unit ID - Identifier used to identify the observation unit in data files containing the values observed or measured on that unit. Must be locally unique. ", "required" : true, "schema" : { "type" : "string" @@ -6821,14 +7017,14 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/ObservationVariableNewRequest" + "$ref" : "#/components/schemas/ObservationUnitNewRequest" } } } }, "responses" : { "200" : { - "$ref" : "#/components/responses/ObservationVariableSingleResponse" + "$ref" : "#/components/responses/ObservationUnitSingleResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -7613,6 +7809,15 @@ "type" : "string" } }, + { + "name" : "transactionDbId", + "in" : "query", + "description" : "Unique id for a Transaction that has occurred", + "required" : false, + "schema" : { + "type" : "string" + } + }, { "name" : "transactionDirection", "in" : "query", @@ -7642,9 +7847,6 @@ "200" : { "$ref" : "#/components/responses/SeedLotTransactionListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -7653,6 +7855,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -8028,9 +8233,6 @@ "200" : { "$ref" : "#/components/responses/CallListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -8039,6 +8241,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -8153,9 +8358,6 @@ "200" : { "$ref" : "#/components/responses/CallListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -8164,6 +8366,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -8217,9 +8422,6 @@ "200" : { "$ref" : "#/components/responses/CallSetListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -8228,6 +8430,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -8275,9 +8480,6 @@ "200" : { "$ref" : "#/components/responses/VariantListResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -8286,17 +8488,20 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } }, - "/search/allelematrix" : { + "/delete/images" : { "post" : { "tags" : [ - "AlleleMatrix" + "Images" ], - "summary" : "Submit a search request for `AlleleMatrix`", - "description" : "Submit a search request for `AlleleMatrix`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/alleleMatrix/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", + "summary" : "Submit a delete request for `Images`", + "description" : "Submit a delete request for `Images`", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" @@ -8306,17 +8511,14 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/AlleleMatrixSearchRequest" + "$ref" : "#/components/schemas/ImageSearchRequest" } } } }, "responses" : { "200" : { - "$ref" : "#/components/responses/AlleleMatrixSingleResponse" - }, - "202" : { - "$ref" : "#/components/responses/202AcceptedSearchResponse" + "$ref" : "#/components/responses/ImageDeleteResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -8330,13 +8532,13 @@ } } }, - "/search/calls" : { + "/delete/observations" : { "post" : { "tags" : [ - "Calls" + "Observations" ], - "summary" : "Submit a search request for `Call`", - "description" : "Submit a search request for `Call`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/call/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", + "summary" : "Submit a delete request for `Observations`", + "description" : "Submit a delete request for `Observations`", "parameters" : [ { "$ref" : "#/components/parameters/authorizationHeader" @@ -8346,17 +8548,14 @@ "content" : { "application/json" : { "schema" : { - "$ref" : "#/components/schemas/CallSearchRequest" + "$ref" : "#/components/schemas/ObservationSearchRequest" } } } }, "responses" : { "200" : { - "$ref" : "#/components/responses/CallListResponse" - }, - "202" : { - "$ref" : "#/components/responses/202AcceptedSearchResponse" + "$ref" : "#/components/responses/ObservationDeleteResponse" }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -8370,27 +8569,477 @@ } } }, - "/search/callsets" : { - "post" : { + "/observations/table" : { + "get" : { "tags" : [ - "CallSets" + "Observations" ], - "summary" : "Submit a search request for `CallSet`", - "description" : "Submit a search request for `CallSet`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/callSet/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", + "summary" : "Get a table of `Observation` records as a CSV file.", + "description" : "Get a table of `Observation` records returned directly as CSV text.", "parameters" : [ { - "$ref" : "#/components/parameters/authorizationHeader" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CallSetSearchRequest" - } + "name" : "germplasmDbId", + "in" : "query", + "description" : "List of IDs which uniquely identify germplasm to search for", + "required" : false, + "schema" : { + "type" : "string" } - } - }, + }, + { + "name" : "locationDbId", + "in" : "query", + "description" : "The location ids to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationVariableDbId", + "in" : "query", + "description" : "The DbIds of Variables to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "programDbId", + "in" : "query", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyDbId", + "in" : "query", + "description" : "List of study identifiers to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "trialDbId", + "in" : "query", + "description" : "The ID which uniquely identifies a trial to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitDbId", + "in" : "query", + "description" : "The unique id of an Observation Unit", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationLevel", + "in" : "query", + "description" : "Searches for values in ObservationUnit->observationUnitPosition->observationLevel", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelName", + "in" : "query", + "description" : "The Observation Unit Level. Returns only the observation unit of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelOrder", + "in" : "query", + "description" : "The Observation Unit Level Order Number. Returns only the observation unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelCode", + "in" : "query", + "description" : "The Observation Unit Level Code. This parameter should be used together with `observationUnitLevelName` \nor `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipName", + "in" : "query", + "description" : "The Observation Unit Level Relationship is a connection that this observation unit has to another level of the hierarchy. \n
For example, if you have several observation units at a 'plot' level, they might all share a relationship to the same 'field' level. \n
Use this parameter to identify groups of observation units that share a relationship level. \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipOrder", + "in" : "query", + "description" : "The Observation Unit Level Order Number. \n
Returns only the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipCode", + "in" : "query", + "description" : "The Observation Unit Level Code. \n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipDbId", + "in" : "query", + "description" : "The observationUnitDbId associated with a particular level and code.\n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationTimeStampRangeEnd", + "in" : "query", + "description" : "Timestamp range end", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + } + }, + { + "name" : "observationTimeStampRangeStart", + "in" : "query", + "description" : "Timestamp range start", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + } + }, + { + "name" : "seasonDbId", + "in" : "query", + "description" : "The year or Phenotyping campaign of a multi-annual study (trees, grape, ...)", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "$ref" : "#/components/parameters/acceptHeader" + }, + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "responses" : { + "200" : { + "$ref" : "#/components/responses/ObservationTableResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/observationunits/table" : { + "get" : { + "tags" : [ + "ObservationUnits" + ], + "summary" : "Get a table of `ObservationUnit` records as a CSV file.", + "description" : "Get a table of `ObservationUnit` records returned directly as CSV text.", + "parameters" : [ + { + "name" : "germplasmDbId", + "in" : "query", + "description" : "List of IDs which uniquely identify germplasm to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "locationDbId", + "in" : "query", + "description" : "The location ids to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "studyDbId", + "in" : "query", + "description" : "List of study identifiers to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationVariableDbId", + "in" : "query", + "description" : "The DbIds of Variables to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "programDbId", + "in" : "query", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "trialDbId", + "in" : "query", + "description" : "The ID which uniquely identifies a trial to search for", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitDbId", + "in" : "query", + "description" : "The unique id of an observation unit", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationLevel", + "in" : "query", + "description" : "Searches for values in ObservationUnit->observationUnitPosition->observationLevel", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelName", + "in" : "query", + "description" : "The Observation Unit Level. Returns only the observation unit of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelOrder", + "in" : "query", + "description" : "The Observation Unit Level Order Number. Returns only the observation unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelCode", + "in" : "query", + "description" : "The Observation Unit Level Code. This parameter should be used together with `observationUnitLevelName` \nor `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipName", + "in" : "query", + "description" : "The Observation Unit Level Relationship is a connection that this observation unit has to another level of the hierarchy. \n
For example, if you have several observation units at a 'plot' level, they might all share a relationship to the same 'field' level. \n
Use this parameter to identify groups of observation units that share a relationship level. \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipOrder", + "in" : "query", + "description" : "The Observation Unit Level Order Number. \n
Returns only the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipCode", + "in" : "query", + "description" : "The Observation Unit Level Code. \n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "observationUnitLevelRelationshipDbId", + "in" : "query", + "description" : "The observationUnitDbId associated with a particular level and code.\n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "name" : "seasonDbId", + "in" : "query", + "description" : "The year or Phenotyping campaign of a multi-annual study (trees, grape, ...)", + "required" : false, + "schema" : { + "type" : "string" + } + }, + { + "$ref" : "#/components/parameters/acceptHeader" + }, + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "responses" : { + "200" : { + "$ref" : "#/components/responses/ObservationUnitTableResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/search/allelematrix" : { + "post" : { + "tags" : [ + "AlleleMatrix" + ], + "summary" : "Submit a search request for `AlleleMatrix`", + "description" : "Submit a search request for `AlleleMatrix`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/alleleMatrix/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AlleleMatrixSearchRequest" + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/AlleleMatrixSingleResponse" + }, + "202" : { + "$ref" : "#/components/responses/202AcceptedSearchResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/search/calls" : { + "post" : { + "tags" : [ + "Calls" + ], + "summary" : "Submit a search request for `Call`", + "description" : "Submit a search request for `Call`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/call/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CallSearchRequest" + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/CallListResponse" + }, + "202" : { + "$ref" : "#/components/responses/202AcceptedSearchResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + } + } + } + }, + "/search/callsets" : { + "post" : { + "tags" : [ + "CallSets" + ], + "summary" : "Submit a search request for `CallSet`", + "description" : "Submit a search request for `CallSet`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/callSet/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CallSetSearchRequest" + } + } + } + }, "responses" : { "200" : { "$ref" : "#/components/responses/CallSetListResponse" @@ -8770,46 +9419,6 @@ } } }, - "/search/variables" : { - "post" : { - "tags" : [ - "ObservationVariables" - ], - "summary" : "Submit a search request for `ObservationVariable`", - "description" : "Submit a search request for `ObservationVariable`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/observationVariable/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", - "parameters" : [ - { - "$ref" : "#/components/parameters/authorizationHeader" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ObservationVariableSearchRequest" - } - } - } - }, - "responses" : { - "200" : { - "$ref" : "#/components/responses/ObservationVariableListResponse" - }, - "202" : { - "$ref" : "#/components/responses/202AcceptedSearchResponse" - }, - "400" : { - "$ref" : "#/components/responses/400BadRequest" - }, - "401" : { - "$ref" : "#/components/responses/401Unauthorized" - }, - "403" : { - "$ref" : "#/components/responses/403Forbidden" - } - } - } - }, "/search/pedigree" : { "post" : { "tags" : [ @@ -9278,9 +9887,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9289,6 +9895,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9330,9 +9939,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9341,6 +9947,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9379,9 +9988,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9390,6 +9996,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9428,9 +10037,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9439,6 +10045,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9477,9 +10086,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9488,6 +10094,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9526,9 +10135,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9537,6 +10143,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9575,9 +10184,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9586,6 +10192,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9624,9 +10233,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9635,6 +10241,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9673,9 +10282,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9684,6 +10290,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9722,9 +10331,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9733,6 +10339,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9771,9 +10380,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9782,6 +10388,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9820,9 +10429,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9831,55 +10437,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" - } - } - } - }, - "/search/variables/{searchResultsDbId}" : { - "get" : { - "tags" : [ - "ObservationVariables" - ], - "summary" : "Submit a search request for `ObservationVariable`
\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse the corresponding `GET /search/observationVariable/{searchResultsDbId}` to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", - "description" : "Get the results of a `ObservationVariable` search request
\nClients should submit a search request using the corresponding `POST /search/observationVariable` endpoint.\nSearch requests allow a client to send a complex query for data. However, the server may not respond with the search results immediately. \nIf a server needs more time to process the request, it might respond with a `searchResultsDbId`. \nUse this endpoint to retrieve the results of the search.
\nReview the Search Services documentation for additional implementation details.", - "parameters" : [ - { - "name" : "searchResultsDbId", - "in" : "path", - "description" : "searchResultsDbId", - "required" : true, - "schema" : { - "type" : "string" - } - }, - { - "$ref" : "#/components/parameters/page" - }, - { - "$ref" : "#/components/parameters/pageSize" - }, - { - "$ref" : "#/components/parameters/authorizationHeader" - } - ], - "responses" : { - "200" : { - "$ref" : "#/components/responses/ObservationVariableListResponse" - }, - "202" : { - "$ref" : "#/components/responses/202AcceptedSearchResponse" }, "404" : { "$ref" : "#/components/responses/404NotFound" - }, - "400" : { - "$ref" : "#/components/responses/400BadRequest" - }, - "401" : { - "$ref" : "#/components/responses/401Unauthorized" - }, - "403" : { - "$ref" : "#/components/responses/403Forbidden" } } } @@ -9918,9 +10478,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9929,6 +10486,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -9967,9 +10527,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -9978,6 +10535,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10016,9 +10576,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10027,6 +10584,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10065,9 +10625,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10076,6 +10633,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10114,9 +10674,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10125,6 +10682,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10163,9 +10723,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10174,6 +10731,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10212,9 +10772,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10223,6 +10780,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10261,9 +10821,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10272,6 +10829,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10310,9 +10870,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10321,6 +10878,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10362,9 +10922,6 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, - "404" : { - "$ref" : "#/components/responses/404NotFound" - }, "400" : { "$ref" : "#/components/responses/400BadRequest" }, @@ -10373,6 +10930,9 @@ }, "403" : { "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" } } } @@ -10411,8 +10971,122 @@ "202" : { "$ref" : "#/components/responses/202AcceptedSearchResponse" }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/404NotFound" + } + } + } + }, + "/variantsets/extract" : { + "post" : { + "tags" : [ + "VariantSets" + ], + "summary" : "Perform `extract` on `VariantSet`", + "description" : "Perform the `extract` action on `VariantSet`.", + "parameters" : [ + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VariantSetsExtractRequest" + } + } + } + }, + "responses" : { + "200" : { + "$ref" : "#/components/responses/VariantSetSingleResponse" + }, + "400" : { + "$ref" : "#/components/responses/400BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/401Unauthorized" + }, + "403" : { + "$ref" : "#/components/responses/403Forbidden" + }, "404" : { "$ref" : "#/components/responses/404NotFound" + } + } + } + }, + "/serverinfo" : { + "get" : { + "tags" : [ + "Server Info" + ], + "summary" : "Get the list of implemented Calls", + "description" : "Implementation Notes\n\nHaving a consistent structure for the path string of each call is very \nimportant for teams to be able to connect and find errors. Read more on Github.\n\nHere are the rules for the path of each call that should be returned\n\nEvery word in the call path should match the documentation exactly, both in \nspelling and capitalization. Note that path strings are all lower case, but \npath parameters are camel case.\n\nEach path should start relative to \\\"/\\\" and therefore should not include \\\"/\\\"\n\nNo leading or trailing slashes (\\\"/\\\") \n\nPath parameters are wrapped in curly braces (\\\"{}\\\"). The name of the path parameter \nshould be spelled exactly as it is specified in the documentation.\n\nExamples \n\nGOOD \"call\": \"germplasm/{germplasmDbId}/pedigree\" \n\nBAD \"call\": \"germplasm/{id}/pedigree\"\n\nBAD \"call\": \"germplasm/{germplasmDBid}/pedigree\" \n\nBAD \"call\": \"brapi/v2/germplasm/{germplasmDbId}/pedigree\" \n\nBAD \"call\": \"/germplasm/{germplasmDbId}/pedigree/\" \n\nBAD \"call\": \"germplasm//pedigree\"", + "parameters" : [ + { + "name" : "contentType", + "in" : "query", + "description" : "Filter the list of endpoints based on the response content type.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "$ref" : "#/components/schemas/ContentTypes" + } + }, + { + "name" : "dataType", + "in" : "query", + "description" : "**Deprecated in v2.1** Please use `contentType`. Github issue number #443\n
The data format supported by the call.", + "required" : false, + "deprecated" : true, + "style" : "form", + "explode" : true, + "schema" : { + "$ref" : "#/components/schemas/ContentTypes" + } + }, + { + "$ref" : "#/components/parameters/authorizationHeader" + } + ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "ServerInfoResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "$ref" : "#/components/schemas/ServerInfo" + } + } + } + } + } }, "400" : { "$ref" : "#/components/responses/400BadRequest" @@ -10570,16 +11244,20 @@ } }, "dataMatrixAbbreviations" : { - "type" : "string", - "description" : "`dataMatrixAbbreviations` is a comma separated list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", + "type" : "array", + "description" : "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", "nullable" : true, - "example" : "GT,RD" + "items" : { + "type" : "string" + } }, "dataMatrixNames" : { - "type" : "string", - "description" : "`dataMatrixNames` is a comma separated list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", + "type" : "array", + "description" : "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", "nullable" : true, - "example" : "Genotype,Read Depth" + "items" : { + "type" : "string" + } }, "dimensionCallSetPage" : { "type" : "integer", @@ -10735,16 +11413,20 @@ } }, "dataMatrixAbbreviations" : { - "type" : "string", - "description" : "`dataMatrixAbbreviations` is a comma separated list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", + "type" : "array", + "description" : "`dataMatrixAbbreviations` is a list of abbreviations (ie 'GT', 'RD' etc). This list controls which data matrices are returned in the response.", "nullable" : true, - "example" : "GT,RD" + "items" : { + "type" : "string" + } }, "dataMatrixNames" : { - "type" : "string", - "description" : "`dataMatrixNames` is a comma separated list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", + "type" : "array", + "description" : "`dataMatrixNames` is a list of names (ie 'Genotype', 'Read Depth' etc). This list controls which data matrices are returned in the response.", "nullable" : true, - "example" : "Genotype,Read Depth" + "items" : { + "type" : "string" + } }, "expandHomozygotes" : { "type" : "boolean", @@ -10999,12 +11681,10 @@ "$ref" : "#/components/schemas/Method" }, "ontologyReference" : { - "anyOf" : [ + "nullable" : true, + "allOf" : [ { "$ref" : "#/components/schemas/OntologyReference" - }, - { - "type" : "null" } ] }, @@ -12967,7 +13647,9 @@ }, "GeoJSONGeometry" : { "type" : "object", - "nullable" : true, + "discriminator" : { + "propertyName" : "type" + }, "oneOf" : [ { "required" : [ @@ -13205,12 +13887,10 @@ "$ref" : "#/components/schemas/Method" }, "ontologyReference" : { - "anyOf" : [ + "nullable" : true, + "allOf" : [ { "$ref" : "#/components/schemas/OntologyReference" - }, - { - "type" : "null" } ] }, @@ -15015,6 +15695,30 @@ "description" : "Short description of the facility in which the study was carried out.", "nullable" : true }, + "HeaderRow" : { + "type" : "string", + "description" : "valid header fields", + "enum" : [ + "observationTimeStamp", + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ] + }, "Image" : { "allOf" : [ { @@ -15109,10 +15813,19 @@ "nullable" : true }, "mimeType" : { + "pattern" : "image/.*", "type" : "string", "description" : "The file type of the image. Examples 'image/jpeg', 'image/png', 'image/svg', etc", "nullable" : true }, + "observationDbIds" : { + "type" : "array", + "description" : "A list of observation Ids this image is associated with, if applicable.", + "nullable" : true, + "items" : { + "type" : "string" + } + }, "observationUnitDbId" : { "type" : "string", "nullable" : true @@ -15641,7 +16354,12 @@ } }, "listType" : { - "$ref" : "#/components/schemas/ListType" + "nullable" : true, + "allOf" : [ + { + "$ref" : "#/components/schemas/ListType" + } + ] }, "programDbIds" : { "type" : "array", @@ -15756,7 +16474,12 @@ } }, "listType" : { - "$ref" : "#/components/schemas/ListType" + "nullable" : true, + "allOf" : [ + { + "$ref" : "#/components/schemas/ListType" + } + ] }, "page" : { "type" : "integer", @@ -16614,21 +17337,19 @@ "type" : "string", "nullable" : true }, - "observationVariableDbId" : { - "type" : "string", - "nullable" : true - }, - "observationVariableName" : { - "type" : "string", - "nullable" : true + "observationVariable" : { + "nullable" : true, + "allOf" : [ + { + "$ref" : "#/components/schemas/ObservationVariable" + } + ] }, "season" : { - "anyOf" : [ + "nullable" : true, + "allOf" : [ { "$ref" : "#/components/schemas/Season" - }, - { - "type" : "null" } ] }, @@ -17047,6 +17768,68 @@ }, "description" : "A value assigned for a specific ObservationVariable when observing a specific ObservationUnit." }, + "ObservationTable" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "description" : "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows.", + "items" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "headerRow" : { + "type" : "array", + "description" : "

The table is REQUIRED to have the following columns

\n
    \n
  • observationUnitDbId - Each row is related to one Observation Unit
  • \n
  • observationTimeStamp - Each row is has a time stamp for when the observation was taken
  • \n
  • At least one column with an observationVariableDbId
  • \n
\n

The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer

\n
    \n
  • observationUnitName
  • \n
  • studyDbId
  • \n
  • studyName
  • \n
  • germplasmDbId
  • \n
  • germplasmName
  • \n
  • positionCoordinateX
  • \n
  • positionCoordinateY
  • \n
  • year
  • \n
\n

The table also may have any number of Observation Unit Hierarchy Level columns. For example:

\n
    \n
  • field
  • \n
  • plot
  • \n
  • sub-plot
  • \n
  • plant
  • \n
  • pot
  • \n
  • block
  • \n
  • entry
  • \n
  • rep
  • \n
\n

The JSON representation provides a pair of extra arrays for defining the headers of the table. \nThe first array \"headerRow\" will always contain \"observationUnitDbId\" and any or all of the OPTIONAL column header names. \nThe second array \"observationVariables\" contains the names and DbIds for the Observation Variables represented in the table. \nBy appending the two arrays, you can construct the complete header row of the table.

", + "items" : { + "type" : "string", + "description" : "valid header fields", + "enum" : [ + "observationTimeStamp", + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ] + } + }, + "observationVariables" : { + "type" : "array", + "description" : "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table.", + "items" : { + "type" : "object", + "properties" : { + "observationVariableDbId" : { + "type" : "string", + "description" : "Variable unique identifier", + "example" : "367aa1a9" + }, + "observationVariableName" : { + "type" : "string", + "description" : "Variable name (usually a short name)", + "example" : "Plant height" + } + } + } + } + } + }, "ObservationTreatment" : { "type" : "object", "properties" : { @@ -17094,14 +17877,61 @@ "description" : "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", "nullable" : true }, - "levelOrder" : { - "type" : "integer", - "description" : "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "format" : "int32", - "nullable" : true + "levelOrder" : { + "type" : "integer", + "description" : "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", + "format" : "int32", + "nullable" : true + } + }, + "description" : "The exact level and level code of an observation unit. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\nMIAPPE V1.1 DM-71 Observation unit type \"Type of observation unit in textual form, usually one of the following: study, block, sub-block, plot, sub-plot, pot, plant. Use of other observation unit types is possible but not recommended. \nThe observation unit type can not be used to indicate sub-plant levels. However, observations can still be made on the sub-plant level, as long as the details are indicated in the associated observed variable (see observed variables). \nAlternatively, it is possible to use samples for more detailed tracing of sub-plant units, attaching the observations to them instead.\" " + }, + "ObservationUnitHierarchyLevelRequest" : { + "type" : "object", + "properties" : { + "programDbIds" : { + "type" : "array", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "items" : { + "type" : "string" + } + }, + "programNames" : { + "type" : "array", + "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", + "items" : { + "type" : "string" + } + }, + "studyDbIds" : { + "type" : "array", + "description" : "List of study identifiers to search for", + "items" : { + "type" : "string" + } + }, + "studyNames" : { + "type" : "array", + "description" : "List of study names to filter search results", + "items" : { + "type" : "string" + } + }, + "trialDbIds" : { + "type" : "array", + "description" : "The ID which uniquely identifies a trial to search for", + "items" : { + "type" : "string" + } + }, + "trialNames" : { + "type" : "array", + "description" : "The human readable name of a trial to search for", + "items" : { + "type" : "string" + } } - }, - "description" : "The exact level and level code of an observation unit. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\nMIAPPE V1.1 DM-71 Observation unit type \"Type of observation unit in textual form, usually one of the following: study, block, sub-block, plot, sub-plot, pot, plant. Use of other observation unit types is possible but not recommended. \nThe observation unit type can not be used to indicate sub-plant levels. However, observations can still be made on the sub-plant level, as long as the details are indicated in the associated observed variable (see observed variables). \nAlternatively, it is possible to use samples for more detailed tracing of sub-plant units, attaching the observations to them instead.\" " + } }, "ObservationUnitLevel" : { "type" : "object", @@ -17260,259 +18090,50 @@ ] }, "geoCoordinates" : { - "type" : "array", - "description" : "One geometry as defined by GeoJSON (RFC 7946). All coordinates are decimal values on the WGS84 geographic coordinate reference system.\n\nCopied from RFC 7946 Section 3.1.1\n\nA position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or\neasting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element.", - "nullable" : true, - "items" : { - "$ref" : "#/components/schemas/GeoJSON" - } - }, - "observationLevel" : { - "$ref" : "#/components/schemas/ObservationUnitLevel" - }, - "observationLevelRelationships" : { - "type" : "array", - "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ", - "nullable" : true, - "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" - } - }, - "positionCoordinateX" : { - "type" : "string", - "description" : "The X position coordinate for an observation unit. Different systems may use different coordinate systems.", - "nullable" : true - }, - "positionCoordinateXType" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/PositionCoordinateType" - }, - { - "type" : "null" - } - ] - }, - "positionCoordinateY" : { - "type" : "string", - "description" : "The Y position coordinate for an observation unit. Different systems may use different coordinate systems.", - "nullable" : true - }, - "positionCoordinateYType" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/PositionCoordinateType" - }, - { - "type" : "null" - } - ] - } - }, - "description" : "All positional and layout information related to this Observation Unit", - "nullable" : true - }, - "ObservationUnitRequest" : { - "type" : "object", - "properties" : { - "commonCropNames" : { - "type" : "array", - "description" : "The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names.\n\nUse this parameter to only return results associated with the given crops. \n\nUse `GET /commoncropnames` to find the list of available crops on a server.", - "items" : { - "type" : "string" - } - }, - "germplasmDbIds" : { - "type" : "array", - "description" : "List of IDs which uniquely identify germplasm to search for", - "nullable" : true, - "items" : { - "type" : "string" - } - }, - "germplasmNames" : { - "type" : "array", - "description" : "List of human readable names to identify germplasm to search for", - "nullable" : true, - "items" : { - "type" : "string" - } - }, - "includeObservations" : { - "type" : "boolean", - "description" : "Use this parameter to include a list of observations embedded in each ObservationUnit object. \n\nCAUTION - Use this parameter at your own risk. It may return large, unpaginated lists of observation data. Only set this value to True if you are sure you need to.", - "nullable" : true, - "example" : false - }, - "locationDbIds" : { - "type" : "array", - "description" : "The location ids to search for", - "items" : { - "type" : "string" - } - }, - "locationNames" : { - "type" : "array", - "description" : "A human readable names to search for", - "items" : { - "type" : "string" - } - }, - "observationLevelRelationships" : { - "type" : "array", - "description" : "Searches for values in ObservationUnit->observationUnitPosition->observationLevelRelationships", - "nullable" : true, - "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" - } - }, - "observationLevels" : { - "type" : "array", - "description" : "Searches for values in ObservationUnit->observationUnitPosition->observationLevel", - "nullable" : true, - "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevel" - } - }, - "observationUnitDbIds" : { - "type" : "array", - "description" : "The unique id of an observation unit", - "nullable" : true, - "items" : { - "type" : "string" - } - }, - "observationUnitLevelCodes" : { - "type" : "array", - "description" : "The Observation Unit Level Code. This parameter should be used together with `observationUnitLevelName` \nor `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitLevelNames" : { - "type" : "array", - "description" : "The Observation Unit Level. Returns only the observation unit of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitLevelOrders" : { - "type" : "array", - "description" : "The Observation Unit Level Order Number. Returns only the observation unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitLevelRelationshipCodes" : { - "type" : "array", - "description" : "The Observation Unit Level Code. \n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitLevelRelationshipDbIds" : { - "type" : "array", - "description" : "The observationUnitDbId associated with a particular level and code.\n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitLevelRelationshipNames" : { - "type" : "array", - "description" : "The Observation Unit Level Relationship is a connection that this observation unit has to another level of the hierarchy. \n
For example, if you have several observation units at a 'plot' level, they might all share a relationship to the same 'field' level. \n
Use this parameter to identify groups of observation units that share a relationship level. \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitLevelRelationshipOrders" : { - "type" : "array", - "description" : "The Observation Unit Level Order Number. \n
Returns only the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", - "items" : { - "type" : "string" - } - }, - "observationUnitNames" : { - "type" : "array", - "description" : "The human readable identifier for an Observation Unit", - "nullable" : true, - "items" : { - "type" : "string" - } - }, - "observationVariableDbIds" : { - "type" : "array", - "description" : "The DbIds of Variables to search for", - "items" : { - "type" : "string" - } - }, - "observationVariableNames" : { - "type" : "array", - "description" : "The names of Variables to search for", - "items" : { - "type" : "string" - } - }, - "observationVariablePUIs" : { - "type" : "array", - "description" : "The Permanent Unique Identifier of an Observation Variable, usually in the form of a URI", - "items" : { - "type" : "string" - } - }, - "programDbIds" : { - "type" : "array", - "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", - "items" : { - "type" : "string" - } - }, - "programNames" : { - "type" : "array", - "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", - "items" : { - "type" : "string" - } - }, - "seasonDbIds" : { - "type" : "array", - "description" : "The year or Phenotyping campaign of a multi-annual study (trees, grape, ...)", - "nullable" : true, - "items" : { - "type" : "string" - } + "$ref" : "#/components/schemas/GeoJSON" }, - "studyDbIds" : { - "type" : "array", - "description" : "List of study identifiers to search for", - "items" : { - "type" : "string" - } + "observationLevel" : { + "$ref" : "#/components/schemas/ObservationUnitLevel" }, - "studyNames" : { + "observationLevelRelationships" : { "type" : "array", - "description" : "List of study names to filter search results", + "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ", + "nullable" : true, "items" : { - "type" : "string" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" } }, - "trialDbIds" : { - "type" : "array", - "description" : "The ID which uniquely identifies a trial to search for", - "items" : { - "type" : "string" - } + "positionCoordinateX" : { + "type" : "string", + "description" : "The X position coordinate for an observation unit. Different systems may use different coordinate systems.", + "nullable" : true }, - "trialNames" : { - "type" : "array", - "description" : "The human readable name of a trial to search for", - "items" : { - "type" : "string" - } + "positionCoordinateXType" : { + "nullable" : true, + "allOf" : [ + { + "$ref" : "#/components/schemas/PositionCoordinateType" + } + ] + }, + "positionCoordinateY" : { + "type" : "string", + "description" : "The Y position coordinate for an observation unit. Different systems may use different coordinate systems.", + "nullable" : true + }, + "positionCoordinateYType" : { + "nullable" : true, + "allOf" : [ + { + "$ref" : "#/components/schemas/PositionCoordinateType" + } + ] } - } + }, + "description" : "All positional and layout information related to this Observation Unit", + "nullable" : true }, - "ObservationUnitSearchRequest" : { + "ObservationUnitRequest" : { "type" : "object", "properties" : { "commonCropNames" : { @@ -17522,28 +18143,6 @@ "type" : "string" } }, - "externalReferenceIDs" : { - "type" : "array", - "description" : "**Deprecated in v2.1** Please use `externalReferenceIds`. Github issue number #460 \n
List of external reference IDs. Could be a simple strings or a URIs. (use with `externalReferenceSources` parameter)", - "deprecated" : true, - "items" : { - "type" : "string" - } - }, - "externalReferenceIds" : { - "type" : "array", - "description" : "List of external reference IDs. Could be a simple strings or a URIs. (use with `externalReferenceSources` parameter)", - "items" : { - "type" : "string" - } - }, - "externalReferenceSources" : { - "type" : "array", - "description" : "List of identifiers for the source system or database of an external reference (use with `externalReferenceIDs` parameter)", - "items" : { - "type" : "string" - } - }, "germplasmDbIds" : { "type" : "array", "description" : "List of IDs which uniquely identify germplasm to search for", @@ -17604,235 +18203,63 @@ "type" : "string" } }, - "observationUnitNames" : { - "type" : "array", - "description" : "The human readable identifier for an Observation Unit", - "nullable" : true, - "items" : { - "type" : "string" - } - }, - "observationVariableDbIds" : { - "type" : "array", - "description" : "The DbIds of Variables to search for", - "items" : { - "type" : "string" - } - }, - "observationVariableNames" : { - "type" : "array", - "description" : "The names of Variables to search for", - "items" : { - "type" : "string" - } - }, - "observationVariablePUIs" : { - "type" : "array", - "description" : "The Permanent Unique Identifier of an Observation Variable, usually in the form of a URI", - "items" : { - "type" : "string" - } - }, - "page" : { - "type" : "integer", - "description" : "Which result page is requested. The page indexing starts at 0 (the first page is 'page'= 0). Default is `0`.", - "format" : "int32", - "example" : 0 - }, - "pageSize" : { - "type" : "integer", - "description" : "The size of the pages to be returned. Default is `1000`.", - "format" : "int32", - "example" : 1000 - }, - "programDbIds" : { - "type" : "array", - "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", - "items" : { - "type" : "string" - } - }, - "programNames" : { - "type" : "array", - "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", - "items" : { - "type" : "string" - } - }, - "seasonDbIds" : { - "type" : "array", - "description" : "The year or Phenotyping campaign of a multi-annual study (trees, grape, ...)", - "nullable" : true, - "items" : { - "type" : "string" - } - }, - "studyDbIds" : { - "type" : "array", - "description" : "List of study identifiers to search for", - "items" : { - "type" : "string" - } - }, - "studyNames" : { + "observationUnitLevelCodes" : { "type" : "array", - "description" : "List of study names to filter search results", + "description" : "The Observation Unit Level Code. This parameter should be used together with `observationUnitLevelName` \nor `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", "items" : { "type" : "string" } }, - "trialDbIds" : { + "observationUnitLevelNames" : { "type" : "array", - "description" : "The ID which uniquely identifies a trial to search for", + "description" : "The Observation Unit Level. Returns only the observation unit of the specified Level. \n
References ObservationUnit->observationUnitPosition->observationLevel->levelName \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", "items" : { "type" : "string" } }, - "trialNames" : { + "observationUnitLevelOrders" : { "type" : "array", - "description" : "The human readable name of a trial to search for", + "description" : "The Observation Unit Level Order Number. Returns only the observation unit of the specified Level. \nReferences ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", "items" : { "type" : "string" } - } - }, - "description" : "A representation of the physical entity being observed during a phenotype data collection process. Typically, this is a Plot or a Plant, but it could include things like Fields, Blocks, or Samples." - }, - "ObservationVariable" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/ObservationVariableNewRequest" - }, - { - "required" : [ - "observationVariableDbId" - ], - "type" : "object", - "properties" : { - "observationVariableDbId" : { - "type" : "string", - "description" : "Variable unique identifier\n\nMIAPPE V1.1 (DM-83) Variable ID - Code used to identify the variable in the data file. We recommend using a variable definition from the Crop Ontology where possible. Otherwise, the Crop Ontology naming convention is recommended: __). A variable ID must be unique within a given investigation." - } - } - } - ] - }, - "ObservationVariableNewRequest" : { - "required" : [ - "method", - "observationVariableName", - "scale", - "trait" - ], - "type" : "object", - "properties" : { - "additionalInfo" : { - "$ref" : "#/components/schemas/AdditionalInfo" }, - "commonCropName" : { - "type" : "string", - "description" : "Crop name (examples: \"Maize\", \"Wheat\")", - "nullable" : true - }, - "contextOfUse" : { + "observationUnitLevelRelationshipCodes" : { "type" : "array", - "description" : "Indication of how trait is routinely used. (examples: [\"Trial evaluation\", \"Nursery evaluation\"])", - "nullable" : true, + "description" : "The Observation Unit Level Code. \n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->levelCode \n
For more information on Observation Levels, please review the Observation Levels documentation. ", "items" : { "type" : "string" - } - }, - "defaultValue" : { - "type" : "string", - "description" : "Variable default value. (examples: \"red\", \"2.3\", etc.)", - "nullable" : true - }, - "documentationURL" : { - "type" : "string", - "description" : "A URL to the human readable documentation of an object", - "format" : "uri", - "nullable" : true - }, - "externalReferences" : { - "type" : "array", - "description" : "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "nullable" : true, - "items" : { - "$ref" : "#/components/schemas/ExternalReference" - } - }, - "growthStage" : { - "type" : "string", - "description" : "Growth stage at which measurement is made (examples: \"flowering\")", - "nullable" : true - }, - "institution" : { - "type" : "string", - "description" : "Name of institution submitting the variable", - "nullable" : true - }, - "language" : { - "type" : "string", - "description" : "2 letter ISO 639-1 code for the language of submission of the variable.", - "nullable" : true - }, - "method" : { - "$ref" : "#/components/schemas/Method" - }, - "observationVariableName" : { - "type" : "string", - "description" : "Variable name (usually a short name)\n\nMIAPPE V1.1 (DM-84) Variable name - Name of the variable." - }, - "observationVariablePUI" : { - "type" : "string", - "description" : "The Permanent Unique Identifier of a Observation Variable, usually in the form of a URI", - "nullable" : true - }, - "ontologyReference" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/OntologyReference" - }, - { - "type" : "null" - } - ] - }, - "scale" : { - "$ref" : "#/components/schemas/Scale" - }, - "scientist" : { - "type" : "string", - "description" : "Name of scientist submitting the variable.", - "nullable" : true + } }, - "status" : { - "type" : "string", - "description" : "Variable status. (examples: \"recommended\", \"obsolete\", \"legacy\", etc.)", - "nullable" : true + "observationUnitLevelRelationshipDbIds" : { + "type" : "array", + "description" : "The observationUnitDbId associated with a particular level and code.\n
This parameter should be used together with `observationUnitLevelName` or `observationUnitLevelOrder`. References ObservationUnit->observationUnitPosition->observationLevel->observationUnitDbId \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "items" : { + "type" : "string" + } }, - "submissionTimestamp" : { - "type" : "string", - "description" : "Timestamp when the Variable was added (ISO 8601)", - "format" : "date-time", - "nullable" : true + "observationUnitLevelRelationshipNames" : { + "type" : "array", + "description" : "The Observation Unit Level Relationship is a connection that this observation unit has to another level of the hierarchy. \n
For example, if you have several observation units at a 'plot' level, they might all share a relationship to the same 'field' level. \n
Use this parameter to identify groups of observation units that share a relationship level. \n
**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "items" : { + "type" : "string" + } }, - "synonyms" : { + "observationUnitLevelRelationshipOrders" : { "type" : "array", - "description" : "Other variable names", + "description" : "The Observation Unit Level Order Number. \n
Returns only the observation unit of the specified Level. References ObservationUnit->observationUnitPosition->observationLevel->levelOrder \n
For more information on Observation Levels, please review the Observation Levels documentation. ", + "items" : { + "type" : "string" + } + }, + "observationUnitNames" : { + "type" : "array", + "description" : "The human readable identifier for an Observation Unit", "nullable" : true, "items" : { "type" : "string" } }, - "trait" : { - "$ref" : "#/components/schemas/Trait" - } - } - }, - "ObservationVariableParameters" : { - "type" : "object", - "properties" : { "observationVariableDbIds" : { "type" : "array", "description" : "The DbIds of Variables to search for", @@ -17853,10 +18280,60 @@ "items" : { "type" : "string" } + }, + "programDbIds" : { + "type" : "array", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "items" : { + "type" : "string" + } + }, + "programNames" : { + "type" : "array", + "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", + "items" : { + "type" : "string" + } + }, + "seasonDbIds" : { + "type" : "array", + "description" : "The year or Phenotyping campaign of a multi-annual study (trees, grape, ...)", + "nullable" : true, + "items" : { + "type" : "string" + } + }, + "studyDbIds" : { + "type" : "array", + "description" : "List of study identifiers to search for", + "items" : { + "type" : "string" + } + }, + "studyNames" : { + "type" : "array", + "description" : "List of study names to filter search results", + "items" : { + "type" : "string" + } + }, + "trialDbIds" : { + "type" : "array", + "description" : "The ID which uniquely identifies a trial to search for", + "items" : { + "type" : "string" + } + }, + "trialNames" : { + "type" : "array", + "description" : "The human readable name of a trial to search for", + "items" : { + "type" : "string" + } } } }, - "ObservationVariableRequest" : { + "ObservationUnitSearchRequest" : { "type" : "object", "properties" : { "commonCropNames" : { @@ -17866,192 +18343,285 @@ "type" : "string" } }, - "dataTypes" : { + "externalReferenceIDs" : { "type" : "array", - "description" : "List of scale data types to filter search results", + "description" : "**Deprecated in v2.1** Please use `externalReferenceIds`. Github issue number #460 \n
List of external reference IDs. Could be a simple strings or a URIs. (use with `externalReferenceSources` parameter)", + "deprecated" : true, "items" : { - "$ref" : "#/components/schemas/TraitDataType" + "type" : "string" } }, - "methodDbIds" : { + "externalReferenceIds" : { "type" : "array", - "description" : "List of methods to filter search results", + "description" : "List of external reference IDs. Could be a simple strings or a URIs. (use with `externalReferenceSources` parameter)", "items" : { "type" : "string" } }, - "methodNames" : { + "externalReferenceSources" : { "type" : "array", - "description" : "Human readable name for the method\n
MIAPPE V1.1 (DM-88) Method Name of the method of observation", + "description" : "List of identifiers for the source system or database of an external reference (use with `externalReferenceIDs` parameter)", "items" : { "type" : "string" } }, - "methodPUIs" : { + "germplasmDbIds" : { "type" : "array", - "description" : "The Permanent Unique Identifier of a Method, usually in the form of a URI", + "description" : "List of IDs which uniquely identify germplasm to search for", + "nullable" : true, "items" : { "type" : "string" } }, - "observationVariableDbIds" : { + "germplasmNames" : { "type" : "array", - "description" : "The DbIds of Variables to search for", + "description" : "List of human readable names to identify germplasm to search for", + "nullable" : true, "items" : { "type" : "string" } }, - "observationVariableNames" : { + "includeObservations" : { + "type" : "boolean", + "description" : "Use this parameter to include a list of observations embedded in each ObservationUnit object. \n\nCAUTION - Use this parameter at your own risk. It may return large, unpaginated lists of observation data. Only set this value to True if you are sure you need to.", + "nullable" : true, + "example" : false + }, + "locationDbIds" : { "type" : "array", - "description" : "The names of Variables to search for", + "description" : "The location ids to search for", "items" : { "type" : "string" } }, - "observationVariablePUIs" : { + "locationNames" : { "type" : "array", - "description" : "The Permanent Unique Identifier of an Observation Variable, usually in the form of a URI", + "description" : "A human readable names to search for", "items" : { "type" : "string" } }, - "ontologyDbIds" : { + "observationLevelRelationships" : { "type" : "array", - "description" : "List of ontology IDs to search for", + "description" : "Searches for values in ObservationUnit->observationUnitPosition->observationLevelRelationships", + "nullable" : true, "items" : { - "type" : "string" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" } }, - "programDbIds" : { + "observationLevels" : { "type" : "array", - "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "description" : "Searches for values in ObservationUnit->observationUnitPosition->observationLevel", + "nullable" : true, "items" : { - "type" : "string" + "$ref" : "#/components/schemas/ObservationUnitLevel" } }, - "programNames" : { + "observationUnitDbIds" : { "type" : "array", - "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", + "description" : "The unique id of an observation unit", + "nullable" : true, "items" : { "type" : "string" } }, - "scaleDbIds" : { + "observationUnitNames" : { "type" : "array", - "description" : "The unique identifier for a Scale", + "description" : "The human readable identifier for an Observation Unit", + "nullable" : true, "items" : { "type" : "string" } }, - "scaleNames" : { + "observationVariableDbIds" : { "type" : "array", - "description" : "Name of the scale\n
MIAPPE V1.1 (DM-92) Scale Name of the scale associated with the variable", + "description" : "The DbIds of Variables to search for", "items" : { "type" : "string" } }, - "scalePUIs" : { + "observationVariableNames" : { "type" : "array", - "description" : "The Permanent Unique Identifier of a Scale, usually in the form of a URI", + "description" : "The names of Variables to search for", "items" : { "type" : "string" } }, - "studyDbId" : { + "observationVariablePUIs" : { "type" : "array", - "description" : "**Deprecated in v2.1** Please use `studyDbIds`. Github issue number #483 \n
The unique ID of a studies to filter on", - "deprecated" : true, + "description" : "The Permanent Unique Identifier of an Observation Variable, usually in the form of a URI", "items" : { "type" : "string" } }, - "studyDbIds" : { + "page" : { + "type" : "integer", + "description" : "Which result page is requested. The page indexing starts at 0 (the first page is 'page'= 0). Default is `0`.", + "format" : "int32", + "example" : 0 + }, + "pageSize" : { + "type" : "integer", + "description" : "The size of the pages to be returned. Default is `1000`.", + "format" : "int32", + "example" : 1000 + }, + "programDbIds" : { "type" : "array", - "description" : "List of study identifiers to search for", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", "items" : { "type" : "string" } }, - "studyNames" : { + "programNames" : { "type" : "array", - "description" : "List of study names to filter search results", + "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", "items" : { "type" : "string" } }, - "traitAttributePUIs" : { + "seasonDbIds" : { "type" : "array", - "description" : "The Permanent Unique Identifier of a Trait Attribute, usually in the form of a URI\n
A trait can be decomposed as \"Trait\" = \"Entity\" + \"Attribute\", the attribute is the observed feature (or characteristic) of the entity e.g., for \"grain colour\", attribute = \"colour\"", + "description" : "The year or Phenotyping campaign of a multi-annual study (trees, grape, ...)", + "nullable" : true, "items" : { "type" : "string" } }, - "traitAttributes" : { + "studyDbIds" : { "type" : "array", - "description" : "A trait can be decomposed as \"Trait\" = \"Entity\" + \"Attribute\", the attribute is the observed feature (or characteristic) of the entity e.g., for \"grain colour\", attribute = \"colour\"", + "description" : "List of study identifiers to search for", "items" : { "type" : "string" } }, - "traitClasses" : { + "studyNames" : { "type" : "array", - "description" : "List of trait classes to filter search results", + "description" : "List of study names to filter search results", "items" : { "type" : "string" } }, - "traitDbIds" : { + "trialDbIds" : { "type" : "array", - "description" : "The unique identifier for a Trait", + "description" : "The ID which uniquely identifies a trial to search for", "items" : { "type" : "string" } }, - "traitEntities" : { + "trialNames" : { "type" : "array", - "description" : "A trait can be decomposed as \"Trait\" = \"Entity\" + \"Attribute\", the entity is the part of the plant that the trait refers to e.g., for \"grain colour\", entity = \"grain\"", + "description" : "The human readable name of a trial to search for", "items" : { "type" : "string" } + } + }, + "description" : "A representation of the physical entity being observed during a phenotype data collection process. Typically, this is a Plot or a Plant, but it could include things like Fields, Blocks, or Samples." + }, + "ObservationUnitTable" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "description" : "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows.", + "items" : { + "type" : "array", + "items" : { + "type" : "string" + } + } }, - "traitEntityPUIs" : { + "headerRow" : { "type" : "array", - "description" : "The Permanent Unique Identifier of a Trait Entity, usually in the form of a URI\n
A trait can be decomposed as \"Trait\" = \"Entity\" + \"Attribute\", the entity is the part of the plant that the trait refers to e.g., for \"grain colour\", entity = \"grain\" ", + "description" : "

The table is REQUIRED to have the following columns

\n
    \n
  • observationUnitDbId - Each row is related to one Observation Unit
  • \n
  • At least one column with an observationVariableDbId
  • \n
\n

The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer

\n
    \n
  • observationUnitName
  • \n
  • studyDbId
  • \n
  • studyName
  • \n
  • germplasmDbId
  • \n
  • germplasmName
  • \n
  • positionCoordinateX
  • \n
  • positionCoordinateY
  • \n
  • year
  • \n
\n

The table also may have any number of Observation Unit Hierarchy Level columns. For example:

\n
    \n
  • field
  • \n
  • plot
  • \n
  • sub-plot
  • \n
  • plant
  • \n
  • pot
  • \n
  • block
  • \n
  • entry
  • \n
  • rep
  • \n
\n

The JSON representation provides a pair of extra arrays for defining the headers of the table. \nThe first array \"headerRow\" will always contain \"observationUnitDbId\" and any or all of the OPTIONAL column header names. \nThe second array \"observationVariables\" contains the names and DbIds for the Observation Variables represented in the table. \nBy appending the two arrays, you can construct the complete header row of the table.

", "items" : { - "type" : "string" + "type" : "string", + "description" : "valid header fields", + "enum" : [ + "observationUnitDbId", + "observationUnitName", + "studyDbId", + "studyName", + "germplasmDbId", + "germplasmName", + "positionCoordinateX", + "positionCoordinateY", + "year", + "field", + "plot", + "sub-plot", + "plant", + "pot", + "block", + "entry", + "rep" + ] } }, - "traitNames" : { + "observationVariables" : { "type" : "array", - "description" : "The human readable name of a trait\n
MIAPPE V1.1 (DM-86) Trait - Name of the (plant or environmental) trait under observation", + "description" : "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table.", "items" : { - "type" : "string" + "type" : "object", + "properties" : { + "observationVariableDbId" : { + "type" : "string", + "description" : "Variable unique identifier", + "example" : "367aa1a9" + }, + "observationVariableName" : { + "type" : "string", + "description" : "Variable name (usually a short name)", + "example" : "Plant height" + } + } } + } + } + }, + "ObservationVariable" : { + "type" : "object", + "properties" : { + "observationVariableDbId" : { + "type" : "string", + "description" : "Variable unique identifier", + "example" : "367aa1a9" }, - "traitPUIs" : { + "observationVariableName" : { + "type" : "string", + "description" : "Variable name (usually a short name)", + "example" : "Plant height" + } + } + }, + "ObservationVariableParameters" : { + "type" : "object", + "properties" : { + "observationVariableDbIds" : { "type" : "array", - "description" : "The Permanent Unique Identifier of a Trait, usually in the form of a URI", + "description" : "The DbIds of Variables to search for", "items" : { "type" : "string" } }, - "trialDbIds" : { + "observationVariableNames" : { "type" : "array", - "description" : "The ID which uniquely identifies a trial to search for", + "description" : "The names of Variables to search for", "items" : { "type" : "string" } }, - "trialNames" : { + "observationVariablePUIs" : { "type" : "array", - "description" : "The human readable name of a trial to search for", + "description" : "The Permanent Unique Identifier of an Observation Variable, usually in the form of a URI", "items" : { "type" : "string" } } } }, - "ObservationVariableSearchRequest" : { + "ObservationVariableRequest" : { "type" : "object", "properties" : { "commonCropNames" : { @@ -18068,28 +18638,6 @@ "$ref" : "#/components/schemas/TraitDataType" } }, - "externalReferenceIDs" : { - "type" : "array", - "description" : "**Deprecated in v2.1** Please use `externalReferenceIds`. Github issue number #460 \n
List of external reference IDs. Could be a simple strings or a URIs. (use with `externalReferenceSources` parameter)", - "deprecated" : true, - "items" : { - "type" : "string" - } - }, - "externalReferenceIds" : { - "type" : "array", - "description" : "List of external reference IDs. Could be a simple strings or a URIs. (use with `externalReferenceSources` parameter)", - "items" : { - "type" : "string" - } - }, - "externalReferenceSources" : { - "type" : "array", - "description" : "List of identifiers for the source system or database of an external reference (use with `externalReferenceIDs` parameter)", - "items" : { - "type" : "string" - } - }, "methodDbIds" : { "type" : "array", "description" : "List of methods to filter search results", @@ -18139,18 +18687,6 @@ "type" : "string" } }, - "page" : { - "type" : "integer", - "description" : "Which result page is requested. The page indexing starts at 0 (the first page is 'page'= 0). Default is `0`.", - "format" : "int32", - "example" : 0 - }, - "pageSize" : { - "type" : "integer", - "description" : "The size of the pages to be returned. Default is `1000`.", - "format" : "int32", - "example" : 1000 - }, "programDbIds" : { "type" : "array", "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", @@ -21366,12 +21902,10 @@ "nullable" : true }, "validValues" : { - "anyOf" : [ + "nullable" : true, + "allOf" : [ { "$ref" : "#/components/schemas/ValidValues" - }, - { - "type" : "null" } ] } @@ -21652,9 +22186,26 @@ } }, "SeedLotTransaction" : { - "required" : [ - "transactionDbId" - ], + "allOf" : [ + { + "$ref" : "#/components/schemas/SeedLotTransactionNewRequest" + }, + { + "required" : [ + "transactionDbId" + ], + "type" : "object", + "properties" : { + "transactionDbId" : { + "type" : "string", + "description" : "Unique DbId for the Seed Lot Transaction" + } + }, + "description" : "The record of an event where material was moved in or out of a particular SeedLot" + } + ] + }, + "SeedLotTransactionNewRequest" : { "type" : "object", "properties" : { "additionalInfo" : { @@ -21681,10 +22232,6 @@ "type" : "string", "nullable" : true }, - "transactionDbId" : { - "type" : "string", - "description" : "Unique DbId for the Seed Lot Transaction" - }, "transactionDescription" : { "type" : "string", "description" : "A general description of this Seed Lot Transaction", @@ -21707,7 +22254,65 @@ "SeedLotTransactionRequest" : { "type" : "object", "properties" : { - "transactionDbIs" : { + "commonCropNames" : { + "type" : "array", + "description" : "The BrAPI Common Crop Name is the simple, generalized, widely accepted name of the organism being researched. It is most often used in multi-crop systems where digital resources need to be divided at a high level. Things like 'Maize', 'Wheat', and 'Rice' are examples of common crop names.\n\nUse this parameter to only return results associated with the given crops. \n\nUse `GET /commoncropnames` to find the list of available crops on a server.", + "items" : { + "type" : "string" + } + }, + "crossDbIds" : { + "type" : "array", + "description" : "Search for Cross with this unique id", + "items" : { + "type" : "string" + } + }, + "crossNames" : { + "type" : "array", + "description" : "Search for Cross with this human readable name", + "items" : { + "type" : "string" + } + }, + "germplasmDbIds" : { + "type" : "array", + "description" : "List of IDs which uniquely identify germplasm to search for", + "nullable" : true, + "items" : { + "type" : "string" + } + }, + "germplasmNames" : { + "type" : "array", + "description" : "List of human readable names to identify germplasm to search for", + "nullable" : true, + "items" : { + "type" : "string" + } + }, + "programDbIds" : { + "type" : "array", + "description" : "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. \n\nUse this parameter to only return results associated with the given programs. \n\nUse `GET /programs` to find the list of available programs on a server.", + "items" : { + "type" : "string" + } + }, + "programNames" : { + "type" : "array", + "description" : "Use this parameter to only return results associated with the given program names. Program names are not required to be unique.\n\nUse `GET /programs` to find the list of available programs on a server.", + "items" : { + "type" : "string" + } + }, + "seedLotDbIds" : { + "type" : "array", + "description" : "Unique id for a seed lot on this server", + "items" : { + "type" : "string" + } + }, + "transactionDbIds" : { "type" : "array", "description" : "Unique id for a Transaction that has occurred", "items" : { @@ -23123,12 +23728,10 @@ "$ref" : "#/components/schemas/Method" }, "ontologyReference" : { - "anyOf" : [ + "nullable" : true, + "allOf" : [ { "$ref" : "#/components/schemas/OntologyReference" - }, - { - "type" : "null" } ] }, @@ -24046,6 +24649,67 @@ }, "description" : "A VariantSet is a collection of variants and variant calls intended to be analyzed together." }, + "VariantSetsExtractRequest" : { + "type" : "object", + "properties" : { + "callSetDbIds" : { + "type" : "array", + "description" : "The CallSet to search.", + "items" : { + "type" : "string" + } + }, + "expandHomozygotes" : { + "type" : "boolean", + "description" : "Should homozygotes be expanded (true) or collapsed into a single occurrence (false)", + "example" : true + }, + "sepPhased" : { + "type" : "string", + "description" : "The string used as a separator for phased allele calls.", + "example" : "~" + }, + "sepUnphased" : { + "type" : "string", + "description" : "The string used as a separator for unphased allele calls.", + "example" : "|" + }, + "studyDbIds" : { + "type" : "array", + "description" : "List of study identifiers to search for", + "items" : { + "type" : "string" + } + }, + "studyNames" : { + "type" : "array", + "description" : "List of study names to filter search results", + "items" : { + "type" : "string" + } + }, + "unknownString" : { + "type" : "string", + "description" : "The string used as a representation for missing data.", + "example" : "-" + }, + "variantDbIds" : { + "type" : "array", + "description" : "The Variant to search.", + "items" : { + "type" : "string" + } + }, + "variantSetDbIds" : { + "type" : "array", + "description" : "The VariantSet to search.", + "items" : { + "type" : "string" + } + } + }, + "description" : "Request object for extracting data subsets as new Variant Sets" + }, "basePagination" : { "required" : [ "currentPage", @@ -24234,35 +24898,128 @@ } } ] - } - }, - "responses" : { - "ObservationVariableSingleResponse" : { - "description" : "OK", - "content" : { - "application/json" : { - "schema" : { - "title" : "ObservationVariableSingleResponse", - "required" : [ - "metadata", - "result" - ], - "type" : "object", - "properties" : { - "@context" : { - "$ref" : "#/components/schemas/Context" - }, - "metadata" : { - "$ref" : "#/components/schemas/metadata" - }, - "result" : { - "$ref" : "#/components/schemas/ObservationVariable" - } - } + }, + "Service" : { + "required" : [ + "methods", + "service", + "versions" + ], + "type" : "object", + "properties" : { + "service" : { + "type" : "string", + "description" : "The name of the available call as recorded in the documentation", + "example" : "germplasm/{germplasmDbId}/pedigree" + }, + "contentTypes" : { + "type" : "array", + "description" : "The possible content types returned by the service endpoint", + "example" : [ + "application/json" + ], + "items" : { + "$ref" : "#/components/schemas/ContentTypes" + } + }, + "dataTypes" : { + "type" : "array", + "description" : "**Deprecated in v2.1** Please use `contentTypes`. Github issue number #443 \n
The possible data formats returned by the available call ", + "example" : [ + "application/json" + ], + "deprecated" : true, + "items" : { + "$ref" : "#/components/schemas/ContentTypes" + } + }, + "methods" : { + "type" : "array", + "description" : "The possible HTTP Methods to be used with the available call", + "example" : [ + "GET", + "POST" + ], + "items" : { + "type" : "string", + "enum" : [ + "GET", + "POST", + "PUT", + "DELETE" + ] + } + }, + "versions" : { + "type" : "array", + "description" : "The supported versions of a particular call", + "example" : [ + "2.0", + "2.1" + ], + "items" : { + "type" : "string", + "enum" : [ + "2.0", + "2.1", + "2.2" + ] + } + } + } + }, + "ServerInfo" : { + "required" : [ + "calls" + ], + "type" : "object", + "properties" : { + "contactEmail" : { + "type" : "string", + "description" : "A contact email address for this server management", + "example" : "contact@institute.org" + }, + "documentationURL" : { + "type" : "string", + "description" : "A URL to the human readable documentation of an object", + "example" : "institute.org/server" + }, + "organizationURL" : { + "type" : "string", + "description" : "The URL of the organization that manages this server and data", + "example" : "institute.org/home" + }, + "organizationName" : { + "type" : "string", + "description" : "The name of the organization that manages this server and data", + "example" : "The Institute" + }, + "serverName" : { + "type" : "string", + "description" : "The name of this server", + "example" : "The BrAPI Test Server" + }, + "serverDescription" : { + "type" : "string", + "description" : "A description of this server", + "example" : "The BrAPI Test Server\nWeb Server - Apache Tomcat 7.0.32\nDatabase - Postgres 10\nSupported BrAPI Version - V2.0" + }, + "location" : { + "type" : "string", + "description" : "Physical location of this server (ie. City, Country)", + "example" : "USA" + }, + "calls" : { + "type" : "array", + "description" : "Array of available calls on this server", + "items" : { + "$ref" : "#/components/schemas/Service" } } } - }, + } + }, + "responses" : { "SeedLotSingleResponse" : { "description" : "OK", "content" : { @@ -24406,6 +25163,44 @@ } } }, + "ObservationDeleteResponse" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "ObservationDeleteResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "required" : [ + "observationDbIds" + ], + "type" : "object", + "properties" : { + "observationDbIds" : { + "type" : "array", + "description" : "The unique ids of the Observation records which have been successfully deleted", + "items" : { + "type" : "string" + } + } + } + } + } + } + } + } + }, "MarkerPositionListResponse" : { "description" : "OK", "content" : { @@ -24732,43 +25527,6 @@ } } }, - "ObservationVariableListResponse" : { - "description" : "OK", - "content" : { - "application/json" : { - "schema" : { - "title" : "ObservationVariableListResponse", - "required" : [ - "metadata", - "result" - ], - "type" : "object", - "properties" : { - "@context" : { - "$ref" : "#/components/schemas/Context" - }, - "metadata" : { - "$ref" : "#/components/schemas/metadata" - }, - "result" : { - "required" : [ - "data" - ], - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ObservationVariable" - } - } - } - } - } - } - } - } - }, "ReferenceSetSingleResponse" : { "description" : "OK", "content" : { @@ -25828,6 +26586,46 @@ } } }, + "StudyObservationLevelsListResponse" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "StudyObservationLevelsListResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "required" : [ + "data" + ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ObservationUnitHierarchyLevel" + } + } + } + } + } + } + } + } + } + }, "ReferenceSetListResponse" : { "description" : "OK", "content" : { @@ -26006,6 +26804,44 @@ } } }, + "ImageDeleteResponse" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "ImageDeleteResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "required" : [ + "imageDbIds" + ], + "type" : "object", + "properties" : { + "imageDbIds" : { + "type" : "array", + "description" : "The unique ids of the Image records which have been successfully deleted", + "items" : { + "type" : "string" + } + } + } + } + } + } + } + } + }, "404NotFound" : { "description" : "Not Found", "content" : { @@ -26257,6 +27093,43 @@ } } }, + "ProgramCommonCropNameListResponse" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "ProgramCommonCropNameListResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "required" : [ + "data" + ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + } + } + } + } + } + }, "ImageListResponse" : { "description" : "OK", "content" : { @@ -26394,6 +27267,42 @@ } } }, + "ObservationTableResponse" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "ObservationTableResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "$ref" : "#/components/schemas/Observation" + } + } + } + }, + "text/csv" : { + "schema" : { + "type" : "string" + } + }, + "text/tsv" : { + "schema" : { + "type" : "string" + } + } + } + }, "BreedingMethodListResponse" : { "description" : "OK", "content" : { @@ -26494,6 +27403,42 @@ } } }, + "ObservationUnitTableResponse" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "title" : "ObservationUnitTableResponse", + "required" : [ + "metadata", + "result" + ], + "type" : "object", + "properties" : { + "@context" : { + "$ref" : "#/components/schemas/Context" + }, + "metadata" : { + "$ref" : "#/components/schemas/metadata" + }, + "result" : { + "$ref" : "#/components/schemas/ObservationUnit" + } + } + } + }, + "text/csv" : { + "schema" : { + "type" : "string" + } + }, + "text/tsv" : { + "schema" : { + "type" : "string" + } + } + } + }, "GenomeMapListResponse" : { "description" : "OK", "content" : { diff --git a/Specification/Generated/brapi_openapi.json b/Specification/Generated/brapi_openapi.json index e8524ad5..0d19dbc7 100644 --- a/Specification/Generated/brapi_openapi.json +++ b/Specification/Generated/brapi_openapi.json @@ -7601,16 +7601,6 @@ "type" : "string" }, "style" : "form" - }, { - "description" : "Permanent unique identifier which references the search results", - "explode" : true, - "in" : "query", - "name" : "searchResultsDbId", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" }, { "description" : "Timestamp range start", "explode" : true, @@ -27500,7 +27490,7 @@ }, "safetyDuplicateInstitutes" : { "items" : { - "$ref" : "#/components/schemas/GermplasmMCPD_safetyDuplicateInstitutes_inner" + "$ref" : "#/components/schemas/GermplasmMCPD_breedingInstitutes_inner" }, "nullable" : true, "type" : "array" @@ -29983,7 +29973,7 @@ "levelName" : "field" } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship_1" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" }, "nullable" : true, "type" : "array" @@ -30001,7 +29991,7 @@ "levelName" : "plot" } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevel_1" + "$ref" : "#/components/schemas/ObservationUnitLevel" }, "nullable" : true, "type" : "array" @@ -30271,7 +30261,7 @@ "observations" : { "description" : "All observations attached to this observation unit. \n\nDefault for this field is null or omitted. Do NOT include data in this field unless the 'includeObservations' flag is explicitly set to True.", "items" : { - "$ref" : "#/components/schemas/Observation_1" + "$ref" : "#/components/schemas/Observation" }, "nullable" : true, "type" : "array" @@ -30566,7 +30556,7 @@ "$ref" : "#/components/schemas/GeoJSON" }, "observationLevel" : { - "$ref" : "#/components/schemas/ObservationUnitLevel_2" + "$ref" : "#/components/schemas/ObservationUnitLevel" }, "observationLevelRelationships" : { "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ", @@ -30584,7 +30574,7 @@ "levelOrder" : 2 } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship_1" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" }, "nullable" : true, "type" : "array" @@ -30700,7 +30690,7 @@ "levelName" : "field" } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship_1" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" }, "nullable" : true, "type" : "array" @@ -30718,7 +30708,7 @@ "levelName" : "plot" } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevel_1" + "$ref" : "#/components/schemas/ObservationUnitLevel" }, "nullable" : true, "type" : "array" @@ -33227,7 +33217,7 @@ "sourceGermplasm" : { "description" : "All known corresponding Germplasm", "items" : { - "$ref" : "#/components/schemas/Reference_sourceGermplasm_inner" + "$ref" : "#/components/schemas/PedigreeNodeDEP_siblings_inner" }, "nullable" : true, "type" : "array" @@ -33340,7 +33330,7 @@ "sourceGermplasm" : { "description" : "All known corresponding Germplasm", "items" : { - "$ref" : "#/components/schemas/ReferenceSet_sourceGermplasm_inner" + "$ref" : "#/components/schemas/PedigreeNodeDEP_siblings_inner" }, "nullable" : true, "type" : "array" @@ -35390,7 +35380,7 @@ "levelOrder" : 2 } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitHierarchyLevel_1" + "$ref" : "#/components/schemas/ObservationUnitHierarchyLevel" }, "nullable" : true, "type" : "array" @@ -35598,7 +35588,7 @@ "levelOrder" : 2 } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitHierarchyLevel_1" + "$ref" : "#/components/schemas/ObservationUnitHierarchyLevel" }, "nullable" : true, "type" : "array" @@ -37809,29 +37799,6 @@ "title" : "GeoJSON", "type" : "object" }, - "geoJSONSearchArea" : { - "description" : "A GeoJSON Polygon which describes an area to search for other GeoJSON objects. All contained Points and intersecting Polygons should be returned as search results. \n\nAll coordinates are decimal values on the WGS84 geographic coordinate reference system.", - "example" : { - "geometry" : { - "coordinates" : [ [ [ -77.456654, 42.241133 ], [ -75.414133, 41.508282 ], [ -76.506042, 42.417373 ], [ -77.456654, 42.241133 ] ] ], - "type" : "Polygon" - }, - "type" : "Feature" - }, - "properties" : { - "geometry" : { - "$ref" : "#/components/schemas/GeoJSON_Geometry" - }, - "type" : { - "default" : "Feature", - "description" : "The literal string \"Feature\"", - "example" : "Feature", - "type" : "string" - } - }, - "title" : "GeoJSONSearchArea", - "type" : "object" - }, "linearRing" : { "description" : "An array of at least four positions where the first equals the last", "example" : [ [ -77.456654, 42.241133, 494 ], [ -75.414133, 41.508282, 571 ], [ -76.506042, 42.417373, 123 ], [ -77.456654, 42.241133, 346 ] ], @@ -38351,21 +38318,6 @@ "title" : "callSetResponse", "type" : "object" }, - "commonCropNamesResponse_result" : { - "properties" : { - "data" : { - "description" : "The array of crop names available on the server", - "example" : [ "Tomatillo", "Paw Paw" ], - "items" : { - "description" : "supported crop name", - "type" : "string" - }, - "type" : "array" - } - }, - "required" : [ "data" ], - "type" : "object" - }, "commonCropNamesResponse" : { "properties" : { "@context" : { @@ -38375,7 +38327,7 @@ "$ref" : "#/components/schemas/metadata" }, "result" : { - "$ref" : "#/components/schemas/commonCropNamesResponse_result" + "$ref" : "#/components/schemas/GermplasmAttributeCategoryListResponse_result" } }, "required" : [ "metadata", "result" ], @@ -39827,62 +39779,6 @@ }, "type" : "object" }, - "ObservationUnitLevelRelationship_1" : { - "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ", - "properties" : { - "levelCode" : { - "description" : "An ID code or number to represent a real thing that may or may not be an an observation unit.\n
For example, if the 'levelName' is 'plot', then the 'levelCode' would be the plot number or plot barcode. If this plot is also considered an ObservationUnit, then the appropriate observationUnitDbId should also be recorded.\n
If the 'levelName' is 'field', then the 'levelCode' might be something like '3' or 'F3' to indicate the third field at a research station. ", - "example" : "Plot_123", - "nullable" : true, - "type" : "string" - }, - "levelName" : { - "description" : "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : "plot", - "nullable" : true, - "type" : "string" - }, - "levelOrder" : { - "description" : "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : 2, - "nullable" : true, - "type" : "integer" - }, - "observationUnitDbId" : { - "description" : "The ID which uniquely identifies an observation unit\n
If this level has on ObservationUnit associated with it, record the observationUnitDbId here. This is intended to construct a strict hierarchy of observationUnits. \n
If there is no ObservationUnit associated with this level, this field can set to NULL or omitted from the response.", - "example" : "5ab883e9", - "nullable" : true, - "type" : "string" - } - }, - "title" : "ObservationUnitLevelRelationship", - "type" : "object" - }, - "ObservationUnitLevel_1" : { - "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ", - "properties" : { - "levelCode" : { - "description" : "An ID code or number to represent a real thing that may or may not be an an observation unit.\n
For example, if the 'levelName' is 'plot', then the 'levelCode' would be the plot number or plot barcode. If this plot is also considered an ObservationUnit, then the appropriate observationUnitDbId should also be recorded.\n
If the 'levelName' is 'field', then the 'levelCode' might be something like '3' or 'F3' to indicate the third field at a research station. ", - "example" : "Plot_123", - "nullable" : true, - "type" : "string" - }, - "levelName" : { - "description" : "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : "plot", - "nullable" : true, - "type" : "string" - }, - "levelOrder" : { - "description" : "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : 2, - "nullable" : true, - "type" : "integer" - } - }, - "title" : "ObservationUnitLevel", - "type" : "object" - }, "_search_observations_post_request" : { "properties" : { "commonCropNames" : { @@ -39968,7 +39864,7 @@ "levelName" : "field" } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship_1" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" }, "nullable" : true, "type" : "array" @@ -39986,7 +39882,7 @@ "levelName" : "plot" } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevel_1" + "$ref" : "#/components/schemas/ObservationUnitLevel" }, "nullable" : true, "type" : "array" @@ -40404,20 +40300,6 @@ "title" : "StudySingleResponse", "type" : "object" }, - "studyTypesResponse_result" : { - "properties" : { - "data" : { - "description" : "The list of all StudyTypes available on a given server.", - "example" : [ "Crossing Nursery", "Yield study" ], - "items" : { - "type" : "string" - }, - "type" : "array" - } - }, - "required" : [ "data" ], - "type" : "object" - }, "studyTypesResponse" : { "properties" : { "@context" : { @@ -40427,7 +40309,7 @@ "$ref" : "#/components/schemas/metadata" }, "result" : { - "$ref" : "#/components/schemas/studyTypesResponse_result" + "$ref" : "#/components/schemas/GermplasmAttributeCategoryListResponse_result" } }, "required" : [ "metadata", "result" ], @@ -41590,29 +41472,6 @@ }, "type" : "object" }, - "GermplasmMCPD_collectingInfo_collectingInstitutes_inner" : { - "properties" : { - "instituteAddress" : { - "description" : "MCPD (v2.1) (COLLINSTADDRESS) 4.1.1 Address of the institute collecting the sample. This descriptor should be used only if COLLCODE can not be filled since the FAO WIEWS code for this institute is not available. Multiple values are separated by a semicolon without space.", - "example" : "123 Main Street, Lima, Peru, 5555", - "nullable" : true, - "type" : "string" - }, - "instituteCode" : { - "description" : "MCPD (v2.1) (COLLCODE) 4. FAO WIEWS code of the institute collecting the sample. If the holding institute has collected the material, the collecting institute code (COLLCODE) should be the same as the holding institute code (INSTCODE). Follows INSTCODE standard. Multiple values are separated by a semicolon without space.", - "example" : "PER001", - "nullable" : true, - "type" : "string" - }, - "instituteName" : { - "description" : "MCPD (v2.1) (COLLNAME) 4.1 Name of the institute collecting the sample. This descriptor should be used only if COLLCODE can not be filled because the FAO WIEWS code for this institute is not available. Multiple values are separated by a semicolon without space.", - "example" : "The BrAPI Institute", - "nullable" : true, - "type" : "string" - } - }, - "type" : "object" - }, "GermplasmMCPD_collectingInfo_collectingSite" : { "description" : "Information about the location where the sample was collected", "nullable" : true, @@ -41686,7 +41545,7 @@ "collectingInstitutes" : { "description" : "Institutes which collected the sample", "items" : { - "$ref" : "#/components/schemas/GermplasmMCPD_collectingInfo_collectingInstitutes_inner" + "$ref" : "#/components/schemas/GermplasmMCPD_breedingInstitutes_inner" }, "nullable" : true, "type" : "array" @@ -41709,30 +41568,6 @@ }, "type" : "object" }, - "GermplasmMCPD_donorInfo_donorInstitute" : { - "description" : "The identifying information for the entity acting as an accession donor\n
MCPD (v2.1) (DONORCODE) 22. FAO WIEWS code of the donor institute. Follows INSTCODE standard.\n
MCPD (v2.1) (DONORNAME) 22.1 Name of the donor institute (or person). This descriptor should be used only if DONORCODE can not be filled because the FAO WIEWS code for this institute is not available.", - "properties" : { - "instituteAddress" : { - "description" : "MCPD (v2.1) (COLLINSTADDRESS) 4.1.1 Address of the institute collecting the sample. This descriptor should be used only if COLLCODE can not be filled since the FAO WIEWS code for this institute is not available. Multiple values are separated by a semicolon without space.", - "example" : "123 Main Street, Lima, Peru, 5555", - "nullable" : true, - "type" : "string" - }, - "instituteCode" : { - "description" : "MCPD (v2.1) (DONORCODE) 22. FAO WIEWS code of the donor institute. Follows INSTCODE standard.", - "example" : "PER001", - "nullable" : true, - "type" : "string" - }, - "instituteName" : { - "description" : "MCPD (v2.1) (DONORNAME) 22.1 Name of the donor institute (or person). This descriptor should be used only if DONORCODE can not be filled because the FAO WIEWS code for this institute is not available.", - "example" : "The BrAPI Institute", - "nullable" : true, - "type" : "string" - } - }, - "type" : "object" - }, "GermplasmMCPD_donorInfo" : { "description" : "Information about an accession donor", "properties" : { @@ -41749,30 +41584,7 @@ "type" : "string" }, "donorInstitute" : { - "$ref" : "#/components/schemas/GermplasmMCPD_donorInfo_donorInstitute" - } - }, - "type" : "object" - }, - "GermplasmMCPD_safetyDuplicateInstitutes_inner" : { - "properties" : { - "instituteAddress" : { - "description" : "MCPD (v2.1) (COLLINSTADDRESS) 4.1.1 Address of the institute collecting the sample. This descriptor should be used only if COLLCODE can not be filled since the FAO WIEWS code for this institute is not available. Multiple values are separated by a semicolon without space.", - "example" : "123 Main Street, Lima, Peru, 5555", - "nullable" : true, - "type" : "string" - }, - "instituteCode" : { - "description" : "MCPD (v2.1) (DUPLSITE) 25. FAO WIEWS code of the institute(s) where a safety duplicate of the accession is maintained. Follows INSTCODE standard.", - "example" : "PER001", - "nullable" : true, - "type" : "string" - }, - "instituteName" : { - "description" : "MCPD (v2.1) (DUPLINSTNAME) 25.1 Name of the institute where a safety duplicate of the accession is maintained.", - "example" : "The BrAPI Institute", - "nullable" : true, - "type" : "string" + "$ref" : "#/components/schemas/GermplasmMCPD_breedingInstitutes_inner" } }, "type" : "object" @@ -41862,31 +41674,6 @@ }, "type" : "object" }, - "ObservationUnitLevel_2" : { - "description" : "The exact level and level code of an observation unit. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\nMIAPPE V1.1 DM-71 Observation unit type \"Type of observation unit in textual form, usually one of the following: study, block, sub-block, plot, sub-plot, pot, plant. Use of other observation unit types is possible but not recommended. \nThe observation unit type can not be used to indicate sub-plant levels. However, observations can still be made on the sub-plant level, as long as the details are indicated in the associated observed variable (see observed variables). \nAlternatively, it is possible to use samples for more detailed tracing of sub-plant units, attaching the observations to them instead.\" ", - "properties" : { - "levelCode" : { - "description" : "An ID code or number to represent a real thing that may or may not be an an observation unit.\n
For example, if the 'levelName' is 'plot', then the 'levelCode' would be the plot number or plot barcode. If this plot is also considered an ObservationUnit, then the appropriate observationUnitDbId should also be recorded.\n
If the 'levelName' is 'field', then the 'levelCode' might be something like '3' or 'F3' to indicate the third field at a research station. ", - "example" : "Plot_123", - "nullable" : true, - "type" : "string" - }, - "levelName" : { - "description" : "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : "plot", - "nullable" : true, - "type" : "string" - }, - "levelOrder" : { - "description" : "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : 2, - "nullable" : true, - "type" : "integer" - } - }, - "title" : "ObservationUnitLevel", - "type" : "object" - }, "ObservationUnit_observationUnitPosition" : { "description" : "All positional and layout information related to this Observation Unit \n\nMIAPPE V1.1 (DM-73) Spatial distribution - Type and value of a spatial coordinate (georeference or relative) \nor level of observation (plot 45, subblock 7, block 2) provided as a key-value pair of the form type:value. \nLevels of observation must be consistent with those listed in the Study section.", "nullable" : true, @@ -41902,7 +41689,7 @@ "$ref" : "#/components/schemas/GeoJSON" }, "observationLevel" : { - "$ref" : "#/components/schemas/ObservationUnitLevel_2" + "$ref" : "#/components/schemas/ObservationUnitLevel" }, "observationLevelRelationships" : { "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ", @@ -41920,7 +41707,7 @@ "levelOrder" : 2 } ], "items" : { - "$ref" : "#/components/schemas/ObservationUnitLevelRelationship_1" + "$ref" : "#/components/schemas/ObservationUnitLevelRelationship" }, "nullable" : true, "type" : "array" @@ -41954,119 +41741,6 @@ }, "type" : "object" }, - "Observation_1" : { - "description" : "A value assigned for a specific ObservationVariable when observing a specific ObservationUnit.", - "properties" : { - "additionalInfo" : { - "additionalProperties" : { - "type" : "string" - }, - "description" : "A free space containing any additional information related to a particular object. A data source may provide any JSON object, unrestricted by the BrAPI specification.", - "nullable" : true, - "type" : "object" - }, - "collector" : { - "description" : "The name or identifier of the entity which collected the observation", - "example" : "917d3ae0", - "nullable" : true, - "type" : "string" - }, - "externalReferences" : { - "description" : "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "example" : [ { - "referenceId" : "doi:10.155454/12341234", - "referenceSource" : "DOI" - }, { - "referenceId" : "75a50e76", - "referenceSource" : "Remote Data Collection Upload Tool" - } ], - "items" : { - "$ref" : "#/components/schemas/ExternalReferences_1_inner" - }, - "nullable" : true, - "title" : "ExternalReferences", - "type" : "array" - }, - "geoCoordinates" : { - "$ref" : "#/components/schemas/GeoJSON" - }, - "germplasmDbId" : { - "description" : "The ID which uniquely identifies a germplasm", - "example" : "2408ab11", - "nullable" : true, - "type" : "string" - }, - "germplasmName" : { - "description" : "Name of the germplasm. It can be the preferred name and does not have to be unique.", - "example" : "A0000003", - "nullable" : true, - "type" : "string" - }, - "observationDbId" : { - "description" : "The ID which uniquely identifies an observation", - "example" : "ef24b615", - "type" : "string" - }, - "observationTimeStamp" : { - "description" : "The date and time when this observation was made", - "format" : "date-time", - "nullable" : true, - "type" : "string" - }, - "observationUnitDbId" : { - "description" : "The ID which uniquely identifies an observation unit", - "example" : "598111d4", - "nullable" : true, - "type" : "string" - }, - "observationUnitName" : { - "description" : "A human readable name for an observation unit", - "example" : "Plot 1", - "nullable" : true, - "type" : "string" - }, - "observationVariableDbId" : { - "description" : "The ID which uniquely identifies an observation variable", - "example" : "c403d107", - "nullable" : true, - "type" : "string" - }, - "observationVariableName" : { - "description" : "A human readable name for an observation variable", - "example" : "Plant Height in meters", - "nullable" : true, - "type" : "string" - }, - "season" : { - "$ref" : "#/components/schemas/Observation_season" - }, - "studyDbId" : { - "description" : "The ID which uniquely identifies a study within the given database server", - "example" : "ef2829db", - "nullable" : true, - "type" : "string" - }, - "uploadedBy" : { - "description" : "The name or id of the user who uploaded the observation to the database system", - "example" : "a2f7f60b", - "nullable" : true, - "type" : "string" - }, - "value" : { - "description" : "The value of the data collected as an observation", - "example" : "2.3", - "nullable" : true, - "type" : "string" - } - }, - "required" : [ "observationDbId" ], - "title" : "Observation", - "type" : "object", - "x-brapi-metadata" : { - "module" : "BrAPI-Phenotyping", - "primaryModel" : true - } - }, "ObservationUnit_treatments_inner" : { "properties" : { "factor" : { @@ -42192,36 +41866,6 @@ "required" : [ "germplasmDbId", "parentType" ], "type" : "object" }, - "Reference_sourceGermplasm_inner" : { - "properties" : { - "germplasmDbId" : { - "description" : "The ID which uniquely identifies a `Germplasm` within the given database server", - "example" : "d4076594", - "type" : "string" - }, - "germplasmName" : { - "description" : "The human readable name of a `Germplasm`", - "example" : "A0000003", - "type" : "string" - } - }, - "type" : "object" - }, - "ReferenceSet_sourceGermplasm_inner" : { - "properties" : { - "germplasmDbId" : { - "description" : "The ID which uniquely identifies a germplasm within the given database server", - "example" : "d4076594", - "type" : "string" - }, - "germplasmName" : { - "description" : "The human readable name of a germplasm", - "example" : "A0000003", - "type" : "string" - } - }, - "type" : "object" - }, "SeedLot_contentMixture_inner" : { "properties" : { "crossDbId" : { @@ -42451,25 +42095,6 @@ }, "type" : "object" }, - "ObservationUnitHierarchyLevel_1" : { - "description" : "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "properties" : { - "levelName" : { - "description" : "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : "plot", - "nullable" : true, - "type" : "string" - }, - "levelOrder" : { - "description" : "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ", - "example" : 2, - "nullable" : true, - "type" : "integer" - } - }, - "title" : "ObservationUnitHierarchyLevel", - "type" : "object" - }, "Trial_datasetAuthorships_inner" : { "properties" : { "datasetPUI" : { diff --git a/Specification/Generated/brapi_openapi_comparison.md b/Specification/Generated/brapi_openapi_comparison.md index 70cab6c3..b6e0bad5 100644 --- a/Specification/Generated/brapi_openapi_comparison.md +++ b/Specification/Generated/brapi_openapi_comparison.md @@ -1,67 +1,27 @@ #### What's Deleted --- -##### `GET` /commoncropnames +##### `POST` /search/variables -##### `POST` /delete/images +##### `GET` /search/variables/{searchResultsDbId} -##### `POST` /delete/observations +##### `GET` /variables -##### `PUT` /images/{imageDbId}/imagecontent - - -##### `GET` /observationlevels - - -##### `GET` /observations/table - - -##### `GET` /observationunits/table - - -##### `GET` /seedlots/transactions - - -##### `POST` /seedlots/transactions - - -##### `GET` /serverinfo - - -##### `POST` /variantsets/extract - - -##### `PUT` /observations/{observationDbId} - - -##### `PUT` /observationunits/{observationUnitDbId} - - -##### `PUT` /calls +##### `POST` /variables -##### `PUT` /plates +##### `GET` /variables/{observationVariableDbId} -##### `PUT` /pedigree +##### `PUT` /variables/{observationVariableDbId} #### What's Changed --- -##### `POST` /search/lists - - -###### Request: - -* Changed content type : `application/json` - - * Changed property `listType` (string): - - Nullable changed: `true` -> `null` - ##### `POST` /search/locations @@ -72,153 +32,6 @@ * Changed property `coordinates` (object -> null): - Type changed: `object` -> `null` -##### `GET` /allelematrix - - -###### Return Type: - -New response : **404** - -##### `POST` /attributes - - -###### Request: - -* Changed content type : `application/json` - - Changed items (array): - - * Changed property `ontologyReference` (object -> null): - - Type changed: `object` -> `null` - -##### `PUT` /attributes/{attributeDbId} - - -###### Request: - -* Changed content type : `application/json` - - * Changed property `ontologyReference` (object -> null): - - Type changed: `object` -> `null` - -##### `PUT` /samples - - -###### Return Type: - -Deleted response : **404** - -##### `POST` /search/allelematrix - - -###### Request: - -* Changed content type : `application/json` - - * Changed property `dataMatrixAbbreviations` (array -> string): - - Type changed: `array` -> `string` - - * Changed property `dataMatrixNames` (array -> string): - - Type changed: `array` -> `string` - -##### `GET` /seedlots/{seedLotDbId}/transactions - - -###### Parameters: - -Deleted: `transactionDbId` in `query` - -##### `POST` /variables - - -###### Request: - -* Changed content type : `application/json` - - Changed items (array): - - * Changed property `ontologyReference` (object -> null): - - Type changed: `object` -> `null` - -##### `PUT` /variables/{observationVariableDbId} - - -###### Request: - -* Changed content type : `application/json` - - * Changed property `ontologyReference` (object -> null): - - Type changed: `object` -> `null` - -##### `POST` /images - - -###### Request: - -* Changed content type : `application/json` - - Changed items (array): - - Deleted properties: `observationDbIds` - - * Changed property `mimeType` (string): - - Pattern changed: `image/.*` -> `null` - - * Changed property `imageLocation` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -##### `PUT` /images/{imageDbId} - - -###### Request: - -* Changed content type : `application/json` - - Deleted properties: `observationDbIds` - - * Changed property `mimeType` (string): - - Pattern changed: `image/.*` -> `null` - - * Changed property `imageLocation` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -##### `POST` /locations - - -###### Request: - -* Changed content type : `application/json` - - Changed items (array): - - * Changed property `coordinates` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -##### `PUT` /locations/{locationDbId} - - -###### Request: - -* Changed content type : `application/json` - - * Changed property `coordinates` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -##### `PUT` /observations - - -###### Return Type: - -Deleted response : **404** - ##### `POST` /observations @@ -228,95 +41,18 @@ Deleted response : **404** Changed items (array): - * Changed property `season` (object -> null): - - Type changed: `object` -> `null` - - * Changed property `geoCoordinates` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -###### Return Type: - -Deleted response : **404** - -##### `POST` /observationunits - - -###### Request: - -* Changed content type : `application/json` - - Changed items (array): - - * Changed property `observationUnitPosition` (object) - - * Changed property `geoCoordinates` (object -> array): - - Type changed: `object` -> `array` - - * Changed property `positionCoordinateXType` (string -> null): - - Type changed: `string` -> `null` - - * Changed property `positionCoordinateYType` (string -> null): - - Type changed: `string` -> `null` - -##### `GET` /pedigree - - -###### Return Type: - -Deleted response : **404** - -##### `POST` /pedigree - - -###### Return Type: - -Deleted response : **404** - -##### `POST` /search/images - - -###### Request: - -* Changed content type : `application/json` - - * Changed property `imageLocation` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -##### `POST` /germplasm - - -###### Request: - -* Changed content type : `application/json` - - Changed items (array): - - * Changed property `germplasmOrigin` (array) + New properties: `observationVariable` - Changed items (array): + Deleted properties: `observationVariableDbId`, `observationVariableName` - * Changed property `coordinates` (object) - - * Changed property `geometry` (object): - - Discriminator property changed - -##### `PUT` /germplasm/{germplasmDbId} +##### `PUT` /observations/{observationDbId} ###### Request: * Changed content type : `application/json` - * Changed property `germplasmOrigin` (array) - - Changed items (array): - - * Changed property `coordinates` (object) + New properties: `observationVariable` - * Changed property `geometry` (object): - - Discriminator property changed + Deleted properties: `observationVariableDbId`, `observationVariableName` diff --git a/generator/build.gradle b/generator/build.gradle index 3252eff2..6af3cebb 100644 --- a/generator/build.gradle +++ b/generator/build.gradle @@ -4,7 +4,7 @@ plugins { ext { javaMainClass = 'org.brapi.schematools.cli.BrAPICommand' - brapiSchemaToolsVersion = '0.75.0' + brapiSchemaToolsVersion = '0.77.0' } repositories { diff --git a/generator/openapi-Supplemental-Spec-V2.1-BrAPI-Core.yaml b/generator/openapi-Supplemental-Spec-V2.1-BrAPI-Core.yaml index f55f9428..24524f3e 100644 --- a/generator/openapi-Supplemental-Spec-V2.1-BrAPI-Core.yaml +++ b/generator/openapi-Supplemental-Spec-V2.1-BrAPI-Core.yaml @@ -1,6 +1,3 @@ -info: - title: BrAPI - version: '' openapi: 3.0.0 paths: /serverinfo: diff --git a/generator/openapi-single-file-options.yaml b/generator/openapi-single-file-options.yaml index 04e17b3a..fbaa7706 100644 --- a/generator/openapi-single-file-options.yaml +++ b/generator/openapi-single-file-options.yaml @@ -1,3 +1,2 @@ separateByModule: false -supplementalSpecificationFor: - BrAPI-Core: generator/openapi-Supplemental-Spec-V2.1-BrAPI-Core.yaml \ No newline at end of file +supplementalSpecification: generator/openapi-Supplemental-Spec-V2.1-BrAPI-Core.yaml \ No newline at end of file