From 70f7a2ddb058f3cfd1a226c57cbb31e6a83b8ca6 Mon Sep 17 00:00:00 2001 From: MashB Date: Mon, 30 Jun 2025 15:08:26 +0530 Subject: [PATCH 01/22] 2080 changes --- tdei-api-gateway-prod.json | 2 +- tdei-api-gateway-stage.json | 2 +- tdei-api-gateway.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index e98323b..c784e57 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -143,7 +143,7 @@ "Common APIs" ], "summary": "Lists the TDEI datasets in the system.", - "description": "This API lists all TDEI datasets, allowing users to efficiently search with sorting and filtering features. Each dataset entry is uniquely identified by `tdei_dataset_id` and also provide detailed information including metadata, associated project group, service details, download URL, and status. Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'. Filtering options are provided for enhanced discoverability of the datasets.By default all released datasets are visible to all user. Pre-release datasets are only visible to user affiliated with the project groups.", + "description": "This API returns filtered and sorted lists of TDEI datasets. All text parameters x return datasets with attribute containing x, as opposed to exact match. By default results will include all datasets in released status AND all dataset in pre-release status within the requesting user's project group. This behavior can be controlled by the status parameter. In no situation can a user see pre-release datasets from a project group the user is not part of. Primary use cases include: name search: Given a search string X, return all datasets with a name that contains the search string X) dataset id lookup: Given a tdei_dataset_id, return the dataset with the matching id bounding box: Given xmin, xmax, ymin, ymax, return datasets with dataset_area overlapping the bounding box Sorting: Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'.", "operationId": "listDatasetFiles", "parameters": [ { diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 9b66480..a190c49 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -143,7 +143,7 @@ "Common APIs" ], "summary": "Lists the TDEI datasets in the system.", - "description": "This API lists all TDEI datasets, allowing users to efficiently search with sorting and filtering features. Each dataset entry is uniquely identified by `tdei_dataset_id` and also provide detailed information including metadata, associated project group, service details, download URL, and status. Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'. Filtering options are provided for enhanced discoverability of the datasets.By default all released datasets are visible to all user. Pre-release datasets are only visible to user affiliated with the project groups.", + "description": "This API returns filtered and sorted lists of TDEI datasets. All text parameters x return datasets with attribute containing x, as opposed to exact match. By default results will include all datasets in released status AND all dataset in pre-release status within the requesting user's project group. This behavior can be controlled by the status parameter. In no situation can a user see pre-release datasets from a project group the user is not part of. Primary use cases include: name search: Given a search string X, return all datasets with a name that contains the search string X) dataset id lookup: Given a tdei_dataset_id, return the dataset with the matching id bounding box: Given xmin, xmax, ymin, ymax, return datasets with dataset_area overlapping the bounding box Sorting: Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'.", "operationId": "listDatasetFiles", "parameters": [ { diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index d7a5f2b..d9b8c6f 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -143,7 +143,7 @@ "Common APIs" ], "summary": "Lists the TDEI datasets in the system.", - "description": "This API lists all TDEI datasets, allowing users to efficiently search with sorting and filtering features. Each dataset entry is uniquely identified by `tdei_dataset_id` and also provide detailed information including metadata, associated project group, service details, download URL, and status. Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'. Filtering options are provided for enhanced discoverability of the datasets.By default all released datasets are visible to all user. Pre-release datasets are only visible to user affiliated with the project groups.", + "description": "This API returns filtered and sorted lists of TDEI datasets. All text parameters x return datasets with attribute containing x, as opposed to exact match. By default results will include all datasets in released status AND all dataset in pre-release status within the requesting user's project group. This behavior can be controlled by the status parameter. In no situation can a user see pre-release datasets from a project group the user is not part of. Primary use cases include: name search: Given a search string X, return all datasets with a name that contains the search string X) dataset id lookup: Given a tdei_dataset_id, return the dataset with the matching id bounding box: Given xmin, xmax, ymin, ymax, return datasets with dataset_area overlapping the bounding box Sorting: Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'.", "operationId": "listDatasetFiles", "parameters": [ { @@ -2006,7 +2006,7 @@ "join_condition": { "type": "string", "example": "ST_Intersects(ST_Buffer(geometry_target, 5), geometry_source)", - "description": "Condition on which target and source geometry will join. geometry_target & geometry_source are constant variable representing the element geometry.\n" + "description": "Condition on which target and source geometry will join. geometry_target & geometry_source are constant variable representing the element geometry. " }, "join_filter_target": { "type": "string", From 6279cad43a1f4df45ad9c47d774cfe72f8817bb2 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 1 Jul 2025 13:30:30 +0530 Subject: [PATCH 02/22] task 2080 --- tdei-api-gateway-prod.json | 114 +++++++++++++++++------------------ tdei-api-gateway-stage.json | 114 +++++++++++++++++------------------ tdei-api-gateway.json | 116 ++++++++++++++++++------------------ 3 files changed, 172 insertions(+), 172 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index c784e57..72a737f 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -149,7 +149,7 @@ { "name": "data_type", "in": "query", - "description": "Type of the dataset.", + "description": "Type of the dataset. Filters datasets by matching the exact value from the supported enumeration.", "required": false, "schema": { "type": "string", @@ -163,7 +163,7 @@ { "name": "status", "in": "query", - "description": "This filter allows users to request datasets based on their status. When set to 'All', the filter displays all available datasets by default. If specified as 'Pre-Release' or 'Publish', it shows only the datasets that are in the Pre-Release or Publish stages, respectively, for the project groups the user is affiliated with.", + "description": "

Status of the dataset: Filters datasets by status — All (default) returns released datasets and pre-release datasets from the user's project groups; Pre-Release and Publish return only datasets in that status from affiliated project groups.

", "required": false, "schema": { "type": "string", @@ -178,7 +178,7 @@ { "name": "name", "in": "query", - "description": "Dataset name or title", + "description": "

Dataset name or title: Filters datasets where the name or title contains the specified search text.

", "required": false, "schema": { "type": "string" @@ -187,7 +187,7 @@ { "name": "version", "in": "query", - "description": "Dataset version.", + "description": "

Dataset version: Filters datasets using an exact match on the version value.

", "required": false, "schema": { "type": "string" @@ -196,7 +196,7 @@ { "name": "data_source", "in": "query", - "description": "Data source of the dataset.", + "description": "

Data source: Filters datasets by matching the exact value from the supported enumeration.

", "required": false, "schema": { "type": "string", @@ -210,7 +210,7 @@ { "name": "collection_method", "in": "query", - "description": "Method by which the data was collected.", + "description": "

Collection method: Filters datasets by matching the exact value from the supported enumeration.

", "required": false, "schema": { "type": "string", @@ -225,7 +225,7 @@ { "name": "collected_by", "in": "query", - "description": "Collection agency or person.", + "description": "

Collected by: Filters datasets using an exact match on the collection agency or person's name.

", "required": false, "schema": { "type": "string" @@ -234,7 +234,7 @@ { "name": "derived_from_dataset_id", "in": "query", - "description": "Dataset id from which this dataset was derived.", + "description": "derived_from_dataset_id: Filters datasets that are derived from the specified dataset ID. Exact match.", "required": false, "schema": { "type": "string" @@ -243,7 +243,7 @@ { "name": "collection_date", "in": "query", - "description": "Collection date time", + "description": "collection_date: Filters datasets collected after the specified date and time.", "required": false, "schema": { "type": "string" @@ -251,7 +251,7 @@ }, { "name": "confidence_level", - "description": "Minimum confidence level required. Data returned will be at this confidence level or higher. Confidence level range is: 0 (very low confidence) to 100 (very high confidence).", + "description": "Confidence level: Minimum confidence level required. Returns datasets with confidence level greater than the specified value. Range: 0 (very low) to 100 (very high).", "schema": { "type": "integer" }, @@ -260,7 +260,7 @@ { "name": "schema_version", "in": "query", - "description": "Version name of the data type schema version that the application requests. list of versions can be found with /api/v1/{data_type}/versions.", + "description": "Schema version: Filters datasets that match the requested data type schema version. The list of supported versions can be found at /api/v1/{data_type}/versions.", "required": false, "schema": { "type": "string" @@ -269,7 +269,7 @@ { "name": "tdei_project_group_id", "in": "query", - "description": "TDEI project group id of the datasets to be retrieved.", + "description": "TDEI project group ID: Filters datasets that belong to the specified project group. Exact match.", "required": false, "schema": { "type": "string" @@ -278,7 +278,7 @@ { "name": "tdei_service_id", "in": "query", - "description": "TDEI service id of the datasets to be retrieved.", + "description": "TDEI service ID: Filters datasets that belong to the specified TDEI service. Exact match.", "required": false, "schema": { "type": "string" @@ -287,7 +287,7 @@ { "name": "valid_from", "in": "query", - "description": "Valid from date time. Date-time for which datasets to be retrieved.", + "description": "Valid from: Filters datasets with a valid-from date later than the specified date-time.", "required": false, "schema": { "type": "string" @@ -296,7 +296,7 @@ { "name": "valid_to", "in": "query", - "description": "Valid to date time. Date-time for which datasets to be retrieved.", + "description": "Valid to: Filters datasets with a valid-to date earlier than the specified date-time.", "required": false, "schema": { "type": "string" @@ -305,7 +305,7 @@ { "name": "tdei_dataset_id", "in": "query", - "description": "tdei_dataset_id of the dataset to be retrieved.", + "description": "TDEI dataset ID: Filters datasets by the specified TDEI dataset ID.", "required": false, "schema": { "type": "string" @@ -314,7 +314,7 @@ { "name": "bbox", "in": "query", - "description": "A bounding box which specifies the area to be searched. A bounding box is specified by a string providing the lat/lon coordinates of the corners of the bounding box. Coordinate should be specified as west, south, east, north.", + "description": "Bounding box: Specifies the geographic area to search within, using a bounding box defined by four coordinates in the order: west, south, east, north. Accepts an array of four numeric values.", "required": false, "schema": { "maxItems": 4, @@ -335,7 +335,7 @@ { "name": "other_published_locations", "in": "query", - "description": "Other published locations", + "description": "Other published locations: Lists additional places where the dataset has been published. Supports contains match.", "required": false, "schema": { "type": "string" @@ -344,7 +344,7 @@ { "name": "dataset_update_frequency_months", "in": "query", - "description": "Dataset update frequency in months", + "description": "Dataset update frequency in months: Filters datasets based on how frequently they are updated. Uses a greater than or equal to match to include datasets updated at this frequency or more often.", "required": false, "schema": { "type": "integer" @@ -353,7 +353,7 @@ { "name": "schema_validation_run_description", "in": "query", - "description": "Schema validation run description", + "description": "Schema validation run description: Filters datasets based on the description of the schema validation run. Accepts a string value and uses contains match.", "required": false, "schema": { "type": "string" @@ -362,7 +362,7 @@ { "name": "full_dataset_name", "in": "query", - "description": "Full dataset name", + "description": "Full dataset name: Filters datasets based on their full name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -371,7 +371,7 @@ { "name": "collection_name", "in": "query", - "description": "Name of the collection", + "description": "Collection name: Filters datasets based on their collection name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -380,7 +380,7 @@ { "name": "department_name", "in": "query", - "description": "Name of the department", + "description": "Department name: Filters datasets based on their department name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -389,7 +389,7 @@ { "name": "city", "in": "query", - "description": "Name of the city", + "description": "Name of City: Filters datasets based on the city name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -398,7 +398,7 @@ { "name": "region", "in": "query", - "description": "Name of the region", + "description": "Region: Filters datasets based on the region name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -407,7 +407,7 @@ { "name": "county", "in": "query", - "description": "Name of the county", + "description": "County: Filters datasets based on the county name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -416,7 +416,7 @@ { "name": "key_limitations", "in": "query", - "description": "Key limitations of the dataset", + "description": "Key limitations: Filters datasets based on their key limitations. Supports contains match.", "required": false, "schema": { "type": "string" @@ -425,7 +425,7 @@ { "name": "release_notes", "in": "query", - "description": "Release notes", + "description": "Release notes: Filters datasets based on their release notes. Supports contains match.", "required": false, "schema": { "type": "string" @@ -434,7 +434,7 @@ { "name": "challenges", "in": "query", - "description": "Challenges faced in collecting the data", + "description": "Challenges: Filters datasets based on the challenges faced in collecting the data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -443,7 +443,7 @@ { "name": "official_maintainer", "in": "query", - "description": "Official maintainer of the dataset", + "description": "Official maintainer: Filters datasets based on the official maintainer. Supports contains match.", "required": false, "schema": { "type": "array", @@ -455,7 +455,7 @@ { "name": "last_updated", "in": "query", - "description": "Date when the dataset was last updated", + "description": "Last updated: Filters datasets based on the last updated date. Accepts a date-time string match.", "required": false, "schema": { "type": "string" @@ -464,7 +464,7 @@ { "name": "update_frequency", "in": "query", - "description": "Frequency of updates", + "description": "Update frequency: Filters datasets based on their update frequency. Supports contains match.", "required": false, "schema": { "type": "string" @@ -473,7 +473,7 @@ { "name": "authorization_chain", "in": "query", - "description": "Authorization chain", + "description": "Authorization chain: Filters datasets based on their authorization chain. Supports contains match.", "required": false, "schema": { "type": "string" @@ -482,7 +482,7 @@ { "name": "maintenance_funded", "in": "query", - "description": "Is maintenance funded", + "description": "Maintenance funded: Filters datasets based on whether they are funded for maintenance. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -491,7 +491,7 @@ { "name": "funding_details", "in": "query", - "description": "Funding details", + "description": "Funding details: Filters datasets based on their funding details. Supports contains match.", "required": false, "schema": { "type": "string" @@ -500,7 +500,7 @@ { "name": "point_data_collection_device", "in": "query", - "description": "Point data collection device", + "description": "Point data collection device: Filters datasets based on the device used for point data collection. Supports contains match.", "required": false, "schema": { "type": "string" @@ -509,7 +509,7 @@ { "name": "node_locations_and_attributes_editing_software", "in": "query", - "description": "Node locations and attributes editing software", + "description": "Node locations and attributes editing software: Filters datasets based on the software used for editing node locations and attributes. Supports contains match.", "required": false, "schema": { "type": "string" @@ -518,7 +518,7 @@ { "name": "data_collected_by_people", "in": "query", - "description": "Is data collected by people", + "description": "Data collected by people: Filters datasets based on whether the data was collected by people. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -527,7 +527,7 @@ { "name": "data_collectors", "in": "query", - "description": "Data collectors", + "description": "Data collectors: Filters datasets based on the individuals or organizations that collected the data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -536,7 +536,7 @@ { "name": "data_captured_automatically", "in": "query", - "description": "Is data captured automatically", + "description": "Data captured automatically: Filters datasets based on whether the data was captured automatically. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -545,7 +545,7 @@ { "name": "automated_collection", "in": "query", - "description": "Automated collection", + "description": "Automated collection: Filters datasets based on whether the data was collected automatically. Supports contains match.", "required": false, "schema": { "type": "string" @@ -554,7 +554,7 @@ { "name": "data_collectors_organization", "in": "query", - "description": "Data collectors organization", + "description": "Data collectors organization: Filters datasets based on the organization of the data collectors. Supports contains match.", "required": false, "schema": { "type": "string" @@ -563,7 +563,7 @@ { "name": "data_collector_compensation", "in": "query", - "description": "Data collector compensation", + "description": "Data collector compensation: Filters datasets based on whether the data collectors were compensated. Supports contains match.", "required": false, "schema": { "type": "string" @@ -572,7 +572,7 @@ { "name": "preprocessing_location", "in": "query", - "description": "Preprocessing location", + "description": "Preprocessing location: Filters datasets based on their preprocessing location. Supports contains match.", "required": false, "schema": { "type": "string" @@ -581,7 +581,7 @@ { "name": "preprocessing_by", "in": "query", - "description": "Preprocessing by", + "description": "Preprocessing by: Filters datasets based on who performed the preprocessing. Supports contains match.", "required": false, "schema": { "type": "string" @@ -590,7 +590,7 @@ { "name": "preprocessing_steps", "in": "query", - "description": "Preprocessing steps", + "description": "Preprocessing steps: Filters datasets based on their preprocessing steps. Supports contains match.", "required": false, "schema": { "type": "string" @@ -599,7 +599,7 @@ { "name": "data_collection_preprocessing_documentation", "in": "query", - "description": "Is data collection preprocessing documentation available", + "description": "Data collection preprocessing documentation: Filters datasets based on the availability of data collection preprocessing documentation. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -608,7 +608,7 @@ { "name": "documentation_uri", "in": "query", - "description": "Documentation URI", + "description": "Documentation URI: Filters datasets based on their documentation URI. Supports contains match.", "required": false, "schema": { "type": "string" @@ -617,7 +617,7 @@ { "name": "validation_process_exists", "in": "query", - "description": "Is validation process exists", + "description": "Validation process exists: Filters datasets based on whether a validation process exists. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -626,7 +626,7 @@ { "name": "validation_process_description", "in": "query", - "description": "Validation process description", + "description": "Validation process description: Filters datasets based on the description of the validation process. Supports contains match.", "required": false, "schema": { "type": "string" @@ -635,7 +635,7 @@ { "name": "validation_conducted_by", "in": "query", - "description": "Validation conducted by", + "description": "Validation conducted by: Filters datasets based on who conducted the validation. Supports contains match.", "required": false, "schema": { "type": "string" @@ -644,7 +644,7 @@ { "name": "excluded_data", "in": "query", - "description": "Excluded data", + "description": "Excluded data: Filters datasets based on whether they contain excluded data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -653,7 +653,7 @@ { "name": "excluded_data_reason", "in": "query", - "description": "Excluded data reason", + "description": "Excluded data reason: Filters datasets based on the reason for excluding data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -662,7 +662,7 @@ { "name": "page_no", "in": "query", - "description": "Integer, defaults to 1. Retrieves the results in pages.", + "description": "page_no: Integer, defaults to 1. Filters datasets by retrieving results in pages.", "required": false, "schema": { "type": "integer", @@ -673,7 +673,7 @@ { "name": "page_size", "in": "query", - "description": "Page size. integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", "required": false, "schema": { "type": "integer", @@ -684,7 +684,7 @@ { "name": "sort_field", "in": "query", - "description": "Sort field. By default, it is by uploaded timestamp.", + "description": "Sort field: The field by which to sort the results. By default, it is by uploaded timestamp. Matches the exact value from the supported enumeration.", "required": false, "schema": { "type": "string", @@ -701,7 +701,7 @@ { "name": "sort_order", "in": "query", - "description": "Sort order. By default, it is in descending order.", + "description": "Sort order: By default, it is in descending order.", "required": false, "schema": { "type": "string", diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index a190c49..80121b1 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -149,7 +149,7 @@ { "name": "data_type", "in": "query", - "description": "Type of the dataset.", + "description": "Type of the dataset. Filters datasets by matching the exact value from the supported enumeration.", "required": false, "schema": { "type": "string", @@ -163,7 +163,7 @@ { "name": "status", "in": "query", - "description": "This filter allows users to request datasets based on their status. When set to 'All', the filter displays all available datasets by default. If specified as 'Pre-Release' or 'Publish', it shows only the datasets that are in the Pre-Release or Publish stages, respectively, for the project groups the user is affiliated with.", + "description": "

Status of the dataset: Filters datasets by status — All (default) returns released datasets and pre-release datasets from the user's project groups; Pre-Release and Publish return only datasets in that status from affiliated project groups.

", "required": false, "schema": { "type": "string", @@ -178,7 +178,7 @@ { "name": "name", "in": "query", - "description": "Dataset name or title", + "description": "

Dataset name or title: Filters datasets where the name or title contains the specified search text.

", "required": false, "schema": { "type": "string" @@ -187,7 +187,7 @@ { "name": "version", "in": "query", - "description": "Dataset version.", + "description": "

Dataset version: Filters datasets using an exact match on the version value.

", "required": false, "schema": { "type": "string" @@ -196,7 +196,7 @@ { "name": "data_source", "in": "query", - "description": "Data source of the dataset.", + "description": "

Data source: Filters datasets by matching the exact value from the supported enumeration.

", "required": false, "schema": { "type": "string", @@ -210,7 +210,7 @@ { "name": "collection_method", "in": "query", - "description": "Method by which the data was collected.", + "description": "

Collection method: Filters datasets by matching the exact value from the supported enumeration.

", "required": false, "schema": { "type": "string", @@ -225,7 +225,7 @@ { "name": "collected_by", "in": "query", - "description": "Collection agency or person.", + "description": "

Collected by: Filters datasets using an exact match on the collection agency or person's name.

", "required": false, "schema": { "type": "string" @@ -234,7 +234,7 @@ { "name": "derived_from_dataset_id", "in": "query", - "description": "Dataset id from which this dataset was derived.", + "description": "derived_from_dataset_id: Filters datasets that are derived from the specified dataset ID. Exact match.", "required": false, "schema": { "type": "string" @@ -243,7 +243,7 @@ { "name": "collection_date", "in": "query", - "description": "Collection date time", + "description": "collection_date: Filters datasets collected after the specified date and time.", "required": false, "schema": { "type": "string" @@ -251,7 +251,7 @@ }, { "name": "confidence_level", - "description": "Minimum confidence level required. Data returned will be at this confidence level or higher. Confidence level range is: 0 (very low confidence) to 100 (very high confidence).", + "description": "Confidence level: Minimum confidence level required. Returns datasets with confidence level greater than the specified value. Range: 0 (very low) to 100 (very high).", "schema": { "type": "integer" }, @@ -260,7 +260,7 @@ { "name": "schema_version", "in": "query", - "description": "Version name of the data type schema version that the application requests. list of versions can be found with /api/v1/{data_type}/versions.", + "description": "Schema version: Filters datasets that match the requested data type schema version. The list of supported versions can be found at /api/v1/{data_type}/versions.", "required": false, "schema": { "type": "string" @@ -269,7 +269,7 @@ { "name": "tdei_project_group_id", "in": "query", - "description": "TDEI project group id of the datasets to be retrieved.", + "description": "TDEI project group ID: Filters datasets that belong to the specified project group. Exact match.", "required": false, "schema": { "type": "string" @@ -278,7 +278,7 @@ { "name": "tdei_service_id", "in": "query", - "description": "TDEI service id of the datasets to be retrieved.", + "description": "TDEI service ID: Filters datasets that belong to the specified TDEI service. Exact match.", "required": false, "schema": { "type": "string" @@ -287,7 +287,7 @@ { "name": "valid_from", "in": "query", - "description": "Valid from date time. Date-time for which datasets to be retrieved.", + "description": "Valid from: Filters datasets with a valid-from date later than the specified date-time.", "required": false, "schema": { "type": "string" @@ -296,7 +296,7 @@ { "name": "valid_to", "in": "query", - "description": "Valid to date time. Date-time for which datasets to be retrieved.", + "description": "Valid to: Filters datasets with a valid-to date earlier than the specified date-time.", "required": false, "schema": { "type": "string" @@ -305,7 +305,7 @@ { "name": "tdei_dataset_id", "in": "query", - "description": "tdei_dataset_id of the dataset to be retrieved.", + "description": "TDEI dataset ID: Filters datasets by the specified TDEI dataset ID.", "required": false, "schema": { "type": "string" @@ -314,7 +314,7 @@ { "name": "bbox", "in": "query", - "description": "A bounding box which specifies the area to be searched. A bounding box is specified by a string providing the lat/lon coordinates of the corners of the bounding box. Coordinate should be specified as west, south, east, north.", + "description": "Bounding box: Specifies the geographic area to search within, using a bounding box defined by four coordinates in the order: west, south, east, north. Accepts an array of four numeric values.", "required": false, "schema": { "maxItems": 4, @@ -335,7 +335,7 @@ { "name": "other_published_locations", "in": "query", - "description": "Other published locations", + "description": "Other published locations: Lists additional places where the dataset has been published. Supports contains match.", "required": false, "schema": { "type": "string" @@ -344,7 +344,7 @@ { "name": "dataset_update_frequency_months", "in": "query", - "description": "Dataset update frequency in months", + "description": "Dataset update frequency in months: Filters datasets based on how frequently they are updated. Uses a greater than or equal to match to include datasets updated at this frequency or more often.", "required": false, "schema": { "type": "integer" @@ -353,7 +353,7 @@ { "name": "schema_validation_run_description", "in": "query", - "description": "Schema validation run description", + "description": "Schema validation run description: Filters datasets based on the description of the schema validation run. Accepts a string value and uses contains match.", "required": false, "schema": { "type": "string" @@ -362,7 +362,7 @@ { "name": "full_dataset_name", "in": "query", - "description": "Full dataset name", + "description": "Full dataset name: Filters datasets based on their full name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -371,7 +371,7 @@ { "name": "collection_name", "in": "query", - "description": "Name of the collection", + "description": "Collection name: Filters datasets based on their collection name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -380,7 +380,7 @@ { "name": "department_name", "in": "query", - "description": "Name of the department", + "description": "Department name: Filters datasets based on their department name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -389,7 +389,7 @@ { "name": "city", "in": "query", - "description": "Name of the city", + "description": "Name of City: Filters datasets based on the city name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -398,7 +398,7 @@ { "name": "region", "in": "query", - "description": "Name of the region", + "description": "Region: Filters datasets based on the region name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -407,7 +407,7 @@ { "name": "county", "in": "query", - "description": "Name of the county", + "description": "County: Filters datasets based on the county name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -416,7 +416,7 @@ { "name": "key_limitations", "in": "query", - "description": "Key limitations of the dataset", + "description": "Key limitations: Filters datasets based on their key limitations. Supports contains match.", "required": false, "schema": { "type": "string" @@ -425,7 +425,7 @@ { "name": "release_notes", "in": "query", - "description": "Release notes", + "description": "Release notes: Filters datasets based on their release notes. Supports contains match.", "required": false, "schema": { "type": "string" @@ -434,7 +434,7 @@ { "name": "challenges", "in": "query", - "description": "Challenges faced in collecting the data", + "description": "Challenges: Filters datasets based on the challenges faced in collecting the data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -443,7 +443,7 @@ { "name": "official_maintainer", "in": "query", - "description": "Official maintainer of the dataset", + "description": "Official maintainer: Filters datasets based on the official maintainer. Supports contains match.", "required": false, "schema": { "type": "array", @@ -455,7 +455,7 @@ { "name": "last_updated", "in": "query", - "description": "Date when the dataset was last updated", + "description": "Last updated: Filters datasets based on the last updated date. Accepts a date-time string match.", "required": false, "schema": { "type": "string" @@ -464,7 +464,7 @@ { "name": "update_frequency", "in": "query", - "description": "Frequency of updates", + "description": "Update frequency: Filters datasets based on their update frequency. Supports contains match.", "required": false, "schema": { "type": "string" @@ -473,7 +473,7 @@ { "name": "authorization_chain", "in": "query", - "description": "Authorization chain", + "description": "Authorization chain: Filters datasets based on their authorization chain. Supports contains match.", "required": false, "schema": { "type": "string" @@ -482,7 +482,7 @@ { "name": "maintenance_funded", "in": "query", - "description": "Is maintenance funded", + "description": "Maintenance funded: Filters datasets based on whether they are funded for maintenance. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -491,7 +491,7 @@ { "name": "funding_details", "in": "query", - "description": "Funding details", + "description": "Funding details: Filters datasets based on their funding details. Supports contains match.", "required": false, "schema": { "type": "string" @@ -500,7 +500,7 @@ { "name": "point_data_collection_device", "in": "query", - "description": "Point data collection device", + "description": "Point data collection device: Filters datasets based on the device used for point data collection. Supports contains match.", "required": false, "schema": { "type": "string" @@ -509,7 +509,7 @@ { "name": "node_locations_and_attributes_editing_software", "in": "query", - "description": "Node locations and attributes editing software", + "description": "Node locations and attributes editing software: Filters datasets based on the software used for editing node locations and attributes. Supports contains match.", "required": false, "schema": { "type": "string" @@ -518,7 +518,7 @@ { "name": "data_collected_by_people", "in": "query", - "description": "Is data collected by people", + "description": "Data collected by people: Filters datasets based on whether the data was collected by people. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -527,7 +527,7 @@ { "name": "data_collectors", "in": "query", - "description": "Data collectors", + "description": "Data collectors: Filters datasets based on the individuals or organizations that collected the data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -536,7 +536,7 @@ { "name": "data_captured_automatically", "in": "query", - "description": "Is data captured automatically", + "description": "Data captured automatically: Filters datasets based on whether the data was captured automatically. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -545,7 +545,7 @@ { "name": "automated_collection", "in": "query", - "description": "Automated collection", + "description": "Automated collection: Filters datasets based on whether the data was collected automatically. Supports contains match.", "required": false, "schema": { "type": "string" @@ -554,7 +554,7 @@ { "name": "data_collectors_organization", "in": "query", - "description": "Data collectors organization", + "description": "Data collectors organization: Filters datasets based on the organization of the data collectors. Supports contains match.", "required": false, "schema": { "type": "string" @@ -563,7 +563,7 @@ { "name": "data_collector_compensation", "in": "query", - "description": "Data collector compensation", + "description": "Data collector compensation: Filters datasets based on whether the data collectors were compensated. Supports contains match.", "required": false, "schema": { "type": "string" @@ -572,7 +572,7 @@ { "name": "preprocessing_location", "in": "query", - "description": "Preprocessing location", + "description": "Preprocessing location: Filters datasets based on their preprocessing location. Supports contains match.", "required": false, "schema": { "type": "string" @@ -581,7 +581,7 @@ { "name": "preprocessing_by", "in": "query", - "description": "Preprocessing by", + "description": "Preprocessing by: Filters datasets based on who performed the preprocessing. Supports contains match.", "required": false, "schema": { "type": "string" @@ -590,7 +590,7 @@ { "name": "preprocessing_steps", "in": "query", - "description": "Preprocessing steps", + "description": "Preprocessing steps: Filters datasets based on their preprocessing steps. Supports contains match.", "required": false, "schema": { "type": "string" @@ -599,7 +599,7 @@ { "name": "data_collection_preprocessing_documentation", "in": "query", - "description": "Is data collection preprocessing documentation available", + "description": "Data collection preprocessing documentation: Filters datasets based on the availability of data collection preprocessing documentation. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -608,7 +608,7 @@ { "name": "documentation_uri", "in": "query", - "description": "Documentation URI", + "description": "Documentation URI: Filters datasets based on their documentation URI. Supports contains match.", "required": false, "schema": { "type": "string" @@ -617,7 +617,7 @@ { "name": "validation_process_exists", "in": "query", - "description": "Is validation process exists", + "description": "Validation process exists: Filters datasets based on whether a validation process exists. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -626,7 +626,7 @@ { "name": "validation_process_description", "in": "query", - "description": "Validation process description", + "description": "Validation process description: Filters datasets based on the description of the validation process. Supports contains match.", "required": false, "schema": { "type": "string" @@ -635,7 +635,7 @@ { "name": "validation_conducted_by", "in": "query", - "description": "Validation conducted by", + "description": "Validation conducted by: Filters datasets based on who conducted the validation. Supports contains match.", "required": false, "schema": { "type": "string" @@ -644,7 +644,7 @@ { "name": "excluded_data", "in": "query", - "description": "Excluded data", + "description": "Excluded data: Filters datasets based on whether they contain excluded data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -653,7 +653,7 @@ { "name": "excluded_data_reason", "in": "query", - "description": "Excluded data reason", + "description": "Excluded data reason: Filters datasets based on the reason for excluding data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -662,7 +662,7 @@ { "name": "page_no", "in": "query", - "description": "Integer, defaults to 1. Retrieves the results in pages.", + "description": "page_no: Integer, defaults to 1. Filters datasets by retrieving results in pages.", "required": false, "schema": { "type": "integer", @@ -673,7 +673,7 @@ { "name": "page_size", "in": "query", - "description": "Page size. integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", "required": false, "schema": { "type": "integer", @@ -684,7 +684,7 @@ { "name": "sort_field", "in": "query", - "description": "Sort field. By default, it is by uploaded timestamp.", + "description": "Sort field: The field by which to sort the results. By default, it is by uploaded timestamp. Matches the exact value from the supported enumeration.", "required": false, "schema": { "type": "string", @@ -701,7 +701,7 @@ { "name": "sort_order", "in": "query", - "description": "Sort order. By default, it is in descending order.", + "description": "Sort order: By default, it is in descending order.", "required": false, "schema": { "type": "string", diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index d9b8c6f..72ed736 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -143,13 +143,13 @@ "Common APIs" ], "summary": "Lists the TDEI datasets in the system.", - "description": "This API returns filtered and sorted lists of TDEI datasets. All text parameters x return datasets with attribute containing x, as opposed to exact match. By default results will include all datasets in released status AND all dataset in pre-release status within the requesting user's project group. This behavior can be controlled by the status parameter. In no situation can a user see pre-release datasets from a project group the user is not part of. Primary use cases include: name search: Given a search string X, return all datasets with a name that contains the search string X) dataset id lookup: Given a tdei_dataset_id, return the dataset with the matching id bounding box: Given xmin, xmax, ymin, ymax, return datasets with dataset_area overlapping the bounding box Sorting: Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'.", + "description": "

This API returns filtered and sorted lists of TDEI datasets. The matching behavior of filter parameters may vary depending on the attribute type.

By default results will include all datasets in released status AND all dataset in pre-release status within the requesting user's project group. This behavior can be controlled by the status parameter. In no situation can a user see pre-release datasets from a project group the user is not part of.

\n\n Primary use cases include: \n\n Sorting:

Users can sort datasets by 'valid_to', 'valid_from', 'uploaded date', 'project group name', and 'status'.

", "operationId": "listDatasetFiles", "parameters": [ { "name": "data_type", "in": "query", - "description": "Type of the dataset.", + "description": "Type of the dataset. Filters datasets by matching the exact value from the supported enumeration.", "required": false, "schema": { "type": "string", @@ -163,7 +163,7 @@ { "name": "status", "in": "query", - "description": "This filter allows users to request datasets based on their status. When set to 'All', the filter displays all available datasets by default. If specified as 'Pre-Release' or 'Publish', it shows only the datasets that are in the Pre-Release or Publish stages, respectively, for the project groups the user is affiliated with.", + "description": "

Status of the dataset: Filters datasets by status — All (default) returns released datasets and pre-release datasets from the user's project groups; Pre-Release and Publish return only datasets in that status from affiliated project groups.

", "required": false, "schema": { "type": "string", @@ -178,7 +178,7 @@ { "name": "name", "in": "query", - "description": "Dataset name or title", + "description": "

Dataset name or title: Filters datasets where the name or title contains the specified search text.

", "required": false, "schema": { "type": "string" @@ -187,7 +187,7 @@ { "name": "version", "in": "query", - "description": "Dataset version.", + "description": "

Dataset version: Filters datasets using an exact match on the version value.

", "required": false, "schema": { "type": "string" @@ -196,7 +196,7 @@ { "name": "data_source", "in": "query", - "description": "Data source of the dataset.", + "description": "

Data source: Filters datasets by matching the exact value from the supported enumeration.

", "required": false, "schema": { "type": "string", @@ -210,7 +210,7 @@ { "name": "collection_method", "in": "query", - "description": "Method by which the data was collected.", + "description": "

Collection method: Filters datasets by matching the exact value from the supported enumeration.

", "required": false, "schema": { "type": "string", @@ -225,7 +225,7 @@ { "name": "collected_by", "in": "query", - "description": "Collection agency or person.", + "description": "

Collected by: Filters datasets using an exact match on the collection agency or person's name.

", "required": false, "schema": { "type": "string" @@ -234,7 +234,7 @@ { "name": "derived_from_dataset_id", "in": "query", - "description": "Dataset id from which this dataset was derived.", + "description": "derived_from_dataset_id: Filters datasets that are derived from the specified dataset ID. Exact match.", "required": false, "schema": { "type": "string" @@ -243,7 +243,7 @@ { "name": "collection_date", "in": "query", - "description": "Collection date time", + "description": "collection_date: Filters datasets collected after the specified date and time.", "required": false, "schema": { "type": "string" @@ -251,7 +251,7 @@ }, { "name": "confidence_level", - "description": "Minimum confidence level required. Data returned will be at this confidence level or higher. Confidence level range is: 0 (very low confidence) to 100 (very high confidence).", + "description": "Confidence level: Minimum confidence level required. Returns datasets with confidence level greater than the specified value. Range: 0 (very low) to 100 (very high).", "schema": { "type": "integer" }, @@ -260,7 +260,7 @@ { "name": "schema_version", "in": "query", - "description": "Version name of the data type schema version that the application requests. list of versions can be found with /api/v1/{data_type}/versions.", + "description": "Schema version: Filters datasets that match the requested data type schema version. The list of supported versions can be found at /api/v1/{data_type}/versions.", "required": false, "schema": { "type": "string" @@ -269,7 +269,7 @@ { "name": "tdei_project_group_id", "in": "query", - "description": "TDEI project group id of the datasets to be retrieved.", + "description": "TDEI project group ID: Filters datasets that belong to the specified project group. Exact match.", "required": false, "schema": { "type": "string" @@ -278,7 +278,7 @@ { "name": "tdei_service_id", "in": "query", - "description": "TDEI service id of the datasets to be retrieved.", + "description": "TDEI service ID: Filters datasets that belong to the specified TDEI service. Exact match.", "required": false, "schema": { "type": "string" @@ -287,7 +287,7 @@ { "name": "valid_from", "in": "query", - "description": "Valid from date time. Date-time for which datasets to be retrieved.", + "description": "Valid from: Filters datasets with a valid-from date later than the specified date-time.", "required": false, "schema": { "type": "string" @@ -296,7 +296,7 @@ { "name": "valid_to", "in": "query", - "description": "Valid to date time. Date-time for which datasets to be retrieved.", + "description": "Valid to: Filters datasets with a valid-to date earlier than the specified date-time.", "required": false, "schema": { "type": "string" @@ -305,7 +305,7 @@ { "name": "tdei_dataset_id", "in": "query", - "description": "tdei_dataset_id of the dataset to be retrieved.", + "description": "TDEI dataset ID: Filters datasets by the specified TDEI dataset ID.", "required": false, "schema": { "type": "string" @@ -314,7 +314,7 @@ { "name": "bbox", "in": "query", - "description": "A bounding box which specifies the area to be searched. A bounding box is specified by a string providing the lat/lon coordinates of the corners of the bounding box. Coordinate should be specified as west, south, east, north.", + "description": "Bounding box: Specifies the geographic area to search within, using a bounding box defined by four coordinates in the order: west, south, east, north. Accepts an array of four numeric values.", "required": false, "schema": { "maxItems": 4, @@ -335,7 +335,7 @@ { "name": "other_published_locations", "in": "query", - "description": "Other published locations", + "description": "Other published locations: Lists additional places where the dataset has been published. Supports contains match.", "required": false, "schema": { "type": "string" @@ -344,7 +344,7 @@ { "name": "dataset_update_frequency_months", "in": "query", - "description": "Dataset update frequency in months", + "description": "Dataset update frequency in months: Filters datasets based on how frequently they are updated. Uses a greater than or equal to match to include datasets updated at this frequency or more often.", "required": false, "schema": { "type": "integer" @@ -353,7 +353,7 @@ { "name": "schema_validation_run_description", "in": "query", - "description": "Schema validation run description", + "description": "Schema validation run description: Filters datasets based on the description of the schema validation run. Accepts a string value and uses contains match.", "required": false, "schema": { "type": "string" @@ -362,7 +362,7 @@ { "name": "full_dataset_name", "in": "query", - "description": "Full dataset name", + "description": "Full dataset name: Filters datasets based on their full name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -371,7 +371,7 @@ { "name": "collection_name", "in": "query", - "description": "Name of the collection", + "description": "Collection name: Filters datasets based on their collection name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -380,7 +380,7 @@ { "name": "department_name", "in": "query", - "description": "Name of the department", + "description": "Department name: Filters datasets based on their department name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -389,7 +389,7 @@ { "name": "city", "in": "query", - "description": "Name of the city", + "description": "Name of City: Filters datasets based on the city name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -398,7 +398,7 @@ { "name": "region", "in": "query", - "description": "Name of the region", + "description": "Region: Filters datasets based on the region name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -407,7 +407,7 @@ { "name": "county", "in": "query", - "description": "Name of the county", + "description": "County: Filters datasets based on the county name. Supports contains match.", "required": false, "schema": { "type": "string" @@ -416,7 +416,7 @@ { "name": "key_limitations", "in": "query", - "description": "Key limitations of the dataset", + "description": "Key limitations: Filters datasets based on their key limitations. Supports contains match.", "required": false, "schema": { "type": "string" @@ -425,7 +425,7 @@ { "name": "release_notes", "in": "query", - "description": "Release notes", + "description": "Release notes: Filters datasets based on their release notes. Supports contains match.", "required": false, "schema": { "type": "string" @@ -434,7 +434,7 @@ { "name": "challenges", "in": "query", - "description": "Challenges faced in collecting the data", + "description": "Challenges: Filters datasets based on the challenges faced in collecting the data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -443,7 +443,7 @@ { "name": "official_maintainer", "in": "query", - "description": "Official maintainer of the dataset", + "description": "Official maintainer: Filters datasets based on the official maintainer. Supports contains match.", "required": false, "schema": { "type": "array", @@ -455,7 +455,7 @@ { "name": "last_updated", "in": "query", - "description": "Date when the dataset was last updated", + "description": "Last updated: Filters datasets based on the last updated date. Accepts a date-time string match.", "required": false, "schema": { "type": "string" @@ -464,7 +464,7 @@ { "name": "update_frequency", "in": "query", - "description": "Frequency of updates", + "description": "Update frequency: Filters datasets based on their update frequency. Supports contains match.", "required": false, "schema": { "type": "string" @@ -473,7 +473,7 @@ { "name": "authorization_chain", "in": "query", - "description": "Authorization chain", + "description": "Authorization chain: Filters datasets based on their authorization chain. Supports contains match.", "required": false, "schema": { "type": "string" @@ -482,7 +482,7 @@ { "name": "maintenance_funded", "in": "query", - "description": "Is maintenance funded", + "description": "Maintenance funded: Filters datasets based on whether they are funded for maintenance. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -491,7 +491,7 @@ { "name": "funding_details", "in": "query", - "description": "Funding details", + "description": "Funding details: Filters datasets based on their funding details. Supports contains match.", "required": false, "schema": { "type": "string" @@ -500,7 +500,7 @@ { "name": "point_data_collection_device", "in": "query", - "description": "Point data collection device", + "description": "Point data collection device: Filters datasets based on the device used for point data collection. Supports contains match.", "required": false, "schema": { "type": "string" @@ -509,7 +509,7 @@ { "name": "node_locations_and_attributes_editing_software", "in": "query", - "description": "Node locations and attributes editing software", + "description": "Node locations and attributes editing software: Filters datasets based on the software used for editing node locations and attributes. Supports contains match.", "required": false, "schema": { "type": "string" @@ -518,7 +518,7 @@ { "name": "data_collected_by_people", "in": "query", - "description": "Is data collected by people", + "description": "Data collected by people: Filters datasets based on whether the data was collected by people. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -527,7 +527,7 @@ { "name": "data_collectors", "in": "query", - "description": "Data collectors", + "description": "Data collectors: Filters datasets based on the individuals or organizations that collected the data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -536,7 +536,7 @@ { "name": "data_captured_automatically", "in": "query", - "description": "Is data captured automatically", + "description": "Data captured automatically: Filters datasets based on whether the data was captured automatically. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -545,7 +545,7 @@ { "name": "automated_collection", "in": "query", - "description": "Automated collection", + "description": "Automated collection: Filters datasets based on whether the data was collected automatically. Supports contains match.", "required": false, "schema": { "type": "string" @@ -554,7 +554,7 @@ { "name": "data_collectors_organization", "in": "query", - "description": "Data collectors organization", + "description": "Data collectors organization: Filters datasets based on the organization of the data collectors. Supports contains match.", "required": false, "schema": { "type": "string" @@ -563,7 +563,7 @@ { "name": "data_collector_compensation", "in": "query", - "description": "Data collector compensation", + "description": "Data collector compensation: Filters datasets based on whether the data collectors were compensated. Supports contains match.", "required": false, "schema": { "type": "string" @@ -572,7 +572,7 @@ { "name": "preprocessing_location", "in": "query", - "description": "Preprocessing location", + "description": "Preprocessing location: Filters datasets based on their preprocessing location. Supports contains match.", "required": false, "schema": { "type": "string" @@ -581,7 +581,7 @@ { "name": "preprocessing_by", "in": "query", - "description": "Preprocessing by", + "description": "Preprocessing by: Filters datasets based on who performed the preprocessing. Supports contains match.", "required": false, "schema": { "type": "string" @@ -590,7 +590,7 @@ { "name": "preprocessing_steps", "in": "query", - "description": "Preprocessing steps", + "description": "Preprocessing steps: Filters datasets based on their preprocessing steps. Supports contains match.", "required": false, "schema": { "type": "string" @@ -599,7 +599,7 @@ { "name": "data_collection_preprocessing_documentation", "in": "query", - "description": "Is data collection preprocessing documentation available", + "description": "Data collection preprocessing documentation: Filters datasets based on the availability of data collection preprocessing documentation. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -608,7 +608,7 @@ { "name": "documentation_uri", "in": "query", - "description": "Documentation URI", + "description": "Documentation URI: Filters datasets based on their documentation URI. Supports contains match.", "required": false, "schema": { "type": "string" @@ -617,7 +617,7 @@ { "name": "validation_process_exists", "in": "query", - "description": "Is validation process exists", + "description": "Validation process exists: Filters datasets based on whether a validation process exists. Uses a boolean value.", "required": false, "schema": { "type": "boolean" @@ -626,7 +626,7 @@ { "name": "validation_process_description", "in": "query", - "description": "Validation process description", + "description": "Validation process description: Filters datasets based on the description of the validation process. Supports contains match.", "required": false, "schema": { "type": "string" @@ -635,7 +635,7 @@ { "name": "validation_conducted_by", "in": "query", - "description": "Validation conducted by", + "description": "Validation conducted by: Filters datasets based on who conducted the validation. Supports contains match.", "required": false, "schema": { "type": "string" @@ -644,7 +644,7 @@ { "name": "excluded_data", "in": "query", - "description": "Excluded data", + "description": "Excluded data: Filters datasets based on whether they contain excluded data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -653,7 +653,7 @@ { "name": "excluded_data_reason", "in": "query", - "description": "Excluded data reason", + "description": "Excluded data reason: Filters datasets based on the reason for excluding data. Supports contains match.", "required": false, "schema": { "type": "string" @@ -662,7 +662,7 @@ { "name": "page_no", "in": "query", - "description": "Integer, defaults to 1. Retrieves the results in pages.", + "description": "page_no: Integer, defaults to 1. Filters datasets by retrieving results in pages.", "required": false, "schema": { "type": "integer", @@ -673,7 +673,7 @@ { "name": "page_size", "in": "query", - "description": "Page size. integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", "required": false, "schema": { "type": "integer", @@ -684,7 +684,7 @@ { "name": "sort_field", "in": "query", - "description": "Sort field. By default, it is by uploaded timestamp.", + "description": "Sort field: The field by which to sort the results. By default, it is by uploaded timestamp. Matches the exact value from the supported enumeration.", "required": false, "schema": { "type": "string", @@ -701,7 +701,7 @@ { "name": "sort_order", "in": "query", - "description": "Sort order. By default, it is in descending order.", + "description": "Sort order: By default, it is in descending order.", "required": false, "schema": { "type": "string", From f5d4fdb6274fd55450a46bebca3f6f7e1075931e Mon Sep 17 00:00:00 2001 From: MashB Date: Thu, 14 Aug 2025 12:36:18 +0530 Subject: [PATCH 03/22] 2218 --- tdei-api-gateway.json | 393 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 72ed736..164a000 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2227,6 +2227,305 @@ ] } }, + "/api/v1/osw/dataset-viewer/{tdei_dataset_id}": { + "post": { + "tags": [ + "OSW" + ], + "summary": "Updates the visibility preferences for the dataset viewer.", + "description": "Updates the visibility preferences for a specified dataset identified by the tdei_dataset_id. It takes the dataset ID as a parameter and modifies the dataset's visibility settings.", + "operationId": "oswDatasetViewer", + "parameters": [ + { + "name": "tdei_dataset_id", + "in": "path", + "description": "Dataset ID for updating the dataset viewer preferences.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_viewer_access": { + "type": "boolean", + "default": true, + "description": "Indicates whether the dataset viewer access is allowed. If set to true, the dataset viewer is accessible to all users." + } + }, + "required": [ + "allow_viewer_access" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Visibility preferences updated successfully.", + "content": { + "application/text": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthenticated request. Check your access token." + }, + "404": { + "description": "tdei_dataset_id doesn't exist in the system." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks/{project_id}/{tdei_dataset_id}": { + "post": { + "tags": [ + "OSW" + ], + "summary": "Accepts the feedback from the dataset viewer.", + "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset viewer experience.", + "operationId": "oswDatasetViewerFeedback", + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + }, + { + "name": "tdei_dataset_id", + "in": "path", + "required": true, + "description": "ID of the dataset.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dataset_element_id": { + "type": "string", + "description": "Dataset ID for which the feedback is provided.", + "example": "14325" + }, + "feedback_text": { + "type": "string", + "description": "Feedback provided by the user regarding the dataset viewer.", + "example": "The dataset viewer is very informative and easy to use." + }, + "customer_email": { + "type": "string", + "format": "email", + "description": "Email address of the user providing feedback. This is optional and can be used for follow-up if needed.", + "example": "user@example.com" + }, + "location": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double", + "description": "Latitude of the location where the feedback was provided." + }, + "longitude": { + "type": "number", + "format": "double", + "description": "Longitude of the location where the feedback was provided." + } + }, + "required": [ + "latitude", + "longitude" + ] + } + }, + "required": [ + "feedback_text", + "location", + "customer_email" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Feedback accepted successfully.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Feedback accepted successfully." + } + } + } + } + } + }, + "400": { + "description": "Invalid input parameters." + }, + "403": { + "description": "CORS error. The request is not allowed from the current origin." + }, + "404": { + "description": "Project group or dataset not found." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrieves the feedbacks from the dataset viewer.", + "description": "Retrieves the feedbacks from the dataset viewer. Response includes a list of feedbacks provided by users regarding the dataset viewer. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", + "operationId": "oswDatasetViewerFeedbacks", + "parameters": [ + { + "name": "project_id", + "in": "query", + "required": true, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + }, + { + "name": "tdei_dataset_id", + "in": "query", + "required": true, + "description": "ID of the dataset.", + "schema": { + "type": "string" + } + }, + { + "name": "from_date", + "in": "query", + "description": "from_date: Date in ISO 8601 format, filters feedbacks created after this date.", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "to_date", + "in": "query", + "description": "to_date: Date in ISO 8601 format, filters feedbacks created before this date.", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.", + "required": false, + "schema": { + "type": "string", + "default": "created_at", + "enum": [ + "created_at", + "due_date" + ] + } + }, + { + "name": "sort_order", + "in": "query", + "description": "sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ] + } + }, + { + "name": "page_no", + "in": "query", + "description": "page_no: Integer, defaults to 1. Filters feedbacks by retrieving results in pages.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "page_size", + "in": "query", + "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "Feedbacks retrieved successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Feedback" + } + } + } + } + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { "post": { "tags": [ @@ -4343,6 +4642,100 @@ "project_group", "services" ] + }, + "Feedback": { + "type": "object", + "properties": { + "project_group": { + "type": "object", + "properties": { + "tdei_project_group_id": { + "type": "string", + "description": "ID of the project group.", + "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "name": { + "type": "string", + "description": "Name of the project group." + } + }, + "required": [ + "tdei_project_group_id", + "name" + ] + }, + "dataset": { + "type": "object", + "properties": { + "tdei_dataset_id": { + "type": "string", + "description": "ID of the dataset.", + "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "name": { + "type": "string", + "description": "Name of the dataset." + } + }, + "required": [ + "tdei_dataset_id", + "name" + ] + }, + "feedback_text": { + "type": "string", + "description": "Feedback text provided by the user." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was created." + }, + "due_date": { + "type": "string", + "format": "date-time", + "description": "Due date for the feedback response." + }, + "dataset_element_id": { + "type": "string", + "description": "ID of the specific dataset element related to the feedback.", + "example": "10432" + }, + "status": { + "type": "string", + "description": "Status of the feedback.", + "enum": [ + "open", + "resolved" + ] + }, + "metadata": { + "type": "object", + "description": "Additional metadata related to the feedback.", + "properties": { + "count": { + "type": "string", + "description": "Count of feedback entries.", + "example": "5" + }, + "overdue": { + "type": "number", + "description": "Indicates number of overdue feedbacks.", + "example": 0 + }, + "open": { + "type": "number", + "description": "Indicates number of open feedbacks.", + "example": 3 + } + } + } + }, + "required": [ + "project_id", + "tdei_dataset_id", + "feedback_text" + ] } }, "securitySchemes": { From 98cc0afed82b3a8012180b8bdca2081f4030cd13 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 11:25:28 +0530 Subject: [PATCH 04/22] added new feedback metadata changes --- tdei-api-gateway.json | 72 ++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 164a000..8f1317d 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2526,6 +2526,36 @@ "security": [] } }, + "/api/v1/osw/dataset-viewer/feedbacks/metadata": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrieves the feedbacks metadata.", + "description": "Retrieves the feedbacks metadata. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", + "operationId": "oswDatasetViewerFeedbacksMetadata", + "parameters": [], + "responses": { + "200": { + "description": "Feedbacks retrieved successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FeedbackMetadata" + } + } + } + } + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { "post": { "tags": [ @@ -4708,27 +4738,6 @@ "open", "resolved" ] - }, - "metadata": { - "type": "object", - "description": "Additional metadata related to the feedback.", - "properties": { - "count": { - "type": "string", - "description": "Count of feedback entries.", - "example": "5" - }, - "overdue": { - "type": "number", - "description": "Indicates number of overdue feedbacks.", - "example": 0 - }, - "open": { - "type": "number", - "description": "Indicates number of open feedbacks.", - "example": 3 - } - } } }, "required": [ @@ -4736,6 +4745,27 @@ "tdei_dataset_id", "feedback_text" ] + }, + "FeedbackMetadata": { + "type": "object", + "description": "Additional metadata related to the feedback.", + "properties": { + "total_count": { + "type": "string", + "description": "Count of feedback entries.", + "example": "5" + }, + "total_overdues": { + "type": "number", + "description": "Indicates number of overdue feedbacks.", + "example": 0 + }, + "total_open": { + "type": "number", + "description": "Indicates number of open feedbacks.", + "example": 3 + } + } } }, "securitySchemes": { From 81508fdd6e06820abe730d16de4b29d98ae93f31 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 13:32:46 +0530 Subject: [PATCH 05/22] updated spec --- tdei-api-gateway.json | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 8f1317d..e9c51bd 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -4738,13 +4738,28 @@ "open", "resolved" ] + }, + "location_latitude": { + "type": "number", + "description": "Latitude of the location related to the feedback.", + "example": 37.7749 + }, + "location_longitude": { + "type": "number", + "description": "Longitude of the location related to the feedback.", + "example": -122.4194 + }, + "id": { + "type": "string", + "description": "Unique identifier for the feedback.", + "example": "10432" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was last updated." } - }, - "required": [ - "project_id", - "tdei_dataset_id", - "feedback_text" - ] + } }, "FeedbackMetadata": { "type": "object", From 512a207815d080955ca617666cd616a2a72cb35d Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 16:00:23 +0530 Subject: [PATCH 06/22] renamed to tdei_project_group_id --- tdei-api-gateway.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index e9c51bd..e981619 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2417,7 +2417,7 @@ "operationId": "oswDatasetViewerFeedbacks", "parameters": [ { - "name": "project_id", + "name": "tdei_project_group_id", "in": "query", "required": true, "description": "ID of the project group.", From 8066cce9602bf6f646f8d1433301cf3398d5e948 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 16:10:51 +0530 Subject: [PATCH 07/22] location_longitude renamed --- tdei-api-gateway.json | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index e981619..540edb3 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2344,24 +2344,15 @@ "description": "Email address of the user providing feedback. This is optional and can be used for follow-up if needed.", "example": "user@example.com" }, - "location": { - "type": "object", - "properties": { - "latitude": { - "type": "number", - "format": "double", - "description": "Latitude of the location where the feedback was provided." - }, - "longitude": { - "type": "number", - "format": "double", - "description": "Longitude of the location where the feedback was provided." - } - }, - "required": [ - "latitude", - "longitude" - ] + "location_latitude": { + "type": "number", + "format": "double", + "description": "Latitude of the location where the feedback was provided." + }, + "location_longitude": { + "type": "number", + "format": "double", + "description": "Longitude of the location where the feedback was provided." } }, "required": [ From 1ffaff8956c577a07347ee9bd1a87a5ff99287f7 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 16:15:32 +0530 Subject: [PATCH 08/22] updated stage and prod --- tdei-api-gateway-prod.json | 399 ++++++++++++++++++++++++++++++++++++ tdei-api-gateway-stage.json | 399 ++++++++++++++++++++++++++++++++++++ 2 files changed, 798 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 72a737f..10b4edd 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2227,6 +2227,296 @@ ] } }, + "/api/v1/osw/dataset-viewer/{tdei_dataset_id}": { + "post": { + "tags": [ + "OSW" + ], + "summary": "Updates the visibility preferences for the dataset viewer.", + "description": "Updates the visibility preferences for a specified dataset identified by the tdei_dataset_id. It takes the dataset ID as a parameter and modifies the dataset's visibility settings.", + "operationId": "oswDatasetViewer", + "parameters": [ + { + "name": "tdei_dataset_id", + "in": "path", + "description": "Dataset ID for updating the dataset viewer preferences.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_viewer_access": { + "type": "boolean", + "default": true, + "description": "Indicates whether the dataset viewer access is allowed. If set to true, the dataset viewer is accessible to all users." + } + }, + "required": [ + "allow_viewer_access" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Visibility preferences updated successfully.", + "content": { + "application/text": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthenticated request. Check your access token." + }, + "404": { + "description": "tdei_dataset_id doesn't exist in the system." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks/{project_id}/{tdei_dataset_id}": { + "post": { + "tags": [ + "OSW" + ], + "summary": "Accepts the feedback from the dataset viewer.", + "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset viewer experience.", + "operationId": "oswDatasetViewerFeedback", + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + }, + { + "name": "tdei_dataset_id", + "in": "path", + "required": true, + "description": "ID of the dataset.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dataset_element_id": { + "type": "string", + "description": "Dataset ID for which the feedback is provided.", + "example": "14325" + }, + "feedback_text": { + "type": "string", + "description": "Feedback provided by the user regarding the dataset viewer.", + "example": "The dataset viewer is very informative and easy to use." + }, + "customer_email": { + "type": "string", + "format": "email", + "description": "Email address of the user providing feedback. This is optional and can be used for follow-up if needed.", + "example": "user@example.com" + }, + "location_latitude": { + "type": "number", + "format": "double", + "description": "Latitude of the location where the feedback was provided." + }, + "location_longitude": { + "type": "number", + "format": "double", + "description": "Longitude of the location where the feedback was provided." + } + }, + "required": [ + "feedback_text", + "location", + "customer_email" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Feedback accepted successfully.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Feedback accepted successfully." + } + } + } + } + } + }, + "400": { + "description": "Invalid input parameters." + }, + "403": { + "description": "CORS error. The request is not allowed from the current origin." + }, + "404": { + "description": "Project group or dataset not found." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrieves the feedbacks from the dataset viewer.", + "description": "Retrieves the feedbacks from the dataset viewer. Response includes a list of feedbacks provided by users regarding the dataset viewer. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", + "operationId": "oswDatasetViewerFeedbacks", + "parameters": [ + { + "name": "tdei_project_group_id", + "in": "query", + "required": true, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + }, + { + "name": "tdei_dataset_id", + "in": "query", + "required": true, + "description": "ID of the dataset.", + "schema": { + "type": "string" + } + }, + { + "name": "from_date", + "in": "query", + "description": "from_date: Date in ISO 8601 format, filters feedbacks created after this date.", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "to_date", + "in": "query", + "description": "to_date: Date in ISO 8601 format, filters feedbacks created before this date.", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.", + "required": false, + "schema": { + "type": "string", + "default": "created_at", + "enum": [ + "created_at", + "due_date" + ] + } + }, + { + "name": "sort_order", + "in": "query", + "description": "sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ] + } + }, + { + "name": "page_no", + "in": "query", + "description": "page_no: Integer, defaults to 1. Filters feedbacks by retrieving results in pages.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "page_size", + "in": "query", + "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "Feedbacks retrieved successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Feedback" + } + } + } + } + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { "post": { "tags": [ @@ -4201,6 +4491,115 @@ "dataMetrics", "datasetMetrics" ] + }, + "Feedback": { + "type": "object", + "properties": { + "project_group": { + "type": "object", + "properties": { + "tdei_project_group_id": { + "type": "string", + "description": "ID of the project group.", + "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "name": { + "type": "string", + "description": "Name of the project group." + } + }, + "required": [ + "tdei_project_group_id", + "name" + ] + }, + "dataset": { + "type": "object", + "properties": { + "tdei_dataset_id": { + "type": "string", + "description": "ID of the dataset.", + "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "name": { + "type": "string", + "description": "Name of the dataset." + } + }, + "required": [ + "tdei_dataset_id", + "name" + ] + }, + "feedback_text": { + "type": "string", + "description": "Feedback text provided by the user." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was created." + }, + "due_date": { + "type": "string", + "format": "date-time", + "description": "Due date for the feedback response." + }, + "dataset_element_id": { + "type": "string", + "description": "ID of the specific dataset element related to the feedback.", + "example": "10432" + }, + "status": { + "type": "string", + "description": "Status of the feedback.", + "enum": [ + "open", + "resolved" + ] + }, + "location_latitude": { + "type": "number", + "description": "Latitude of the location related to the feedback.", + "example": 37.7749 + }, + "location_longitude": { + "type": "number", + "description": "Longitude of the location related to the feedback.", + "example": -122.4194 + }, + "id": { + "type": "string", + "description": "Unique identifier for the feedback.", + "example": "10432" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was last updated." + } + } + }, + "FeedbackMetadata": { + "type": "object", + "description": "Additional metadata related to the feedback.", + "properties": { + "total_count": { + "type": "string", + "description": "Count of feedback entries.", + "example": "5" + }, + "total_overdues": { + "type": "number", + "description": "Indicates number of overdue feedbacks.", + "example": 0 + }, + "total_open": { + "type": "number", + "description": "Indicates number of open feedbacks.", + "example": 3 + } + } } }, "securitySchemes": { diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 80121b1..ab754c6 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2227,6 +2227,296 @@ ] } }, + "/api/v1/osw/dataset-viewer/{tdei_dataset_id}": { + "post": { + "tags": [ + "OSW" + ], + "summary": "Updates the visibility preferences for the dataset viewer.", + "description": "Updates the visibility preferences for a specified dataset identified by the tdei_dataset_id. It takes the dataset ID as a parameter and modifies the dataset's visibility settings.", + "operationId": "oswDatasetViewer", + "parameters": [ + { + "name": "tdei_dataset_id", + "in": "path", + "description": "Dataset ID for updating the dataset viewer preferences.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_viewer_access": { + "type": "boolean", + "default": true, + "description": "Indicates whether the dataset viewer access is allowed. If set to true, the dataset viewer is accessible to all users." + } + }, + "required": [ + "allow_viewer_access" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Visibility preferences updated successfully.", + "content": { + "application/text": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthenticated request. Check your access token." + }, + "404": { + "description": "tdei_dataset_id doesn't exist in the system." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks/{project_id}/{tdei_dataset_id}": { + "post": { + "tags": [ + "OSW" + ], + "summary": "Accepts the feedback from the dataset viewer.", + "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset viewer experience.", + "operationId": "oswDatasetViewerFeedback", + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + }, + { + "name": "tdei_dataset_id", + "in": "path", + "required": true, + "description": "ID of the dataset.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dataset_element_id": { + "type": "string", + "description": "Dataset ID for which the feedback is provided.", + "example": "14325" + }, + "feedback_text": { + "type": "string", + "description": "Feedback provided by the user regarding the dataset viewer.", + "example": "The dataset viewer is very informative and easy to use." + }, + "customer_email": { + "type": "string", + "format": "email", + "description": "Email address of the user providing feedback. This is optional and can be used for follow-up if needed.", + "example": "user@example.com" + }, + "location_latitude": { + "type": "number", + "format": "double", + "description": "Latitude of the location where the feedback was provided." + }, + "location_longitude": { + "type": "number", + "format": "double", + "description": "Longitude of the location where the feedback was provided." + } + }, + "required": [ + "feedback_text", + "location", + "customer_email" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Feedback accepted successfully.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Feedback accepted successfully." + } + } + } + } + } + }, + "400": { + "description": "Invalid input parameters." + }, + "403": { + "description": "CORS error. The request is not allowed from the current origin." + }, + "404": { + "description": "Project group or dataset not found." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrieves the feedbacks from the dataset viewer.", + "description": "Retrieves the feedbacks from the dataset viewer. Response includes a list of feedbacks provided by users regarding the dataset viewer. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", + "operationId": "oswDatasetViewerFeedbacks", + "parameters": [ + { + "name": "tdei_project_group_id", + "in": "query", + "required": true, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + }, + { + "name": "tdei_dataset_id", + "in": "query", + "required": true, + "description": "ID of the dataset.", + "schema": { + "type": "string" + } + }, + { + "name": "from_date", + "in": "query", + "description": "from_date: Date in ISO 8601 format, filters feedbacks created after this date.", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "to_date", + "in": "query", + "description": "to_date: Date in ISO 8601 format, filters feedbacks created before this date.", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.", + "required": false, + "schema": { + "type": "string", + "default": "created_at", + "enum": [ + "created_at", + "due_date" + ] + } + }, + { + "name": "sort_order", + "in": "query", + "description": "sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ] + } + }, + { + "name": "page_no", + "in": "query", + "description": "page_no: Integer, defaults to 1. Filters feedbacks by retrieving results in pages.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "page_size", + "in": "query", + "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "Feedbacks retrieved successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Feedback" + } + } + } + } + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [] + } + }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { "post": { "tags": [ @@ -4201,6 +4491,115 @@ "dataMetrics", "datasetMetrics" ] + }, + "Feedback": { + "type": "object", + "properties": { + "project_group": { + "type": "object", + "properties": { + "tdei_project_group_id": { + "type": "string", + "description": "ID of the project group.", + "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "name": { + "type": "string", + "description": "Name of the project group." + } + }, + "required": [ + "tdei_project_group_id", + "name" + ] + }, + "dataset": { + "type": "object", + "properties": { + "tdei_dataset_id": { + "type": "string", + "description": "ID of the dataset.", + "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "name": { + "type": "string", + "description": "Name of the dataset." + } + }, + "required": [ + "tdei_dataset_id", + "name" + ] + }, + "feedback_text": { + "type": "string", + "description": "Feedback text provided by the user." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was created." + }, + "due_date": { + "type": "string", + "format": "date-time", + "description": "Due date for the feedback response." + }, + "dataset_element_id": { + "type": "string", + "description": "ID of the specific dataset element related to the feedback.", + "example": "10432" + }, + "status": { + "type": "string", + "description": "Status of the feedback.", + "enum": [ + "open", + "resolved" + ] + }, + "location_latitude": { + "type": "number", + "description": "Latitude of the location related to the feedback.", + "example": 37.7749 + }, + "location_longitude": { + "type": "number", + "description": "Longitude of the location related to the feedback.", + "example": -122.4194 + }, + "id": { + "type": "string", + "description": "Unique identifier for the feedback.", + "example": "10432" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was last updated." + } + } + }, + "FeedbackMetadata": { + "type": "object", + "description": "Additional metadata related to the feedback.", + "properties": { + "total_count": { + "type": "string", + "description": "Count of feedback entries.", + "example": "5" + }, + "total_overdues": { + "type": "number", + "description": "Indicates number of overdue feedbacks.", + "example": 0 + }, + "total_open": { + "type": "number", + "description": "Indicates number of open feedbacks.", + "example": 3 + } + } } }, "securitySchemes": { From 055c8af154a16522e00195d1cdbf27b807f848ec Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 16:23:20 +0530 Subject: [PATCH 09/22] updated polygon details --- tdei-api-gateway-prod.json | 165 ++++++++++++++++++++++++++++++++++-- tdei-api-gateway-stage.json | 165 ++++++++++++++++++++++++++++++++++-- tdei-api-gateway.json | 165 ++++++++++++++++++++++++++++++++++-- 3 files changed, 480 insertions(+), 15 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 10b4edd..3c4716a 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -4093,16 +4093,171 @@ ], "type": "object", "properties": { - "polygon": { - "$ref": "#/components/schemas/GeoJsonObject" - }, "tdei_project_group_id": { "type": "string", - "description": "Unique id that represents the project group." + "description": "ProjectGroupId uniquely represented in the TDEI system. System generated.", + "default": "0" }, - "project_group_name": { + "name": { "type": "string", "description": "Name of the project group." + }, + "phone": { + "type": "string", + "description": "Phone of the project group for communication." + }, + "url": { + "type": "string", + "description": "Url of the transit project group." + }, + "address": { + "type": "string", + "description": "Address of the transit project group." + }, + "polygon": { + "$ref": "#/components/schemas/Polygon" + }, + "poc": { + "type": "array", + "description": "Project group POC details", + "items": { + "$ref": "#/components/schemas/POC", + "description": "POC details" + } + }, + "data_viewer": { + "type": "object", + "properties": { + "dataset_viewer_allowed": { + "type": "boolean", + "default": false, + "description": "Flag to indicate to allow all datasets within the project group to be viewed on the dataset viewer." + }, + "feedback_turnaround_time": { + "type": "object", + "description": "Feedback turnaround time for the project group.", + "properties": { + "number": { + "type": "integer", + "description": "Number of days for feedback turnaround time." + }, + "unit": { + "type": "string", + "enum": [ + "days", + "months", + "years" + ], + "description": "Unit of time for feedback turnaround time." + } + } + } + }, + "description": "Describes an Project group." + } + } + }, + "POC": { + "type": "object", + "properties": { + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + } + }, + "required": [ + "first_name", + "last_name", + "username", + "email" + ] + }, + "Polygon": { + "title": "GeoJSON FeatureCollection", + "type": "object", + "required": [ + "type", + "features" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "FeatureCollection" + ] + }, + "features": { + "type": "array", + "items": { + "title": "GeoJSON Feature", + "type": "object", + "required": [ + "type", + "properties", + "geometry" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feature" + ] + }, + "id": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "properties": { + "type": "object" + }, + "geometry": { + "title": "GeoJSON Polygon", + "type": "object", + "required": [ + "type", + "coordinates" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Polygon" + ] + }, + "coordinates": { + "type": "array", + "items": { + "type": "array", + "minItems": 4, + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "format": "double" + } + } + } + } + } + } + } + } } } }, diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index ab754c6..d440516 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -4093,16 +4093,171 @@ ], "type": "object", "properties": { - "polygon": { - "$ref": "#/components/schemas/GeoJsonObject" - }, "tdei_project_group_id": { "type": "string", - "description": "Unique id that represents the project group." + "description": "ProjectGroupId uniquely represented in the TDEI system. System generated.", + "default": "0" }, - "project_group_name": { + "name": { "type": "string", "description": "Name of the project group." + }, + "phone": { + "type": "string", + "description": "Phone of the project group for communication." + }, + "url": { + "type": "string", + "description": "Url of the transit project group." + }, + "address": { + "type": "string", + "description": "Address of the transit project group." + }, + "polygon": { + "$ref": "#/components/schemas/Polygon" + }, + "poc": { + "type": "array", + "description": "Project group POC details", + "items": { + "$ref": "#/components/schemas/POC", + "description": "POC details" + } + }, + "data_viewer": { + "type": "object", + "properties": { + "dataset_viewer_allowed": { + "type": "boolean", + "default": false, + "description": "Flag to indicate to allow all datasets within the project group to be viewed on the dataset viewer." + }, + "feedback_turnaround_time": { + "type": "object", + "description": "Feedback turnaround time for the project group.", + "properties": { + "number": { + "type": "integer", + "description": "Number of days for feedback turnaround time." + }, + "unit": { + "type": "string", + "enum": [ + "days", + "months", + "years" + ], + "description": "Unit of time for feedback turnaround time." + } + } + } + }, + "description": "Describes an Project group." + } + } + }, + "POC": { + "type": "object", + "properties": { + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + } + }, + "required": [ + "first_name", + "last_name", + "username", + "email" + ] + }, + "Polygon": { + "title": "GeoJSON FeatureCollection", + "type": "object", + "required": [ + "type", + "features" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "FeatureCollection" + ] + }, + "features": { + "type": "array", + "items": { + "title": "GeoJSON Feature", + "type": "object", + "required": [ + "type", + "properties", + "geometry" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feature" + ] + }, + "id": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "properties": { + "type": "object" + }, + "geometry": { + "title": "GeoJSON Polygon", + "type": "object", + "required": [ + "type", + "coordinates" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Polygon" + ] + }, + "coordinates": { + "type": "array", + "items": { + "type": "array", + "minItems": 4, + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "format": "double" + } + } + } + } + } + } + } + } } } }, diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 540edb3..ceb37bf 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -4179,16 +4179,171 @@ ], "type": "object", "properties": { - "polygon": { - "$ref": "#/components/schemas/GeoJsonObject" - }, "tdei_project_group_id": { "type": "string", - "description": "Unique id that represents the project group." + "description": "ProjectGroupId uniquely represented in the TDEI system. System generated.", + "default": "0" }, - "project_group_name": { + "name": { "type": "string", "description": "Name of the project group." + }, + "phone": { + "type": "string", + "description": "Phone of the project group for communication." + }, + "url": { + "type": "string", + "description": "Url of the transit project group." + }, + "address": { + "type": "string", + "description": "Address of the transit project group." + }, + "polygon": { + "$ref": "#/components/schemas/Polygon" + }, + "poc": { + "type": "array", + "description": "Project group POC details", + "items": { + "$ref": "#/components/schemas/POC", + "description": "POC details" + } + }, + "data_viewer": { + "type": "object", + "properties": { + "dataset_viewer_allowed": { + "type": "boolean", + "default": false, + "description": "Flag to indicate to allow all datasets within the project group to be viewed on the dataset viewer." + }, + "feedback_turnaround_time": { + "type": "object", + "description": "Feedback turnaround time for the project group.", + "properties": { + "number": { + "type": "integer", + "description": "Number of days for feedback turnaround time." + }, + "unit": { + "type": "string", + "enum": [ + "days", + "months", + "years" + ], + "description": "Unit of time for feedback turnaround time." + } + } + } + }, + "description": "Describes an Project group." + } + } + }, + "POC": { + "type": "object", + "properties": { + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + } + }, + "required": [ + "first_name", + "last_name", + "username", + "email" + ] + }, + "Polygon": { + "title": "GeoJSON FeatureCollection", + "type": "object", + "required": [ + "type", + "features" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "FeatureCollection" + ] + }, + "features": { + "type": "array", + "items": { + "title": "GeoJSON Feature", + "type": "object", + "required": [ + "type", + "properties", + "geometry" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feature" + ] + }, + "id": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "properties": { + "type": "object" + }, + "geometry": { + "title": "GeoJSON Polygon", + "type": "object", + "required": [ + "type", + "coordinates" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Polygon" + ] + }, + "coordinates": { + "type": "array", + "items": { + "type": "array", + "minItems": 4, + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "format": "double" + } + } + } + } + } + } + } + } } } }, From 21e48f52e35a08cdb8a0c12666afaf44c157b7cc Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 17:07:17 +0530 Subject: [PATCH 10/22] corrections make required false --- tdei-api-gateway-prod.json | 4 ++-- tdei-api-gateway-stage.json | 4 ++-- tdei-api-gateway.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 3c4716a..74d18f2 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2410,7 +2410,7 @@ { "name": "tdei_project_group_id", "in": "query", - "required": true, + "required": false, "description": "ID of the project group.", "schema": { "type": "string" @@ -2419,7 +2419,7 @@ { "name": "tdei_dataset_id", "in": "query", - "required": true, + "required": false, "description": "ID of the dataset.", "schema": { "type": "string" diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index d440516..4a7ef5b 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2410,7 +2410,7 @@ { "name": "tdei_project_group_id", "in": "query", - "required": true, + "required": false, "description": "ID of the project group.", "schema": { "type": "string" @@ -2419,7 +2419,7 @@ { "name": "tdei_dataset_id", "in": "query", - "required": true, + "required": false, "description": "ID of the dataset.", "schema": { "type": "string" diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index ceb37bf..f6d1121 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2410,7 +2410,7 @@ { "name": "tdei_project_group_id", "in": "query", - "required": true, + "required": false, "description": "ID of the project group.", "schema": { "type": "string" @@ -2419,7 +2419,7 @@ { "name": "tdei_dataset_id", "in": "query", - "required": true, + "required": false, "description": "ID of the dataset.", "schema": { "type": "string" From 28d2ed2aa6d3d62b4fe7df69b11bfaaec12a9fe2 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 17:14:22 +0530 Subject: [PATCH 11/22] rearranged fields --- tdei-api-gateway-prod.json | 26 +++++++++++++------------- tdei-api-gateway-stage.json | 26 +++++++++++++------------- tdei-api-gateway.json | 26 +++++++++++++------------- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 74d18f2..00e4349 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -4650,6 +4650,11 @@ "Feedback": { "type": "object", "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the feedback.", + "example": "10432" + }, "project_group": { "type": "object", "properties": { @@ -4690,16 +4695,6 @@ "type": "string", "description": "Feedback text provided by the user." }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the feedback was created." - }, - "due_date": { - "type": "string", - "format": "date-time", - "description": "Due date for the feedback response." - }, "dataset_element_id": { "type": "string", "description": "ID of the specific dataset element related to the feedback.", @@ -4723,10 +4718,15 @@ "description": "Longitude of the location related to the feedback.", "example": -122.4194 }, - "id": { + "due_date": { "type": "string", - "description": "Unique identifier for the feedback.", - "example": "10432" + "format": "date-time", + "description": "Due date for the feedback response." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was created." }, "updated_at": { "type": "string", diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 4a7ef5b..e62079f 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -4650,6 +4650,11 @@ "Feedback": { "type": "object", "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the feedback.", + "example": "10432" + }, "project_group": { "type": "object", "properties": { @@ -4690,16 +4695,6 @@ "type": "string", "description": "Feedback text provided by the user." }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the feedback was created." - }, - "due_date": { - "type": "string", - "format": "date-time", - "description": "Due date for the feedback response." - }, "dataset_element_id": { "type": "string", "description": "ID of the specific dataset element related to the feedback.", @@ -4723,10 +4718,15 @@ "description": "Longitude of the location related to the feedback.", "example": -122.4194 }, - "id": { + "due_date": { "type": "string", - "description": "Unique identifier for the feedback.", - "example": "10432" + "format": "date-time", + "description": "Due date for the feedback response." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was created." }, "updated_at": { "type": "string", diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index f6d1121..236f30b 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -4822,6 +4822,11 @@ "Feedback": { "type": "object", "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the feedback.", + "example": "10432" + }, "project_group": { "type": "object", "properties": { @@ -4862,16 +4867,6 @@ "type": "string", "description": "Feedback text provided by the user." }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the feedback was created." - }, - "due_date": { - "type": "string", - "format": "date-time", - "description": "Due date for the feedback response." - }, "dataset_element_id": { "type": "string", "description": "ID of the specific dataset element related to the feedback.", @@ -4895,10 +4890,15 @@ "description": "Longitude of the location related to the feedback.", "example": -122.4194 }, - "id": { + "due_date": { "type": "string", - "description": "Unique identifier for the feedback.", - "example": "10432" + "format": "date-time", + "description": "Due date for the feedback response." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the feedback was created." }, "updated_at": { "type": "string", From 3e24f8929d4aba7b00863c50dd74fb9b2dbd9414 Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 17:22:33 +0530 Subject: [PATCH 12/22] Added authorization security --- tdei-api-gateway-prod.json | 46 +++++++++++++++++++++++++++++++++++-- tdei-api-gateway-stage.json | 46 +++++++++++++++++++++++++++++++++++-- tdei-api-gateway.json | 18 ++++++++++++--- 3 files changed, 103 insertions(+), 7 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 00e4349..725c1d5 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2395,7 +2395,11 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/osw/dataset-viewer/feedbacks": { @@ -2514,7 +2518,45 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks/metadata": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrieves the feedbacks metadata.", + "description": "Retrieves the feedbacks metadata. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", + "operationId": "oswDatasetViewerFeedbacksMetadata", + "parameters": [], + "responses": { + "200": { + "description": "Feedbacks retrieved successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FeedbackMetadata" + } + } + } + } + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index e62079f..bb79549 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2395,7 +2395,11 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/osw/dataset-viewer/feedbacks": { @@ -2514,7 +2518,45 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/feedbacks/metadata": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrieves the feedbacks metadata.", + "description": "Retrieves the feedbacks metadata. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", + "operationId": "oswDatasetViewerFeedbacksMetadata", + "parameters": [], + "responses": { + "200": { + "description": "Feedbacks retrieved successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FeedbackMetadata" + } + } + } + } + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 236f30b..d10ff12 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2395,7 +2395,11 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/osw/dataset-viewer/feedbacks": { @@ -2514,7 +2518,11 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/osw/dataset-viewer/feedbacks/metadata": { @@ -2544,7 +2552,11 @@ "description": "An server error occurred." } }, - "security": [] + "security": [ + { + "AuthorizationToken": [] + } + ] } }, "/api/v1/gtfs-flex/upload/{tdei_project_group_id}/{tdei_service_id}": { From c50c68a969de91db29a8e1c416cb10333184d5ac Mon Sep 17 00:00:00 2001 From: MashB Date: Tue, 19 Aug 2025 17:33:51 +0530 Subject: [PATCH 13/22] content text correction --- tdei-api-gateway-prod.json | 24 ++++++++++++------------ tdei-api-gateway-stage.json | 24 ++++++++++++------------ tdei-api-gateway.json | 24 ++++++++++++------------ 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 725c1d5..5d15a65 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2255,7 +2255,7 @@ "allow_viewer_access": { "type": "boolean", "default": true, - "description": "Indicates whether the dataset viewer access is allowed. If set to true, the dataset viewer is accessible to all users." + "description": "Indicates whether the dataset viewer access is allowed." } }, "required": [ @@ -2268,7 +2268,7 @@ }, "responses": { "200": { - "description": "Visibility preferences updated successfully.", + "description": "Visibility preferences for the dataset viewer updated successfully.", "content": { "application/text": { "schema": { @@ -2300,7 +2300,7 @@ "OSW" ], "summary": "Accepts the feedback from the dataset viewer.", - "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset viewer experience.", + "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset.", "operationId": "oswDatasetViewerFeedback", "parameters": [ { @@ -2367,7 +2367,7 @@ }, "responses": { "200": { - "description": "Feedback accepted successfully.", + "description": "Feedback submitted successfully.", "content": { "application/json": { "schema": { @@ -2375,7 +2375,7 @@ "properties": { "message": { "type": "string", - "example": "Feedback accepted successfully." + "example": "Feedback submitted successfully." } } } @@ -2407,8 +2407,8 @@ "tags": [ "OSW" ], - "summary": "Retrieves the feedbacks from the dataset viewer.", - "description": "Retrieves the feedbacks from the dataset viewer. Response includes a list of feedbacks provided by users regarding the dataset viewer. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", + "summary": "Retrieves the dataset viewer feedbacks.", + "description": "Retrieves the dataset viewer feedbacks. Response includes a list of feedbacks provided by users regarding the dataset. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", "operationId": "oswDatasetViewerFeedbacks", "parameters": [ { @@ -2480,7 +2480,7 @@ { "name": "page_no", "in": "query", - "description": "page_no: Integer, defaults to 1. Filters feedbacks by retrieving results in pages.", + "description": "page_no: Integer, defaults to 1. Specifies the page number to retrieve.", "required": false, "schema": { "type": "integer", @@ -2491,7 +2491,7 @@ { "name": "page_size", "in": "query", - "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "description": "Page size: Integer, between 1 to 50, defaults to 10. Specifies total records per page.", "required": false, "schema": { "type": "integer", @@ -2530,13 +2530,13 @@ "tags": [ "OSW" ], - "summary": "Retrieves the feedbacks metadata.", - "description": "Retrieves the feedbacks metadata. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", + "summary": "Retrieves the feedbacks summary.", + "description": "Retrieves the feedbacks summary. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", "operationId": "oswDatasetViewerFeedbacksMetadata", "parameters": [], "responses": { "200": { - "description": "Feedbacks retrieved successfully.", + "description": "Feedbacks summary retrieved successfully.", "content": { "application/json": { "schema": { diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index bb79549..9d5af1c 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2255,7 +2255,7 @@ "allow_viewer_access": { "type": "boolean", "default": true, - "description": "Indicates whether the dataset viewer access is allowed. If set to true, the dataset viewer is accessible to all users." + "description": "Indicates whether the dataset viewer access is allowed." } }, "required": [ @@ -2268,7 +2268,7 @@ }, "responses": { "200": { - "description": "Visibility preferences updated successfully.", + "description": "Visibility preferences for the dataset viewer updated successfully.", "content": { "application/text": { "schema": { @@ -2300,7 +2300,7 @@ "OSW" ], "summary": "Accepts the feedback from the dataset viewer.", - "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset viewer experience.", + "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset.", "operationId": "oswDatasetViewerFeedback", "parameters": [ { @@ -2367,7 +2367,7 @@ }, "responses": { "200": { - "description": "Feedback accepted successfully.", + "description": "Feedback submitted successfully.", "content": { "application/json": { "schema": { @@ -2375,7 +2375,7 @@ "properties": { "message": { "type": "string", - "example": "Feedback accepted successfully." + "example": "Feedback submitted successfully." } } } @@ -2407,8 +2407,8 @@ "tags": [ "OSW" ], - "summary": "Retrieves the feedbacks from the dataset viewer.", - "description": "Retrieves the feedbacks from the dataset viewer. Response includes a list of feedbacks provided by users regarding the dataset viewer. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", + "summary": "Retrieves the dataset viewer feedbacks.", + "description": "Retrieves the dataset viewer feedbacks. Response includes a list of feedbacks provided by users regarding the dataset. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", "operationId": "oswDatasetViewerFeedbacks", "parameters": [ { @@ -2480,7 +2480,7 @@ { "name": "page_no", "in": "query", - "description": "page_no: Integer, defaults to 1. Filters feedbacks by retrieving results in pages.", + "description": "page_no: Integer, defaults to 1. Specifies the page number to retrieve.", "required": false, "schema": { "type": "integer", @@ -2491,7 +2491,7 @@ { "name": "page_size", "in": "query", - "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "description": "Page size: Integer, between 1 to 50, defaults to 10. Specifies total records per page.", "required": false, "schema": { "type": "integer", @@ -2530,13 +2530,13 @@ "tags": [ "OSW" ], - "summary": "Retrieves the feedbacks metadata.", - "description": "Retrieves the feedbacks metadata. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", + "summary": "Retrieves the feedbacks summary.", + "description": "Retrieves the feedbacks summary. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", "operationId": "oswDatasetViewerFeedbacksMetadata", "parameters": [], "responses": { "200": { - "description": "Feedbacks retrieved successfully.", + "description": "Feedbacks summary retrieved successfully.", "content": { "application/json": { "schema": { diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index d10ff12..dc54cc4 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2255,7 +2255,7 @@ "allow_viewer_access": { "type": "boolean", "default": true, - "description": "Indicates whether the dataset viewer access is allowed. If set to true, the dataset viewer is accessible to all users." + "description": "Indicates whether the dataset viewer access is allowed." } }, "required": [ @@ -2268,7 +2268,7 @@ }, "responses": { "200": { - "description": "Visibility preferences updated successfully.", + "description": "Visibility preferences for the dataset viewer updated successfully.", "content": { "application/text": { "schema": { @@ -2300,7 +2300,7 @@ "OSW" ], "summary": "Accepts the feedback from the dataset viewer.", - "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset viewer experience.", + "description": "Accepts the feedback from the dataset viewer. The feedback is stored in the system for further analysis and improvement of the dataset.", "operationId": "oswDatasetViewerFeedback", "parameters": [ { @@ -2367,7 +2367,7 @@ }, "responses": { "200": { - "description": "Feedback accepted successfully.", + "description": "Feedback submitted successfully.", "content": { "application/json": { "schema": { @@ -2375,7 +2375,7 @@ "properties": { "message": { "type": "string", - "example": "Feedback accepted successfully." + "example": "Feedback submitted successfully." } } } @@ -2407,8 +2407,8 @@ "tags": [ "OSW" ], - "summary": "Retrieves the feedbacks from the dataset viewer.", - "description": "Retrieves the feedbacks from the dataset viewer. Response includes a list of feedbacks provided by users regarding the dataset viewer. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", + "summary": "Retrieves the dataset viewer feedbacks.", + "description": "Retrieves the dataset viewer feedbacks. Response includes a list of feedbacks provided by users regarding the dataset. Each feedback contains details such as the dataset element ID, feedback text, customer email, and location information.", "operationId": "oswDatasetViewerFeedbacks", "parameters": [ { @@ -2480,7 +2480,7 @@ { "name": "page_no", "in": "query", - "description": "page_no: Integer, defaults to 1. Filters feedbacks by retrieving results in pages.", + "description": "page_no: Integer, defaults to 1. Specifies the page number to retrieve.", "required": false, "schema": { "type": "integer", @@ -2491,7 +2491,7 @@ { "name": "page_size", "in": "query", - "description": "Page size: Integer, between 1 to 50, defaults to 10.Specifies total records per page.", + "description": "Page size: Integer, between 1 to 50, defaults to 10. Specifies total records per page.", "required": false, "schema": { "type": "integer", @@ -2530,13 +2530,13 @@ "tags": [ "OSW" ], - "summary": "Retrieves the feedbacks metadata.", - "description": "Retrieves the feedbacks metadata. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", + "summary": "Retrieves the feedbacks summary.", + "description": "Retrieves the feedbacks summary. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", "operationId": "oswDatasetViewerFeedbacksMetadata", "parameters": [], "responses": { "200": { - "description": "Feedbacks retrieved successfully.", + "description": "Feedbacks summary retrieved successfully.", "content": { "application/json": { "schema": { From 704e5d821fd852a5524c5a25bb3464cc9c8c786a Mon Sep 17 00:00:00 2001 From: MashB Date: Wed, 20 Aug 2025 13:19:21 +0530 Subject: [PATCH 14/22] PM tiles api --- tdei-api-gateway-prod.json | 53 +++++++++++++++++++++++++++++++++++++ tdei-api-gateway-stage.json | 53 +++++++++++++++++++++++++++++++++++++ tdei-api-gateway.json | 53 +++++++++++++++++++++++++++++++++++++ 3 files changed, 159 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 5d15a65..e43790e 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2280,6 +2280,59 @@ "401": { "description": "Unauthenticated request. Check your access token." }, + "403": { + "description": "Forbidden request. Dataset viewer access is not allowed at project group level." + }, + "404": { + "description": "tdei_dataset_id doesn't exist in the system." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/pm-tiles/{tdei_dataset_id}": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrives the PM tiles SAS url for the dataset.", + "description": "Retrieves the PM tiles SAS url for a specified dataset identified by the tdei_dataset_id.", + "operationId": "oswDatasetViewerPMTiles", + "parameters": [ + { + "name": "tdei_dataset_id", + "in": "path", + "description": "Dataset ID for retrieving the PM tiles SAS url.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "PM tiles SAS url retrieved successfully.", + "content": { + "application/text": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthenticated request. Check your access token." + }, + "403": { + "description": "Forbidden request. Dataset viewer access is not allowed at dataset or project group level." + }, "404": { "description": "tdei_dataset_id doesn't exist in the system." }, diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 9d5af1c..dc5b785 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2280,6 +2280,59 @@ "401": { "description": "Unauthenticated request. Check your access token." }, + "403": { + "description": "Forbidden request. Dataset viewer access is not allowed at project group level." + }, + "404": { + "description": "tdei_dataset_id doesn't exist in the system." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/pm-tiles/{tdei_dataset_id}": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrives the PM tiles SAS url for the dataset.", + "description": "Retrieves the PM tiles SAS url for a specified dataset identified by the tdei_dataset_id.", + "operationId": "oswDatasetViewerPMTiles", + "parameters": [ + { + "name": "tdei_dataset_id", + "in": "path", + "description": "Dataset ID for retrieving the PM tiles SAS url.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "PM tiles SAS url retrieved successfully.", + "content": { + "application/text": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthenticated request. Check your access token." + }, + "403": { + "description": "Forbidden request. Dataset viewer access is not allowed at dataset or project group level." + }, "404": { "description": "tdei_dataset_id doesn't exist in the system." }, diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index dc54cc4..5826578 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2280,6 +2280,59 @@ "401": { "description": "Unauthenticated request. Check your access token." }, + "403": { + "description": "Forbidden request. Dataset viewer access is not allowed at project group level." + }, + "404": { + "description": "tdei_dataset_id doesn't exist in the system." + }, + "500": { + "description": "An server error occurred." + } + }, + "security": [ + { + "AuthorizationToken": [] + } + ] + } + }, + "/api/v1/osw/dataset-viewer/pm-tiles/{tdei_dataset_id}": { + "get": { + "tags": [ + "OSW" + ], + "summary": "Retrives the PM tiles SAS url for the dataset.", + "description": "Retrieves the PM tiles SAS url for a specified dataset identified by the tdei_dataset_id.", + "operationId": "oswDatasetViewerPMTiles", + "parameters": [ + { + "name": "tdei_dataset_id", + "in": "path", + "description": "Dataset ID for retrieving the PM tiles SAS url.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "PM tiles SAS url retrieved successfully.", + "content": { + "application/text": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthenticated request. Check your access token." + }, + "403": { + "description": "Forbidden request. Dataset viewer access is not allowed at dataset or project group level." + }, "404": { "description": "tdei_dataset_id doesn't exist in the system." }, From 5db8b63230156b2a06958a973bbd4416b418f8c0 Mon Sep 17 00:00:00 2001 From: MashB Date: Wed, 20 Aug 2025 17:11:11 +0530 Subject: [PATCH 15/22] data_viewer_allowed filter --- tdei-api-gateway-prod.json | 9 +++++++++ tdei-api-gateway-stage.json | 9 +++++++++ tdei-api-gateway.json | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index e43790e..adc9dc5 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -659,6 +659,15 @@ "type": "string" } }, + { + "name": "data_viewer_allowed", + "in": "query", + "description": "Data viewer allowed: Filters datasets based on whether data viewer access is allowed. Uses a boolean value.", + "required": false, + "schema": { + "type": "boolean" + } + }, { "name": "page_no", "in": "query", diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index dc5b785..20256da 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -659,6 +659,15 @@ "type": "string" } }, + { + "name": "data_viewer_allowed", + "in": "query", + "description": "Data viewer allowed: Filters datasets based on whether data viewer access is allowed. Uses a boolean value.", + "required": false, + "schema": { + "type": "boolean" + } + }, { "name": "page_no", "in": "query", diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 5826578..0ac48cd 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -659,6 +659,15 @@ "type": "string" } }, + { + "name": "data_viewer_allowed", + "in": "query", + "description": "Data viewer allowed: Filters datasets based on whether data viewer access is allowed. Uses a boolean value.", + "required": false, + "schema": { + "type": "boolean" + } + }, { "name": "page_no", "in": "query", From 503b281a394799e9d77c390460ce53746afd3f19 Mon Sep 17 00:00:00 2001 From: MashB Date: Fri, 22 Aug 2025 17:07:47 +0530 Subject: [PATCH 16/22] tdei project id filter for metadata --- tdei-api-gateway-prod.json | 21 ++++++++++++++------- tdei-api-gateway-stage.json | 21 ++++++++++++++------- tdei-api-gateway.json | 21 ++++++++++++++------- 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index adc9dc5..bf6850b 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2595,17 +2595,24 @@ "summary": "Retrieves the feedbacks summary.", "description": "Retrieves the feedbacks summary. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", "operationId": "oswDatasetViewerFeedbacksMetadata", - "parameters": [], + "parameters": [ + { + "name": "tdei_project_group_id", + "in": "query", + "required": false, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "Feedbacks summary retrieved successfully.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedbackMetadata" - } + "$ref": "#/components/schemas/FeedbackMetadata" } } } @@ -4844,9 +4851,9 @@ "description": "Additional metadata related to the feedback.", "properties": { "total_count": { - "type": "string", + "type": "number", "description": "Count of feedback entries.", - "example": "5" + "example": 5 }, "total_overdues": { "type": "number", diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 20256da..e99851e 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2595,17 +2595,24 @@ "summary": "Retrieves the feedbacks summary.", "description": "Retrieves the feedbacks summary. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", "operationId": "oswDatasetViewerFeedbacksMetadata", - "parameters": [], + "parameters": [ + { + "name": "tdei_project_group_id", + "in": "query", + "required": false, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "Feedbacks summary retrieved successfully.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedbackMetadata" - } + "$ref": "#/components/schemas/FeedbackMetadata" } } } @@ -4844,9 +4851,9 @@ "description": "Additional metadata related to the feedback.", "properties": { "total_count": { - "type": "string", + "type": "number", "description": "Count of feedback entries.", - "example": "5" + "example": 5 }, "total_overdues": { "type": "number", diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 0ac48cd..44a3d24 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2595,17 +2595,24 @@ "summary": "Retrieves the feedbacks summary.", "description": "Retrieves the feedbacks summary. Response includes a summary of feedbacks such as total count, total overdue, and other relevant statistics.", "operationId": "oswDatasetViewerFeedbacksMetadata", - "parameters": [], + "parameters": [ + { + "name": "tdei_project_group_id", + "in": "query", + "required": false, + "description": "ID of the project group.", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "Feedbacks summary retrieved successfully.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedbackMetadata" - } + "$ref": "#/components/schemas/FeedbackMetadata" } } } @@ -4992,8 +4999,8 @@ }, "total_overdues": { "type": "number", - "description": "Indicates number of overdue feedbacks.", - "example": 0 + "description": "Count of feedback entries.", + "example": 5 }, "total_open": { "type": "number", From 8ddfa6b47abe68fc7d52e3366562154365907043 Mon Sep 17 00:00:00 2001 From: MashB Date: Fri, 22 Aug 2025 17:12:01 +0530 Subject: [PATCH 17/22] Add status filter to feedback queries in API definitions --- tdei-api-gateway-prod.json | 13 +++++++++++++ tdei-api-gateway-stage.json | 13 +++++++++++++ tdei-api-gateway.json | 13 +++++++++++++ 3 files changed, 39 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index bf6850b..746a776 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2511,6 +2511,19 @@ "format": "date-time" } }, + { + "name": "status", + "in": "query", + "required": false, + "description": "status: Filters feedbacks by their status.", + "schema": { + "type": "string", + "enum": [ + "open", + "resolved" + ] + } + }, { "name": "sort_by", "in": "query", diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index e99851e..41e33ac 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2511,6 +2511,19 @@ "format": "date-time" } }, + { + "name": "status", + "in": "query", + "required": false, + "description": "status: Filters feedbacks by their status.", + "schema": { + "type": "string", + "enum": [ + "open", + "resolved" + ] + } + }, { "name": "sort_by", "in": "query", diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 44a3d24..5b584b2 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2511,6 +2511,19 @@ "format": "date-time" } }, + { + "name": "status", + "in": "query", + "required": false, + "description": "status: Filters feedbacks by their status.", + "schema": { + "type": "string", + "enum": [ + "open", + "resolved" + ] + } + }, { "name": "sort_by", "in": "query", From 0972ea37366bb1f7b4f110fde759ad481d43e3d0 Mon Sep 17 00:00:00 2001 From: sujata-m Date: Tue, 26 Aug 2025 17:10:50 +0530 Subject: [PATCH 18/22] Added data_viewer_allowed key in project_group to strict boolean in datasets API ## DevBoard Task ## Changes Introduced - getDatasets to always return a strict boolean for osw.project_group.data_viewer_allowed, and adds comprehensive unit tests covering truthy/falsy inputs. ## Impacted Areas for Testing - TDEI Portal --- tdei-api-gateway-prod.json | 5 +++++ tdei-api-gateway-stage.json | 5 +++++ tdei-api-gateway.json | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 746a776..d8cc828 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -4092,6 +4092,11 @@ "tdei_project_group_id": { "type": "string", "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "dataset_viewer_allowed": { + "type": "boolean", + "default": false, + "description": "Flag to indicate to allow dataset to be viewed on the dataset viewer." } }, "required": [ diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 41e33ac..9aee3fe 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -4092,6 +4092,11 @@ "tdei_project_group_id": { "type": "string", "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "dataset_viewer_allowed": { + "type": "boolean", + "default": false, + "description": "Flag to indicate to allow dataset to be viewed on the dataset viewer." } }, "required": [ diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 5b584b2..0368123 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -4148,6 +4148,11 @@ "tdei_project_group_id": { "type": "string", "example": "4e991e7a-5c16-4ebf-ad31-3a3625bcca10" + }, + "dataset_viewer_allowed": { + "type": "boolean", + "default": false, + "description": "Flag to indicate to allow dataset to be viewed on the dataset viewer." } }, "required": [ From 174a954312ca21e638312e671c0591d0badec252 Mon Sep 17 00:00:00 2001 From: sujata-m Date: Fri, 29 Aug 2025 19:55:53 +0530 Subject: [PATCH 19/22] Feature-2325 ## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2325 ## Changes Introduced - New API to download the CSV file - API Path GET - `osw/dataset-viewer/feedbacks/download` - API Response - CSV file as attachment ## Impacted Areas for Testing - TDEI Portal - Added unit test cases --- tdei-api-gateway-prod.json | 166 ++++++++++++++++++++++++++++++++++++ tdei-api-gateway-stage.json | 166 ++++++++++++++++++++++++++++++++++++ tdei-api-gateway.json | 166 ++++++++++++++++++++++++++++++++++++ 3 files changed, 498 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index d8cc828..b97bb56 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2600,6 +2600,172 @@ ] } }, + "/api/v1/osw/dataset-viewer/feedbacks/download":{ + "get":{ + "tags":[ + "OSW" + ], + "summary":"Downloads dataset viewer feedbacks as a CSV.", + "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", + "operationId":"oswDatasetViewerFeedbacksDownload", + "parameters":[ + { + "name":"tdei_project_group_id", + "in":"query", + "required":true, + "description":"ID of the project group.", + "schema":{ + "type":"string" + } + }, + { + "name":"tdei_dataset_id", + "in":"query", + "required":false, + "description":"ID of the dataset.", + "schema":{ + "type":"string" + } + }, + { + "name":"from_date", + "in":"query", + "description":"from_date: Date in ISO 8601 format, filters feedback created after this date.", + "required":false, + "schema":{ + "type":"string", + "format":"date-time" + } + }, + { + "name":"to_date", + "in":"query", + "description":"to_date: Date in ISO 8601 format, filters feedback created before this date.", + "required":false, + "schema":{ + "type":"string", + "format":"date-time" + } + }, + { + "name":"status", + "in":"query", + "required":false, + "description":"status: Filters feedbacks by their status.", + "schema":{ + "type":"string", + "enum":[ + "open", + "resolved" + ] + } + }, + { + "name":"sort_by", + "in":"query", + "description":"sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.", + "required":false, + "schema":{ + "type":"string", + "default":"created_at", + "enum":[ + "created_at", + "due_date" + ] + } + }, + { + "name":"due_date", + "in":"query", + "description":"due_date: Legacy alias for sort_by. Use 'created_at' or 'due_date'.", + "required":false, + "schema":{ + "type":"string", + "enum":[ + "created_at", + "due_date" + ] + } + }, + { + "name":"sort_order", + "in":"query", + "description":"sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.", + "required":false, + "schema":{ + "type":"string", + "default":"desc", + "enum":[ + "asc", + "desc" + ] + } + }, + { + "name":"page_no", + "in":"query", + "description":"page_no: Integer, specifies the page number to retrieve. If omitted with page_size, the response is unpaginated.", + "required":false, + "schema":{ + "type":"integer", + "format":"int32" + } + }, + { + "name":"page_size", + "in":"query", + "description":"Page size: Integer, between 1 to 50. If omitted with page_no, the response is unpaginated.", + "required":false, + "schema":{ + "type":"integer", + "format":"int32" + } + }, + { + "name":"format", + "in":"query", + "required":false, + "description":"format: Output format. Only 'csv' is supported.", + "schema":{ + "type":"string", + "default":"csv", + "enum":[ + "csv" + ] + } + } + ], + "responses":{ + "200":{ + "description":"CSV file streamed successfully.", + "content":{ + "text/csv":{ + "schema":{ + "type":"string", + "format":"binary" + } + } + } + }, + "400":{ + "description":"Invalid request parameters." + }, + "422":{ + "description":"tdei_project_group_id is required." + }, + "500":{ + "description":"A server error occurred." + } + }, + "security":[ + { + "AuthorizationToken":[ + + ] + } + ] + } + }, "/api/v1/osw/dataset-viewer/feedbacks/metadata": { "get": { "tags": [ diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 9aee3fe..323c371 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2600,6 +2600,172 @@ ] } }, + "/api/v1/osw/dataset-viewer/feedbacks/download":{ + "get":{ + "tags":[ + "OSW" + ], + "summary":"Downloads dataset viewer feedbacks as a CSV.", + "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", + "operationId":"oswDatasetViewerFeedbacksDownload", + "parameters":[ + { + "name":"tdei_project_group_id", + "in":"query", + "required":true, + "description":"ID of the project group.", + "schema":{ + "type":"string" + } + }, + { + "name":"tdei_dataset_id", + "in":"query", + "required":false, + "description":"ID of the dataset.", + "schema":{ + "type":"string" + } + }, + { + "name":"from_date", + "in":"query", + "description":"from_date: Date in ISO 8601 format, filters feedback created after this date.", + "required":false, + "schema":{ + "type":"string", + "format":"date-time" + } + }, + { + "name":"to_date", + "in":"query", + "description":"to_date: Date in ISO 8601 format, filters feedback created before this date.", + "required":false, + "schema":{ + "type":"string", + "format":"date-time" + } + }, + { + "name":"status", + "in":"query", + "required":false, + "description":"status: Filters feedbacks by their status.", + "schema":{ + "type":"string", + "enum":[ + "open", + "resolved" + ] + } + }, + { + "name":"sort_by", + "in":"query", + "description":"sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.", + "required":false, + "schema":{ + "type":"string", + "default":"created_at", + "enum":[ + "created_at", + "due_date" + ] + } + }, + { + "name":"due_date", + "in":"query", + "description":"due_date: Legacy alias for sort_by. Use 'created_at' or 'due_date'.", + "required":false, + "schema":{ + "type":"string", + "enum":[ + "created_at", + "due_date" + ] + } + }, + { + "name":"sort_order", + "in":"query", + "description":"sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.", + "required":false, + "schema":{ + "type":"string", + "default":"desc", + "enum":[ + "asc", + "desc" + ] + } + }, + { + "name":"page_no", + "in":"query", + "description":"page_no: Integer, specifies the page number to retrieve. If omitted with page_size, the response is unpaginated.", + "required":false, + "schema":{ + "type":"integer", + "format":"int32" + } + }, + { + "name":"page_size", + "in":"query", + "description":"Page size: Integer, between 1 to 50. If omitted with page_no, the response is unpaginated.", + "required":false, + "schema":{ + "type":"integer", + "format":"int32" + } + }, + { + "name":"format", + "in":"query", + "required":false, + "description":"format: Output format. Only 'csv' is supported.", + "schema":{ + "type":"string", + "default":"csv", + "enum":[ + "csv" + ] + } + } + ], + "responses":{ + "200":{ + "description":"CSV file streamed successfully.", + "content":{ + "text/csv":{ + "schema":{ + "type":"string", + "format":"binary" + } + } + } + }, + "400":{ + "description":"Invalid request parameters." + }, + "422":{ + "description":"tdei_project_group_id is required." + }, + "500":{ + "description":"A server error occurred." + } + }, + "security":[ + { + "AuthorizationToken":[ + + ] + } + ] + } + }, "/api/v1/osw/dataset-viewer/feedbacks/metadata": { "get": { "tags": [ diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 0368123..09fabb6 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2600,6 +2600,172 @@ ] } }, + "/api/v1/osw/dataset-viewer/feedbacks/download":{ + "get":{ + "tags":[ + "OSW" + ], + "summary":"Downloads dataset viewer feedbacks as a CSV.", + "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", + "operationId":"oswDatasetViewerFeedbacksDownload", + "parameters":[ + { + "name":"tdei_project_group_id", + "in":"query", + "required":true, + "description":"ID of the project group.", + "schema":{ + "type":"string" + } + }, + { + "name":"tdei_dataset_id", + "in":"query", + "required":false, + "description":"ID of the dataset.", + "schema":{ + "type":"string" + } + }, + { + "name":"from_date", + "in":"query", + "description":"from_date: Date in ISO 8601 format, filters feedback created after this date.", + "required":false, + "schema":{ + "type":"string", + "format":"date-time" + } + }, + { + "name":"to_date", + "in":"query", + "description":"to_date: Date in ISO 8601 format, filters feedback created before this date.", + "required":false, + "schema":{ + "type":"string", + "format":"date-time" + } + }, + { + "name":"status", + "in":"query", + "required":false, + "description":"status: Filters feedbacks by their status.", + "schema":{ + "type":"string", + "enum":[ + "open", + "resolved" + ] + } + }, + { + "name":"sort_by", + "in":"query", + "description":"sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.", + "required":false, + "schema":{ + "type":"string", + "default":"created_at", + "enum":[ + "created_at", + "due_date" + ] + } + }, + { + "name":"due_date", + "in":"query", + "description":"due_date: Legacy alias for sort_by. Use 'created_at' or 'due_date'.", + "required":false, + "schema":{ + "type":"string", + "enum":[ + "created_at", + "due_date" + ] + } + }, + { + "name":"sort_order", + "in":"query", + "description":"sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.", + "required":false, + "schema":{ + "type":"string", + "default":"desc", + "enum":[ + "asc", + "desc" + ] + } + }, + { + "name":"page_no", + "in":"query", + "description":"page_no: Integer, specifies the page number to retrieve. If omitted with page_size, the response is unpaginated.", + "required":false, + "schema":{ + "type":"integer", + "format":"int32" + } + }, + { + "name":"page_size", + "in":"query", + "description":"Page size: Integer, between 1 to 50. If omitted with page_no, the response is unpaginated.", + "required":false, + "schema":{ + "type":"integer", + "format":"int32" + } + }, + { + "name":"format", + "in":"query", + "required":false, + "description":"format: Output format. Only 'csv' is supported.", + "schema":{ + "type":"string", + "default":"csv", + "enum":[ + "csv" + ] + } + } + ], + "responses":{ + "200":{ + "description":"CSV file streamed successfully.", + "content":{ + "text/csv":{ + "schema":{ + "type":"string", + "format":"binary" + } + } + } + }, + "400":{ + "description":"Invalid request parameters." + }, + "422":{ + "description":"tdei_project_group_id is required." + }, + "500":{ + "description":"A server error occurred." + } + }, + "security":[ + { + "AuthorizationToken":[ + + ] + } + ] + } + }, "/api/v1/osw/dataset-viewer/feedbacks/metadata": { "get": { "tags": [ From d7d0e9addb4d3158d7e0eee576d801a49ce50755 Mon Sep 17 00:00:00 2001 From: sujata-m Date: Mon, 1 Sep 2025 12:29:30 +0530 Subject: [PATCH 20/22] Updated API definition --- tdei-api-gateway-prod.json | 14 +------------- tdei-api-gateway-stage.json | 14 +------------- tdei-api-gateway.json | 14 +------------- 3 files changed, 3 insertions(+), 39 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index b97bb56..8ae52e5 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2600,7 +2600,7 @@ ] } }, - "/api/v1/osw/dataset-viewer/feedbacks/download":{ + "/api/v1/osw/dataset-viewer/feedbacks/download/{tdei_project_group_id}":{ "get":{ "tags":[ "OSW" @@ -2609,15 +2609,6 @@ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", "operationId":"oswDatasetViewerFeedbacksDownload", "parameters":[ - { - "name":"tdei_project_group_id", - "in":"query", - "required":true, - "description":"ID of the project group.", - "schema":{ - "type":"string" - } - }, { "name":"tdei_dataset_id", "in":"query", @@ -2750,9 +2741,6 @@ "400":{ "description":"Invalid request parameters." }, - "422":{ - "description":"tdei_project_group_id is required." - }, "500":{ "description":"A server error occurred." } diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 323c371..084fb7a 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2600,7 +2600,7 @@ ] } }, - "/api/v1/osw/dataset-viewer/feedbacks/download":{ + "/api/v1/osw/dataset-viewer/feedbacks/download/{tdei_project_group_id}":{ "get":{ "tags":[ "OSW" @@ -2609,15 +2609,6 @@ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", "operationId":"oswDatasetViewerFeedbacksDownload", "parameters":[ - { - "name":"tdei_project_group_id", - "in":"query", - "required":true, - "description":"ID of the project group.", - "schema":{ - "type":"string" - } - }, { "name":"tdei_dataset_id", "in":"query", @@ -2750,9 +2741,6 @@ "400":{ "description":"Invalid request parameters." }, - "422":{ - "description":"tdei_project_group_id is required." - }, "500":{ "description":"A server error occurred." } diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 09fabb6..0b4c946 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2600,7 +2600,7 @@ ] } }, - "/api/v1/osw/dataset-viewer/feedbacks/download":{ + "/api/v1/osw/dataset-viewer/feedbacks/download/{tdei_project_group_id}":{ "get":{ "tags":[ "OSW" @@ -2609,15 +2609,6 @@ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", "operationId":"oswDatasetViewerFeedbacksDownload", "parameters":[ - { - "name":"tdei_project_group_id", - "in":"query", - "required":true, - "description":"ID of the project group.", - "schema":{ - "type":"string" - } - }, { "name":"tdei_dataset_id", "in":"query", @@ -2750,9 +2741,6 @@ "400":{ "description":"Invalid request parameters." }, - "422":{ - "description":"tdei_project_group_id is required." - }, "500":{ "description":"A server error occurred." } From 9156fb39a7f6d5a27e7bcc25357dc2d8df582b3c Mon Sep 17 00:00:00 2001 From: sujata-m Date: Mon, 1 Sep 2025 13:20:43 +0530 Subject: [PATCH 21/22] Added few more params --- tdei-api-gateway-prod.json | 9 +++++++++ tdei-api-gateway-stage.json | 9 +++++++++ tdei-api-gateway.json | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index 8ae52e5..bed9475 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2609,6 +2609,15 @@ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", "operationId":"oswDatasetViewerFeedbacksDownload", "parameters":[ + { + "name": "tdei_project_group_id", + "in": "path", + "description": "Valid TDEI project group id.", + "required": true, + "schema": { + "type": "string" + } + }, { "name":"tdei_dataset_id", "in":"query", diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 084fb7a..5cc95b3 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2609,6 +2609,15 @@ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", "operationId":"oswDatasetViewerFeedbacksDownload", "parameters":[ + { + "name": "tdei_project_group_id", + "in": "path", + "description": "Valid TDEI project group id.", + "required": true, + "schema": { + "type": "string" + } + }, { "name":"tdei_dataset_id", "in":"query", diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 0b4c946..9c532f2 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2609,6 +2609,15 @@ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.", "operationId":"oswDatasetViewerFeedbacksDownload", "parameters":[ + { + "name": "tdei_project_group_id", + "in": "path", + "description": "Valid TDEI project group id.", + "required": true, + "schema": { + "type": "string" + } + }, { "name":"tdei_dataset_id", "in":"query", From ec1a45ae3412a43756802aecc30ad1c1e1bbc6cf Mon Sep 17 00:00:00 2001 From: sujata-m Date: Mon, 1 Sep 2025 21:16:19 +0530 Subject: [PATCH 22/22] feat: add geojson feedback download option ## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2325 ## Changes Introduced - allow feedback download API to stream CSV or GeoJSON - convert feedback rows into GeoJSON feature collection - set response headers based on requested format - test coverage for new geojson option ## Impacted Areas for Testing - TDEI Portal - Added unit test cases --- tdei-api-gateway-prod.json | 29 ++++++++++++++++++++--------- tdei-api-gateway-stage.json | 29 ++++++++++++++++++++--------- tdei-api-gateway.json | 29 ++++++++++++++++++++--------- 3 files changed, 60 insertions(+), 27 deletions(-) diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json index bed9475..2f47b7e 100644 --- a/tdei-api-gateway-prod.json +++ b/tdei-api-gateway-prod.json @@ -2725,24 +2725,35 @@ "name":"format", "in":"query", "required":false, - "description":"format: Output format. Only 'csv' is supported.", + "description":"format: Output format.", "schema":{ "type":"string", "default":"csv", "enum":[ - "csv" + "csv", + "geojson" ] } } ], "responses":{ - "200":{ - "description":"CSV file streamed successfully.", - "content":{ - "text/csv":{ - "schema":{ - "type":"string", - "format":"binary" + "200": { + "description": "Feedback file streamed successfully.", + "content": { + "text/csv": { + "schema": { "type": "string", "format": "binary" } + }, + "application/geo+json": { + "schema": { + "type": "object", + "required": ["type", "features"], + "properties": { + "type": { "enum": ["FeatureCollection"] }, + "features": { + "type": "array", + "items": { "$ref": "#/components/schemas/Feature" } + } + } } } } diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json index 5cc95b3..fca32b1 100644 --- a/tdei-api-gateway-stage.json +++ b/tdei-api-gateway-stage.json @@ -2725,24 +2725,35 @@ "name":"format", "in":"query", "required":false, - "description":"format: Output format. Only 'csv' is supported.", + "description":"format: Output format.", "schema":{ "type":"string", "default":"csv", "enum":[ - "csv" + "csv", + "geojson" ] } } ], "responses":{ - "200":{ - "description":"CSV file streamed successfully.", - "content":{ - "text/csv":{ - "schema":{ - "type":"string", - "format":"binary" + "200": { + "description": "Feedback file streamed successfully.", + "content": { + "text/csv": { + "schema": { "type": "string", "format": "binary" } + }, + "application/geo+json": { + "schema": { + "type": "object", + "required": ["type", "features"], + "properties": { + "type": { "enum": ["FeatureCollection"] }, + "features": { + "type": "array", + "items": { "$ref": "#/components/schemas/Feature" } + } + } } } } diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json index 9c532f2..d55f118 100644 --- a/tdei-api-gateway.json +++ b/tdei-api-gateway.json @@ -2725,24 +2725,35 @@ "name":"format", "in":"query", "required":false, - "description":"format: Output format. Only 'csv' is supported.", + "description":"format: Output format.", "schema":{ "type":"string", "default":"csv", "enum":[ - "csv" + "csv", + "geojson" ] } } ], "responses":{ - "200":{ - "description":"CSV file streamed successfully.", - "content":{ - "text/csv":{ - "schema":{ - "type":"string", - "format":"binary" + "200": { + "description": "Feedback file streamed successfully.", + "content": { + "text/csv": { + "schema": { "type": "string", "format": "binary" } + }, + "application/geo+json": { + "schema": { + "type": "object", + "required": ["type", "features"], + "properties": { + "type": { "enum": ["FeatureCollection"] }, + "features": { + "type": "array", + "items": { "$ref": "#/components/schemas/Feature" } + } + } } } }